cv2.imshow() 函数抛出断言错误

Posted

技术标签:

【中文标题】cv2.imshow() 函数抛出断言错误【英文标题】:cv2.imshow() function throws an assertion error 【发布时间】:2019-03-22 04:39:12 【问题描述】:

即使在升级我的opencv库并卸载并重新安装多次后,上述错误仍然存​​在。

还有其他修复此错误的提示吗?

这是我的源代码,cv2.imshow() 函数开始给我错误。

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()

    sobelx = cv2.Sobel(frame, cv2.CV_64F, 1, 0, ksize=5)
    sobely = cv2.Sobel(frame, cv2.CV_64F, 0, 1, ksize=5)
    cv2.imshow('frame', frame)
    cv2.imshow('sobelx', sobelx)
    cv2.imshow('sobely', sobely)

    if cv2.waitKey(5) & 0xFF == 27:
        break

 cv2.destroyAllWindows()
 cap.release()

我收到的错误消息:

    cv2.imshow('sobelx', sobelx)
    cv2.error: OpenCV(4.0.0) C:\projects\
    opencv-python\opencv\modules\highgui\src\window_w32.cpp:1230: 
    error: (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function 'cvShowImage'

另一方面,cv2.imshow() 函数适用于以下代码。请注意:下面的代码不会对视频提要应用任何过滤器,如拉普拉斯或索贝尔。

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()
    cv2.imshow('frame', frame)

    if cv2.waitKey(5) & 0xFF == 27:
        break

cv2.destroyAllWindows()
cap.release()

【问题讨论】:

您是否查看过这些其他帖子:***.com/q/54336237/9987623、***.com/q/54370220/9987623 【参考方案1】:

在this Github 问题讨论中,提到这个错误已在 OpenCV 4.0.1 中修复。根据您收到的错误,您的版本似乎是 4.0.0,因此可能需要再次升级。

【讨论】:

以上是关于cv2.imshow() 函数抛出断言错误的主要内容,如果未能解决你的问题,请参考以下文章

imshow() 在 Python 中为图像提供错误

cv2.imshow 错误“功能未实现”

OpenCV 函数学习03-图像的显示(cv2.imshow)

cv2::imshow 的参数

cv2.imshow() 函数打开一个总是说没有响应的窗口 - python opencv

OpenCV 在带有 anaconda 的 Linux 上无法与 python 一起正常工作。收到未实现 cv2.imshow() 的错误