Сбои в обнаружении людей OpenCV

Компиляция peopledetect.cpp идет просто отлично, но когда я пытаюсь запустить программу, она вылетает в строке

hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

Сообщение об ошибке: необработанное исключение 0x74a9ae7a в openCV.exe: 0xC0000005: место записи нарушения прав доступа 0x00000000.

Стек вызовов:

msvcr90.dll!74a9ae7a()  
opencv_objdetect231.dll!6dbfe397()  
openCV.exe!main()  Line 27 + 0x49 bytes
openCV.exe!__tmainCRTStartup()  Line 555 + 0x19 bytes
openCV.exe!mainCRTStartup()  Line 371
kernel32.dll!74f63677()     
ntdll.dll!77319d72()    
ntdll.dll!77319d45()    

Покопавшись в интернете, я ничего не мог найти, любая помощь ценилась.

1 ответ

Это работает здесь под OS X. Что-то пытается получить доступ к нулевому указателю. Попробуйте заменить

hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

с

static vector<float> detector = HOGDescriptor::getDefaultPeopleDetector();
if (!detector.size()) {
    fprintf(stderr, "ERROR: getDefaultPeopleDetector returned NULL\n");
    return -1;      
}
hog.setSVMDetector(detector);

чтобы увидеть, происходит ли ошибка в getDefaultPeopleDetector или же hog.setSVMDetector, Это может помочь сузить проблему.

Другие вопросы по тегам