返回

OpenCV 错误:(-215: 断言失败)!_src.empty() 处理图像时报错的解决方案

后端

问题

在使用 OpenCV 进行图像处理时,您可能会遇到以下错误信息:

cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-de9vd6tv\opencv\modules\imgproc\src\color.cpp:182: error: (-215: Assertion failed) !_src.empty() in function ‘cv::cvtColor’

此错误通常表示 OpenCV 无法处理您尝试转换的图像。这可能是由于多种原因造成的,例如:

  • 图像为空或损坏。
  • 图像格式不受 OpenCV 支持。
  • 图像读取失败。

解决方案

为了解决此错误,您可以尝试以下解决方案:

  1. 检查图像是否为空或损坏。

    您可以使用以下代码检查图像是否为空或损坏:

    import cv2
    
    image = cv2.imread('image.png')
    
    if image is None:
        print('Error: Image is empty or corrupted.')
    

    如果图像为空或损坏,您需要修复或替换它。

  2. 检查图像格式是否受 OpenCV 支持。

    OpenCV 支持多种图像格式,包括 PNG、JPG 和 BMP。如果您尝试转换不受 OpenCV 支持的图像格式,您将收到此错误。

    您可以使用以下代码检查图像格式是否受 OpenCV 支持:

    import cv2
    
    image = cv2.imread('image.png')
    
    if image.format not in cv2.IMREAD_FORMATS:
        print('Error: Image format is not supported by OpenCV.')
    

    如果图像格式不受 OpenCV 支持,您需要将其转换为受支持的格式。

  3. 检查图像是否读取失败。

    如果您尝试转换无法读取的图像,您也会收到此错误。

    您可以使用以下代码检查图像是否读取失败:

    import cv2
    
    image = cv2.imread('image.png')
    
    if image is None:
        print('Error: Image could not be read.')
    

    如果图像读取失败,您需要检查图像路径是否正确,并且您具有读取图像的权限。

总结

如果您在使用 OpenCV 进行图像处理时遇到 cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-de9vd6tv\opencv\modules\imgproc\src\color.cpp:182: error: (-215: Assertion failed) !_src.empty() in function ‘cv::cvtColor’ 错误,您可以尝试以上解决方案来解决此问题。