Я работаю над приложением, которое требует обнаружения объектов OpenCV с использованием каскадного классификатора Хаара.Я использую OpenCV 2.3.1 с VS2010 на 64-битной Windows-машине.Я сам скомпилировал и собрал OpenCV и не использовал предварительно скомпилированные двоичные файлы.
Во-первых, я хотел начать вмешиваться с примером facedetect.cpp, который включен в OpenCV.Я создал его без ошибок, но когда я пытаюсь его запустить, он не откроет xml-файл каскадного классификатора (функция CascadeClassifier.load () возвращает false).Я ничего не изменил из примера исходного кода.
Я использую XML-файл, который распространяется с OpenCV, поэтому проблема не в XML-файле.Я также позаботился о том, чтобы приложение могло обращаться к файлу и читать его с помощью простого fopen.
Я считаю (но не уверен), что проблема заключается в том, что каскадный классификатор имеет «старый» тип.Но в документации OpenCV специально подразумевается, что новый объект CascadeClassifier может открывать как «старые», так и «новые» каскадные классификаторы.
Вот ссылка: http://opencv.itseez.com/modules/objdetect/doc/cascade_classification.html#cascadeclassifier-load
Я даже пытался использоватьпредварительно скомпилированный двоичный файл OpenCV2.2, и он отлично работает с этим XML.А затем я попытался скомпилировать исходный код 2.2, и снова не удалось загрузить xml.
Я знаю, что могу попробовать использовать старый объект CvHaarClassifierCascade, но я предпочитаю использовать последнюю версиюOpenCV и его объектов.
Кто-нибудь знает, что я делаю неправильно?