【问题标题】:Erase opencv rect objects from a vector从向量中删除opencv rect对象
【发布时间】: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);
  • 是的,非常感谢!!我明白你的意思了。

标签: c++ object opencv erase rect


【解决方案1】:

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

eyes[l].erase();

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

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

【讨论】:

  • 这有另一个语法错误。擦除是 std::vector 类的成员,而不是 Rect。
猜你喜欢
  • 2014-05-05
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2015-02-03
  • 2013-02-02
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
相关资源
最近更新 更多