cv2.error: OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:352: error:

遇到错误

初学opencv记录一个报错
当我打算使用opencv展示一张图片时,出现了以下错误,她说是cv2.imshow()出错了但是我看着格式没有问题,就想着可能是上一行img传入的参数不对

import cv2


img = cv2.imread('证件照.jpg')
cv2.imshow('lyz',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Traceback (most recent call last):
  File "E:/face_recogintion/opencv.py", line 5, in <module>
    cv2.imshow('lyz',img)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

问题可能有四:

1、文件路径不对
后来我就奇怪了,这文件放哪都读不出来,就算放在当前目录下也读不出来
2、文件中出现中文路径
后来我将照片改成英文果然可以正常运行
我的问题解决了,但是还有可能出现的错误为
3、读取文件的权限不够
将图片放在有权限的文件夹下
或者参考这篇解决权限问题https://jingyan.baidu.com/article/ab0b5630553d78c15afa7dcd.html
4、还有可能是路径中斜杠打反了哈哈哈
总而言之
就是你的img出了问题
img出了问题就是路径或权限问题这是问题的根源
欢迎小伙伴们即使来补充

这是解决之后的代码

import cv2
import os
path=r"E:\face_recogintion"
filenames=os.listdir(path=path)
print(filenames)
filepath=os.path.join(path,filenames[1])
print(filepath)

img = cv2.imread(filename=filepath)
cv2.imshow('lyz',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

链接: 参考文章.

你可能感兴趣的:(python,opencv,bug)