【问题标题】:OpenCV error while converting image转换图像时出现 OpenCV 错误
【发布时间】:2018-06-29 13:17:28
【问题描述】:

我正在尝试使用 matplotlib 导入大小为 (540,960) 的图片。 此步骤执行成功。结果存储在“图像”对象(类型 ndarray)中。

# Do relevant imports
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import cv2

# Read in and grayscale the image
image = mpimg.imread(r'C:\Temp\pic24_bw.jpg')
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)

但是当我尝试使用 cv2.cvtColor() 将图像转换为另一个颜色空间(灰色)时。我遇到了一个错误:

error: C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:11111:        error: (-215) scn == 3 || scn == 4 in function cv::cvtColor

请帮忙。奇怪的是这段代码在另一个 citrix 环境中运行成功。

【问题讨论】:

  • 检查print(type(image));print(image.dtype, image.shape)

标签: python-3.x opencv


【解决方案1】:

此代码适用于我,通过 cv2 本身加载/读取您的图像,请重新检查您的图像路径,因为这是最常见的错误,我们会这样做。

import numpy as np               
import matplotlib.pyplot as plt
import cv2
%matplotlib inline    
#reading the image 
image = cv2.imread('cat.jpg')
image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#plotting the image
plt.imshow(image)

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    我试过 plt.imshow。图片加载成功。它以 RGB 比例显示。

    image = mpimg.imread(r'C:\Temp\pic24_bw.jpg') 
    plt.imshow(image,cmap='gray')
    

    【讨论】:

    • 也许 plt 使用了不同于 opencv 的其他通道排序?你试过 cv2.imread 来加载图片吗?
    【解决方案3】:

    当图像无法加载或通道数不正确时会出现此错误消息(cv2.COLOR_BGR2GRAY 需要具有 3 或 4 个通道的图像)。

    1. 您必须使用cv2.imread() 而不是mpimg.imread()

    2. 如果仍有错误,请尝试print(image.shape)。很可能,图像没有三个通道。

    您也可以尝试查看图片:

    cv2.imshow("Test", image)
    cv2.waitKey()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2011-02-21
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多