繁体   English   中英

使用 cv2.imread() 时出现 Python openCV 错误

[英]Python openCV error while using cv2.imread()

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

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。错误消息是说函数imshow中的图像必须具有宽度大于零的大小,并且高度大于零。

您可以使用img1.shape检查图像大小。 在这种情况下,您可能会收到错误消息AttributeError: 'NoneType' object has no attribute 'shape' 您可以进一步检查img1Noneimg1 == None 如果您得到True响应,那么您就会知道img1不包含图像数据。

TL; 博士

未找到文件“Tarun.jpg”,因此img1 == None

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

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

if img is None:
        continue

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

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

但是这个错误信息意味着imshow()没有得到正确的图像来显示。 我会检查图像的形状和值以确保图像没有损坏。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM