OpenCV(4.2.0)错误:(-215:断言失败)函数'cv :: imshow'中的size.width> 0 && size.height> 0

I've been getting this error. I have copied the code from This website and making changes so that the code actually works. The code:

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help="Image Path")
args = vars(ap.parse_args())
img_path = args['image']

#Reading image with opencv
img = cv2.imread(img_path)

#Reading csv file with pandas and giving names to each column
index=["color","color_name","hex","R","G","B"]

csv = pd.read_csv('colors.csv', names=index, header=None)
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_function)

while(1): 
    #This is error line
    cv2.imshow("image",img)
    [...]

完整的回溯:

Traceback (most recent call last):
  File "C:\Users\someone\Documents\python\____The Useless Installer____\PY\color_detection.py", line 39, in <module>
    cv2.imshow("image",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'

I've looked here and here but I don't understand how to fix this and I don't think it relates to my question that much either. If this is obvious I am very sorry. I'm a complete newbie at this. Thanks

评论
  • nnam
    nnam 回复

    基本上,此错误告诉您您正在尝试显示一个空的/不存在的图像。请检查:

    • The path: I think the problem comes from cv2.imread(). If the path is incorrect, the img variable will be empty.

    您尝试读取图像的方式几乎是正确的:

    img = cv2.imread(C:\Users\someone\Documents\python\____The Useless Installer____\PY\colorpic)

    方式应为:

    • double backslash for escaping the "\" character which has a special meaning in programming languages
    • you do need to enter the format of the picture (jpeg, png, etc..).
    • you need to pass this argument as a 'string' or "string"

    Therefore try img = cv2.imread("C:\\Users\\someone\\Documents\\python\\____The Useless Installer____\\PY\\colorpic.jpg")