返回顶部
首页 > 资讯 > 后端开发 > Python >【Python】cv2.error: OpenCV(4.8.0) :-1: error: (-5:Bad argument) in function ‘cvtColor‘ > Overload res
  • 105
分享到

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

PythonOpenCV原力计划 2023-09-07 21:09:52 105人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

代码片段为: # 将图片转换为灰度图image1 = cv2.cvtColor(origin_iamge, cv2.COLOR_BGR2GRAY)image2 = cv2.cvtColor(sp_im

代码片段为:

# 将图片转换为灰度图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.pyTraceback (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'

在这里插入图片描述

错误信息提示 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'

在这里插入图片描述

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

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

    # 读取图片并转换为灰度图    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://blog.csdn.net/wzk4869/article/details/132584614

--结束END--

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

本文链接: https://lsjlt.com/news/399111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作