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()为真)进行颜色空间转换。换句话说,你给出的图像文件路径可能是错误的,或者文件不存在,或者虽然文件存在,但是无法正确读取。文章来源:https://www.toymoban.com/news/detail-715937.html
2 解决办法
2.1 解决警告信息
使用cv2.normalize
、cv2.convertScaleAbs
函数或者GDAL库将tif转为8位。(cv2的两个函数我都没成功,用GDAL库成功了下篇文章再跟大家分享)文章来源地址https://www.toymoban.com/news/detail-715937.html
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 解决报错信息
- 检查你的图像文件路径是否正确。确保路径是正确的,并且对应的文件确实存在。(别用中文路径)
- 确保你的图像文件是可以被OpenCV正确读取的。有些图像文件可能是损坏的,或者格式不被OpenCV支持。
- 在尝试读取图像之前,确保文件路径是正确的,并且文件存在。你可以使用os模块的os.path.exists()函数来检查。
- 同时也有可能是你的图片/tif是64位的图片,导致cv2库无法理解不能正常读取影像信息。解决办法参考2.1或者下篇文章。
到了这里,关于【Python入门教程】CV2报错:cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\s的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!