【发布时间】:2018-06-28 05:42:34
【问题描述】:
我在 lubuntu 16.04 上,使用 OpenCV 3.2.0、Python 2.7 并在 imshow() 短暂显示带有我的相机流的窗口后遇到此错误。
这个错误是随机发生的 - 在这发生之前,流可以正常运行半分钟,或者它可以在我第一次运行脚本时发生。
断言:文件 qasciikey.cpp 中的“false”,第 495 行 中止(核心转储)
我的代码附在下面:
import numpy as np
import cv2
redcross_cascade = cv2.CascadeClassifier('rcrosscascade.xml')
cap = cv2.VideoCapture(2)
cv2.namedWindow('Haar', cv2.WINDOW_NORMAL)
while 1:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
redcross = redcross_cascade.detectMultiScale(gray, 50, 50)
for (x,y,w,h) in redcross:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)
cv2.imshow('Haar',img)
key = cv2.waitKey(1) & 0xff
if key == 27:
break
cap.release()
cv2.destroyAllWindows()
非常感谢您在此问题上的任何帮助,谢谢!
编辑:我已确定此错误的触发因素 - 从我的 USB 光学鼠标移动。断开鼠标连接可以防止错误重新出现,但我还没有找到发生这种情况的原因。
【问题讨论】:
-
确保所有资源都正确打开。
-
@Silencer 请问我应该怎么做或者我应该检查什么?
-
我错了。一开始你说它运行良好......然后我搜索
qasciikey.cpp,发现它是一个Qt文件。您是否使用 WITH_QT=ON 标志编译 OpenCV?也许将标志更改为 WITH_QT=OFF,这不是使用 Qt,会起作用。 -
我正在使用各种 USB 摄像头模块。这个错误发生在一个特定的相机上,在特定的分辨率下可靠地发生:1920x1080。在更高的(2048x1536)和更低的(1280x720)分辨率下,它不会发生。它发生在第一个
waitKey()之后。没有它,我可以很好地阅读图像。这不是因为我这边的鼠标移动。
标签: python c++ opencv haar-classifier