问题:因为读入图片的宽和高至少有一个不大于0。可以说就是没有读入图片
原因分析:路径出错或没有图片
1.路径里面有中文,opencv-python不支持直接读取中文路径,把 图片路径改成英文或把图片换一个路径就行。
如果需要改成中文路径的话可以参考【opencv】实现中文路径的读取
2.路径格式错误
import cv2
#读入图像
img =cv2.imread('D:\Python\opencv-python\Lib\Lena.jpg',1)
cv2.imshow('image',img) #显示图像
cv2.waitKey(0) #等待
python的路径分割符不是“\”,而是“/”,可以把“\”换成“/”,或是改成
#路径前加r,最简单
img = cv2.imread(r'D:\Python\opencv-python\Lib\Lena.jpg',1)
#把"\"换成"/",麻烦
img = cv2.imread(r'D:/Python/opencv-python/Lib/Lena.jpg',1)
#把"\"换成"\\",也麻烦
img = cv2.imread(r'D:\\Python\\opencv-python\\Lib\\Lena.jpg',1)
之所以这样操作是因为我们在从文件夹中复制文件路径时, 中间的斜杠都是反斜杠, 这时如果直接复制到python中, 正巧有一个名字的第一个字母是r或者是n, 那么就会被转义识别为换行符,所以需要防止转义字符转义。
3.文件名打错了,或是地址打错了。在这个地址里面没有这个图片或是图片损坏等原因。
文件名的后缀别忘了。
目前只遇到这几种情况,如果有其他原因欢迎指点。