当我在OpenCV Python示例中运行面部检测示例时,它会在代码输入时崩溃
rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(30, 30), flags = cv.CV_HAAR_SCALE_IMAGE)
我使用Visual Studio,它还显示异常代码:c000001d
我在下面附上了问题签名。
Problem signature:
Problem Event Name: APPCRASH
Application Name: python.exe
Application Version: 0.0.0.0
Application Timestamp: 4f84a6c8
Fault Module Name: cv2.pyd
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 509430c8
Exception Code: c000001d
Exception Offset: 004d60dc
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
答案 0 :(得分:0)
c000001d
是非法指令。最常见的原因是二进制文件损坏,如DLL,或者在这种情况下cv2.pyd
。
有几种方法可能会被破坏。例如,您可能已将其作为文本文件传输或复制。另一个常见问题是在32位硬件上运行64位代码文件,或者是32位python的64位二进制文件,或者上述任何组合。
也可能是您在一个完全不同的指令集或代码文件格式上运行代码,例如从ARM复制代码并期望它在Intel上运行,或从Linux(ELF)运行到Windows(PE COFF)。
答案 1 :(得分:0)
我通过将opencv 2.4.3降级到2.4.2解决了这个问题。
我不是说opencv2.4.3有问题,它可以在其他电脑上工作,但不能在我的电脑上工作。
OpenCV 2.4.2需要tbb_debug.dll,但OpenCV 2.4.3不需要。我认为这是2.4.2和2.4.3之间的区别。也许诀窍在于tbb_debug.dll文件。