2013-02-25 2 views
-3

Я использую код cascade classifier for face detection (а иногда и другой код). Но программа заканчивается на линии:Необработанное исключение при обнаружении лица

face_cascade.detectMultiScale(
    frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30)); 

в основном на size(30,30);. Ошибка, которую он дает, - это «необработанное исключение» и еще больше на «opencv_objdetectd.dll». Я искал в Интернете, но не смог найти аналогичную проблему или решение. Я был бы признателен за любую помощь, поскольку я застрял в этом уже много дней.

+0

Вы должны предоставить нам больше кода, чтобы быть в состоянии помочь вам. – rossb83

+0

вот ссылка на код. я ничего не изменил http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html – argo

+0

Если это проблема с Size (30, 30), вы можете попробовать переместить ее самостоятельно линия. Однако я предполагаю, что это обычная структура, которая означает, что она разбивается на выделение памяти, что может означать, что вы написали память в какой-то более ранней точке. – dutt

ответ

0

«необработанные исключения» никогда не происходят из opencv-кода.

Проблема может быть не в коде, а в другом, например, при использовании debug dll в режиме деблокирования или наоборот, неправильных 32/64 бит DLL и т. Д.

Я просто не верю, что размер (30,30) является проблемой. попробуйте:

face_cascade.detectMultiScale(frame_gray, faces); // есть по умолчанию арг для отдыха

каскадного обнаружения наиболее часто он терпит неудачу для одной из 2 причин:

  1. Хаара-каскад не был найден. Проверь это.

    если (! Face_cascade.load ("bla.xml")) { // ошибка}

  2. ваше изображение является недействительным

    если (frame_gray.empty()) { // ошибка }

+0

m Конечно, версия права bcz ранее использовала библиотеки с обнаружением контуров. может у вас, пожалуйста, укажите dll или другое требование s.may, я что-то упустил. я использовал imageproc, highgui, core, objdetect .. вся версия отладки из X86, vc10 папка ... – argo