转换图像时出现OpenCV错误

时间:2018-01-20 11:36:38

标签: python-3.x opencv

我正在尝试使用matplotlib导入大小为(540,960)的图片。 此步骤已成功执行。结果存储在' image'对象(类型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环境中成功运行。

3 个答案:

答案 0 :(得分: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)

希望这对您有所帮助。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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

您还可以尝试通过以下方式查看图像:

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