为什么在Python中cv2.imshow()会出错?
我在运行一些基本的OpenCV代码时遇到了错误。代码如下:
import numpy as np
import cv2
img=cv2.imread('C:\Users\Pravin\Desktop\a.jpeg',1)
cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.Waitkey(10000)
cv2.imshow('cv2.WINDOW_NORMAL',img)
cv2.destoryAllWindows()
对于cv2.imshow()
这个函数,出现的错误是:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
cv2.imshow('image',img)
error: ..\..\..\src\opencv\modules\highgui\src\window.cpp:261: error: (-215)
size.width>0 && size.height>
这个错误为什么会发生,我该如何避免呢?
5 个回答
0
这是因为,Python编译器找不到那个图片。如果你把图片复制到Python的工作目录里,然后再试试,这样就可以了。我就是这么做的,成功了。
# keep image in the current working directory
img=cv2.imread('roi.jpg',1)
cv2.imshow('image',img)
1
对我来说,只要把jpeg改成jpg就可以了。
你也试试这个,可能会有效果。
import numpy as np
import cv2
img=cv2.imread('C:\Users\Pravin\Desktop\a.jpg',1) #changed image format to jpg
cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.Waitkey(10000)
cv2.imshow('cv2.WINDOW_NORMAL',img)
cv2.destoryAllWindows()
1
试试这个...
import numpy as np
import cv2
img = cv2.imread('E:/Images/ece/1.png',1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3
这个错误提示说你打开的图片不符合条件,要求图片的 高度 > 0
和 宽度 > 0
。这可能有几个原因。
大多数情况下,这是因为你在 imread
中提供的图片地址是不存在的。
有时候,也可能是因为 imread
没能成功加载图片。比如,如果你在记事本里随便写了一些文字,然后把文件保存为 a.jpg
,那么 imread
很可能无法加载这个文件。
6
很可能是imread这个函数没有成功。请确认一下图片"C:\Users\Pravin\Desktop\a.jpeg"确实存在。(这个.jpeg的后缀看起来有点不常见,可能应该用.jpg?)
另外,正如Hyperboreus提到的,试试在文件名中使用正斜杠,比如"C:/Users/Pravin/Desktop/a.jpg",或者把反斜杠进行转义。
"C:\\Users\\Pravin\\Desktop\\a.jpg"