(OpenCV)ASSERT:" false"在文件qasciikey.cpp中

时间:2018-01-19 02:39:13

标签: python c++ opencv haar-classifier

我在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光学鼠标移动。断开连接鼠标可防止错误重新铺设,但我还没有找到发生这种情况的原因。

3 个答案:

答案 0 :(得分:0)

我通过SSH终端运行python程序(使用cv2)时收到此错误。当我从机器本身运行程序时,错误消失了。我认为这是由于某些X11问题引起的。

答案 1 :(得分:0)

我以前收到此错误。不同的网络摄像头具有不同的性能。 我的方法是在cv2.imshow函数之后编写cv2.waitKey函数。

答案 2 :(得分:-1)

我遇到了同样的问题。我的应用程序与您的相似。这里建议的修复程序都没有对我有用。我发现如果我通过 cap.read() 在调试模式下开始单步执行,我可以继续全速运行并且问题会消失,尽管这不是一个好的解决方法。