Сбои в обнаружении людей 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
, Это может помочь сузить проблему.