我在lubuntu 16.04上使用OpenCV 3.2.0,Python 2.7并在imshow()显示一个带有我的相机流的窗口的短暂时刻后遇到此错误。
此错误随机发生 - 在此情况发生之前,流可以正常运行半分钟,或者当我第一次运行脚本时,它可以在开始时发生。
ASSERT:" false"在文件qasciikey.cpp,第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光学鼠标移动。断开连接鼠标可防止错误重新铺设,但我还没有找到发生这种情况的原因。
答案 0 :(得分:0)
我通过SSH终端运行python程序(使用cv2)时收到此错误。当我从机器本身运行程序时,错误消失了。我认为这是由于某些X11问题引起的。
答案 1 :(得分:0)
我以前收到此错误。不同的网络摄像头具有不同的性能。 我的方法是在cv2.imshow函数之后编写cv2.waitKey函数。
答案 2 :(得分:-1)
我遇到了同样的问题。我的应用程序与您的相似。这里建议的修复程序都没有对我有用。我发现如果我通过 cap.read() 在调试模式下开始单步执行,我可以继续全速运行并且问题会消失,尽管这不是一个好的解决方法。