灰度到RGB转换

问题描述 投票:-3回答:2

我该如何解决这个错误?

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

python opencv rgb grayscale
2个回答
1
投票
img = cv2.imread(filename[, flags])

标志> 0时返回3通道彩色图像

当flag = 0时返回灰色图像

返回原始加载文件的图像。

您收到错误是因为您没有将其指定为返回灰色图像。并且频道号码不匹配。

使用img = cv2.imread(filename, 0)确保img是1通道图像。


0
投票

使用imread加载的图像包含BGR格式的三个通道。但是,cv2.cvtColor期望只有一个通道的图像,因为你传递了参数cv2.COLOR_GRAY2RGB(灰度图像只有一个通道)

如果您需要RGB,请考虑使用:

cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

© www.soinside.com 2019 - 2024. All rights reserved.