【发布时间】:2019-06-19 13:55:30
【问题描述】:
import numpy as np
import cv2
# first_method
# img = cv2.imread('sample.jpg')
# second_method
# img = np.zeros((1000, 1000, 3), np.int8)
while True:
cv2.imshow('sample', img)
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows()
在上面的代码中,我尝试使用 opencv 的 imshow() 函数显示图像。当我尝试使用第一种方法时,即从示例图像中创建一个数组时,代码可以完美运行,但是当我创建自己的数组时,出现以下错误-
PS C:\Users\tanma\Dropbox\Coding\python\AI> python .\test_1.py
Traceback (most recent call last):
File ".\test_1.py", line 16, in <module>
cv2.imshow('sample', img)
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'
【问题讨论】:
-
您的代码在opencv2 3.4.3版本下使用第二种方法正常工作
-
您每 20 毫秒一次又一次地显示相同的图像。我对你最终崩溃的东西并不感到惊讶。尝试将
imshow移出循环。 -
@CrisLuengo 当然,用相同的图像调用
imshow是很多无用的工作,但它只是在同一窗口中更新图像的内部副本——为什么会导致崩溃(除非OpenCV 本身有一些错误)? -
可能有错字:
np.uint8而不是np.int8? -
它正在工作,非常感谢。我卸载并重新安装了opencv。
标签: python python-3.x opencv image-processing anaconda