使用cv2.imread()时发生Python openCV错误

时间:2018-06-20 00:51:04

标签: python python-3.x opencv

import cv2
import numpy as np

#load color of an image in grayscale
img1 = cv2.imread('Tarun.jpg',0)

cv2.imshow('Hey its me Tarun yellogi',img1)

error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:331: error: (-215) size.width>0 && size.height>0 in function cv::imshow

4 个答案:

答案 0 :(得分:1)

  • 当图像路径错误时会发生此类错误
  • 或者图像不存在
  • 否则图像已损坏
  • 如果图像不在当前目录中,则必须提及图像的绝对路径
  • 使用os模块使路径可在任何其他计算机上工作,而不是硬编码绝对路径
  • 但是此错误消息表示imshow()不能正确显示图像
  • 我将检查图像的形状和值,以确保图像没有损坏或图像不是Noneprint(img1.shape)print(img1)
  • 如果带有路径的图像不存在,则cv2.imread()返回None
  • 该错误还表明图像的宽度和高度为零,这是不可能的

答案 1 :(得分:0)

  

img1 = cv2.imread('Tarun.jpg',0)

如您所知,imread读取指定的图像。如此处所示,仅使用文件名,python尝试从当前工作目录中读取图像。如果该文件不存在,则不会报告错误,并且img1的值为None

该行:

  

cv2.imshow('Hey its me Tarun yellogi',img1)

返回以下错误:

  

error: C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:331: error: (-215) size.width>0 && size.height>0 in function cv::imshow

表示在imshow命令中指定的图像(即img1)的宽度和/或高度为0。错误消息的意思是函数{{1 }}必须具有宽度大于零的尺寸 ,高度大于零。

您可以使用imshow检查图像尺寸。在这种情况下,您可能会收到一条错误消息img1.shape。您可以使用AttributeError: 'NoneType' object has no attribute 'shape'进一步检查img1是否为None。如果收到img1 == None的响应,那么您将知道True不包含图像数据。

TL; DR

因此找不到img1文件'Tarun.jpg'。

答案 2 :(得分:0)

我认为您可以尝试循环阅读图片以防止因Nonetype错误而暂停!在我的情况下对我有帮助(在我的情况下,某些jpg文件为Nonetype)

if img is None:
        continue

答案 3 :(得分:0)

如果图像不在当前目录中,则必须提及图像的绝对路径。

使用 os 模块使路径在任何其他机器上工作,而不是硬编码绝对路径。

但此错误消息意味着 imshow() 未获得要显示的正确图像。 我会检查图像的形状和值以确保图像没有损坏。