2012-05-24 4 views
0

Я использую следующий код для обнаружения лица с использованием OpenCV на iPhone.Обнаружение лица OpenCV - проблема с вектором

std::vector<Rect> faces; 

face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(15, 15)); 

Однако, когда я пытаюсь построить приложение, выдается ошибка при вызове функции detectMultiScale. Msgstr "Нет соответствующей функции-члена для вызова" detectMultiScale ".

Следующее далее дается объяснение:

Error Message

Ошибки чтения: Candidate function not viable: no known conversion from 'std::vector<Rect>' to 'vector<Rect> &' for 2nd argument.

Что здесь происходит? Очевидно, что компилятор принимает во внимание второй аргумент. Я использую другой тип вектора?

Спасибо, Джеймс

XCode 4.2.1 SDK 5.0 OpenCV 2.

+0

Я не знаю, не так ли? Если вы удаляете явную область пространства имен 'std ::', она компилируется? Если да, то найдите определение 'vector' в OpenCV, поскольку они, возможно, определили свои собственные. Существует 'cv :: Vector', который может быть типом, который вы должны использовать ... Я не знаком с этой библиотекой. – AJG85

+0

Довольно уверен, что я должен использовать 'std ::'. Пробовал 'cv ::' без эффекта. – James

+0

Возможно, попробуйте использовать директиву std :: vector ;, затем объявляя ее как 'vector faces;' кажется, что требуется преобразование из-за выбора квалификатора области, из-за чего перегрузка не должна совпадать. – AJG85

ответ

1

Вы должны добавить

using namespace cv; 

в самом начале.

Смежные вопросы