从向量中删除opencv rect对象
Posted
技术标签:
【中文标题】从向量中删除opencv rect对象【英文标题】:Erase opencv rect objects from a vector 【发布时间】:2014-01-07 13:12:56 【问题描述】:我正在使用 opencv Rect 对象的向量。我想要的是擦除 for 循环中的一些向量元素。但是,我似乎无法访问矢量的擦除()功能。我收到以下消息:
/home/christosh/Desktop/recognition-build-desktop-Qt_4_8_1_in_PATH_系统_Release/../faceRec/src/Detection.cpp:88:错误:'class cv::Rect_'有没有名为“erase”的成员
我的代码:
vector<Rect> faces, eyes;
for(int l=0; l<eyes.size(); l++)
if(eyes[l].y> faces[i].height)
eyes[l].erase;
【问题讨论】:
你应该从向量中删除,而不是从矩形中删除。请尝试 eye.erase(eyes.begin() + 1); 是的,非常感谢!!我明白你的意思了。 【参考方案1】:你错过了括号吗?这是一个函数。
eyes[l].erase();
编辑:似乎我误读了您的问题。如果是 stl::vector 擦除,那么您可以从下面的代码中获取提示:您将不得不使用迭代器。
vector<int>::iterator it = res.begin(); for( ; it != res.end(); it++) it = res.erase(it);
【讨论】:
这有另一个语法错误。擦除是 std::vector 类的成员,而不是 Rect。以上是关于从向量中删除opencv rect对象的主要内容,如果未能解决你的问题,请参考以下文章