从向量中擦除 opencv 矩形对象

Erase opencv rect objects from a vector

本文关键字:对象 opencv 擦除 向量      更新时间:2023-10-16

我正在使用opencv Rect对象的向量。我想要的是擦除 for 循环中的一些矢量元素。但是,我似乎无法访问vector的erase()功能。我收到以下消息:

/

home/christosh/Desktop/recognition-build-desktop-Qt_4_8_1_in_PATH_System_Release/../faceRec/src/Detection.cpp:88:错误:"类 cv::Rect_"没有名为"擦除"的成员

我的代码 :

     vector<Rect> faces, eyes;
     for(int l=0; l<eyes.size(); l++){
        if(eyes[l].y> faces[i].height){
            eyes[l].erase;
        }
     }

你错过了括号吗?这是一个函数。

eyes[l].erase();

编辑:看来我误读了你的问题。如果 is 是 stl::vector 擦除,那么您可以从下面的代码中获取提示: 你将不得不使用迭代器。

vector<int>::iterator it = res.begin();
for( ; it != res.end(); it++)
{
    it = res.erase(it);
}