【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res

这篇具有很好参考价值的文章主要介绍了【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码片段为:

# 将图片转换为灰度图
image1 = cv2.cvtColor(origin_iamge, cv2.COLOR_BGR2GRAY)
image2 = cv2.cvtColor(sp_image, cv2.COLOR_BGR2GRAY)
image3 = cv2.cvtColor(sp1_image, cv2.COLOR_BGR2GRAY)

mse_1 = mse(image1, image2)
mse_2 = mse(image1, image3)

ssim_1 = ssim(image1, image2)
ssim_2 = ssim(image1, image3)

我的代码出现了报错:

(PyTorch) D:\CodeProject>D:/Anaconda/envs/PyTorch/python.exe d:/CodeProject/2023_SZ_Cup/Problem_1/evaluate.py
Traceback (most recent call last):
  File "d:\CodeProject\2023_SZ_Cup\Problem_1\evaluate.py", line 20, in <module>
    image1 = cv2.cvtColor(origin_iamge, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function 'cvtColor'
> Overload resolution failed:
>  - src is not a numpy array, neither a scalar
>  - Expected Ptr<cv::UMat> for argument 'src'

【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res,Python3常用到的函数总结,错误或者警告类型解决办法总结,Python,OpenCV,原力计划

错误信息提示 cv2.error: (-5:Bad argument) in function ‘cvtColor’,这是因为在将图像从原始路径加载并转换为灰度图时,传递给 cv2.cvtColor 的参数不正确。

修改代码:

image1 = cv2.imread(origin_image_path, cv2.IMREAD_GRAYSCALE)
image2 = cv2.imread(sp_image_path, cv2.IMREAD_GRAYSCALE)
image3 = cv2.imread(sp1_image_path, cv2.IMREAD_GRAYSCALE)

主要更改包括:

  1. 将图片路径作为参数传递给 cv2.imread 函数,以正确加载图片。
  2. 使用 cv2.IMREAD_GRAYSCALE 标志来确保图像被读取为灰度图像。

但是代码还是报错:

(PyTorch) D:\CodeProject>D:/Anaconda/envs/PyTorch/python.exe d:/CodeProject/2023_SZ_Cup/Problem_1/evaluate.py
[ WARN:0@0.328] global loadsave.cpp:248 cv::findDecoder imread_('./2023_SZ_Cup/datasets/B棰?Traceback (most recent call last):
  File "d:\CodeProject\2023_SZ_Cup\Problem_1\evaluate.py", line 21, in <module>
    mse_1 = mse(image1, image2)
  File "d:\CodeProject\2023_SZ_Cup\Problem_1\evaluate.py", line 7, in mse
    err = np.sum((imageA.astype("float") - imageB.astype("float")) ** 2)
AttributeError: 'NoneType' object has no attribute 'astype'

【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res,Python3常用到的函数总结,错误或者警告类型解决办法总结,Python,OpenCV,原力计划

这个错误信息表明我们在读取图像时出现了问题,图片可能没有正确加载,导致后续的图像处理出错。

可以在读取图像后添加一些错误检查来确保图像是否成功加载。以下是修改后的代码,添加了错误检查和打印信息,以便更好地调试:

    # 读取图片并转换为灰度图
    image1 = cv2.imread(origin_image_path, cv2.IMREAD_GRAYSCALE)
    image2 = cv2.imread(sp_image_path, cv2.IMREAD_GRAYSCALE)
    image3 = cv2.imread(sp1_image_path, cv2.IMREAD_GRAYSCALE)

    if image1 is None or image2 is None or image3 is None:
        print("无法加载图像")
    else:
        mse_1 = mse(image1, image2)
        mse_2 = mse(image1, image3)

        ssim_1 = ssim(image1, image2)
        ssim_2 = ssim(image1, image3)

        print("-----调包-----")
        print('MSE:', mse_1)
        print('ssim:', ssim_1)

        print("-----算法-----")
        print('MSE:', mse_2)
        print('ssim:', ssim_2)

代码最后指出问题所在:

[ WARN:0@0.312] global loadsave.cpp:248 cv::findDecoder imread_('./2023_SZ_Cup/datasets/B棰?无法加载图像

修改名字即可!不再报错。文章来源地址https://www.toymoban.com/news/detail-695994.html

到了这里,关于【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包