2012-05-24 3 views
0

다음 코드를 사용하여 iPhone에서 OpenCV를 사용하여 얼굴을 감지합니다. 나는 응용 프로그램을 빌드 할 때OpenCV 얼굴 인식 - 벡터 문제

std::vector<Rect> faces; 

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

그러나, 오류가 detectMultiScale 함수 호출에 발생합니다. "일치하는 멤버 함수 호출이 'detectMultiScale'"에 없습니다.

다음 추가 설명이 주어진다 :

Error Message

오류는 읽기 : Candidate function not viable: no known conversion from 'std::vector<Rect>' to 'vector<Rect> &' for 2nd argument.

은 무슨 일이야? 분명히 컴파일러는 두 번째 인수로 문제를 해결합니다. 다른 유형의 벡터를 사용하고 있습니까?

덕분에, 제임스

엑스 코드 4.2.1 SDK 5.0 OpenCV의 2

+0

나는 너를 모른다? 'std ::'namespace 명시 적 범위를 제거하면 컴파일됩니까? 그렇다면 OpenCV에서'vector'의 정의를 찾아보십시오. 당신이 사용해야하는 타입 일 수있는'cv :: Vector'가 있습니다 ... 저는이 라이브러리에 익숙하지 않습니다. – AJG85

+0

확실히'std ::'를 사용해야합니다. 시도한'cv ::'효과 없음. – James

+0

아마도'std :: vector; 지시문을 사용하여'vector faces;라고 선언하면 아마도 범위 한정자로 인해 과부하가 발생하지 않기 때문에 변환이 필요하다고 생각되는 것 같습니다. – AJG85

답변

1

당신은 처음에

using namespace cv; 

을 추가해야합니다.