我正在尝试使用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环境中成功运行。
答案 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个通道的图像)时,会出现此错误消息。
您必须使用cv2.imread()
而不是mpimg.imread()
如果仍然有错误,请尝试print(image.shape)
。该图像很可能没有三个通道。
您还可以尝试通过以下方式查看图像:
cv2.imshow("Test", image)
cv2.waitKey()