Стереть прямоугольные объекты opencv из вектора

Я использую вектор объектов Rect opencv. То, что я хочу, это стереть некоторые элементы векторов внутри цикла for. Однако, похоже, что у меня нет доступа к функции erase () вектора. Я получаю следующее сообщение:

/ Главный / christosh / Desktop / распознавание-сборка-настольный Qt_4_8_1_in_PATH_система_Release /../ faceRec / src / Detection.cpp: 88: ошибка: у класса 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;
}
}

0

Решение

Вы пропустили скобки? Это функция.

eyes[l].erase();

Изменить: Кажется, я неправильно понял ваш вопрос. Если is stl :: vector erase, вы можете взять подсказку из кода ниже: Вам нужно будет использовать итератор.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]