我该如何解决这个错误?
import matplotlib, cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('C:/Users/xxx/Desktop/image.jpg')
img = np.array(img, dtype=np.uint8)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_GRAY2RGB))
错误:OpenCV(4.0.0)c:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ color.hpp:259:错误:( - 2:未指定错误)函数'__cdecl cv :: CvtHelper,struct cv :: Set <3,4,-1>,struct cv :: Set <0,2,5>,2> :: CvtHelper(const class cv :: _ InputArray&,const class cv :: _ OutputArray&,int) “
输入图像中的通道数无效:'VScn :: contains(scn)'其中'scn'为3
img = cv2.imread(filename[, flags])
标志> 0时返回3通道彩色图像
当flag = 0时返回灰色图像
返回原始加载文件的图像。
您收到错误是因为您没有将其指定为返回灰色图像。并且频道号码不匹配。
使用img = cv2.imread(filename, 0)
确保img
是1通道图像。
使用imread
加载的图像包含BGR格式的三个通道。但是,cv2.cvtColor
期望只有一个通道的图像,因为你传递了参数cv2.COLOR_GRAY2RGB
(灰度图像只有一个通道)
如果您需要RGB,请考虑使用:
cv2.cvtColor(img, cv2.COLOR_BGR2RGB)