【Python入门教程】CV2报错:cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s

本文讲述了在使用OpenCV处理TIFF图像时遇到的警告和报错,涉及64位样本处理和空图像颜色转换问题,提供了解决方案,包括图像转换和路径检查。

        OpenCV作为一个强大计算机视觉库被各个领域广泛应用,今天分享下自己编程遇到的报错信息以及解决办法。

1 报错信息

[ WARN:0@3.596] global grfmt_tiff.cpp:716 cv::TiffDecoder::readData OpenCV TIFF: TIFFRGBAImageOK: Sorry, can not handle images with 64-bit samples

cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

        这里包含了一个警告和一个报错信息。

        警告信息:OpenCV库在处理TIFF图像时遇到的问题有关。从警告信息来看,你的TIFF图像可能使用了64位的样本(sample),而OpenCV的TiffDecoder无法处理这种情况

        报错信息:OpenCV在尝试对一个空的图像(或者路径无效,不能读取为图像)进行颜色空间转换时抛出的。cv2.cvtColor函数是用于改变图像的颜色空间的,例如从RGB转为灰度图像或者HSV等。错误信息表示你试图对一个空的图像(_src.empty()为真)进行颜色空间转换。换句话说,你给出的图像文件路径可能是错误的,或者文件不存在,或者虽然文件存在,但是无法正确读取。

2 解决办法

2.1 解决警告信息

        使用cv2.normalizecv2.convertScaleAbs函数或者GDAL库将tif转为8位。(cv2的两个函数我都没成功,用GDAL库成功了下篇文章再跟大家分享)

image_scaled = cv2.convertScaleAbs(image, alpha=0, beta=255) 
image_normalized = cv2.normalize(image, None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)

2.2 解决报错信息

  1. 检查你的图像文件路径是否正确。确保路径是正确的,并且对应的文件确实存在。(别用中文路径)
  2. 确保你的图像文件是可以被OpenCV正确读取的。有些图像文件可能是损坏的,或者格式不被OpenCV支持。
  3. 在尝试读取图像之前,确保文件路径是正确的,并且文件存在。你可以使用os模块的os.path.exists()函数来检查。
  4. 同时也有可能是你的图片/tif是64位的图片,导致cv2库无法理解不能正常读取影像信息。解决办法参考2.1或者下篇文章。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RS迷途小书童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值