2

编译 peopledetect.cpp 就可以了,但是当我尝试运行该程序时,它会在该行崩溃

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

错误消息:openCV.exe 中 0x74a9ae7a 处的未处理异常: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()    

在互联网上潜伏后,我找不到任何东西,任何帮助表示赞赏。

4

1 回答 1

2

它在 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。这可能有助于缩小问题的范围。

于 2011-09-07T18:46:11.497 回答