error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'

问题分析
error说断言失败了,因为读入图片的宽和高至少有一样不大于0。

  • 原因1.没有给程序指定正确的路径,像下面这样:
    import cv2
    #读入图像
    img =cv2.imread('E:\PythonTest\FaceRecogniton\001.JPG',1) 
    cv2.imshow('image',img) #显示图像
    cv2.waitKey(0) #等待

为什么会错?直接把Windows环境的路径拷贝进来,但是python的路径分割符不是“\”,而是“/”。
所以正确的应该为:

    import cv2
    #读入图像
    img =cv2.imread('E:/PythonTest/FaceRecogniton/001.JPG',1) 
    cv2.imshow('image',img) #显示图像
    cv2.waitKey(0) #等待

如果图片和运行的程序在一个路径下,可以这么指定:
img =cv2.imread('001.JPG',1)
如果图片存放在程序所在路径的子路径下,可以这么指定:
img =cv2.imread('./train/001.JPG',1)
"./"代表了根目录。

  • 原因2.路径里有中文名或者中文字符
    这个好解决,把中文路径改成英文的就ok。
  • 原因3.文件名没有指定正确,或者该路径压根就没这个文件。
    这个需要检查下是不是存在这种001。JPG或者这种001,JPG
    命名指定的错误。或者实际是001.png,指定成001.JPG的错误。

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