1

当我在 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
4

2 回答 2

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 文件。

于 2012-12-02T14:31:52.867 回答
0

c000001d是非法指令。最常见的原因是二进制文件损坏,例如 DLL,或者在这种情况下是cv2.pyd.

它有几种可能被破坏的方式。例如,您可能已将其作为文本文件传输或复制。另一个常见问题是在 32 位硬件上运行 64 位代码文件,或者可能是带有 32 位 python 的 64 位二进制文​​件,或者上述的任何组合。

也可能是您在完全不同的指令集或代码文件格式上运行代码,例如从 ARM 复制代码并期望它在 Intel 上运行,或从 Linux (ELF) 复制到 Windows (PE COFF)。

于 2012-12-02T12:07:51.503 回答