[英]Python: Problems of steganography in process of saving(cv2.imwrite) and reading(cv2.imread) using 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'
。 您可以进一步检查img1
是None
与img1 == None
。 如果您得到True
响应,那么您就会知道img1
不包含图像数据。
TL; 博士
未找到文件“Tarun.jpg”,因此img1 == None
。
os
模块使路径在任何其他机器上工作,而不是硬编码绝对路径imshow()
没有得到正确的图像来显示None
: print(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.