灰度到RGB-Python

时间:2019-07-18 12:53:20

标签: python opencv image-processing colors image-manipulation

我无法获得RGB的灰度图像,这是我的代码:

img=cv2.imread("clahe_2.jpg")
backtorgb = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
showImg(backtorgb,"claheCLR")

此错误返回:

backtorgb = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)
cv2.error: /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/color.cpp:9765: error: (-215) scn == 1 && (dcn == 3 || dcn == 4) in function cvtColor

文件路径正确。 有什么建议吗?

3 个答案:

答案 0 :(得分:1)

我认为问题是您的图像不是真正的灰度。它是RGB,但可见为灰度。因此需要从图像中提取一个通道,然后运行代码:

backtorgb = cv2.cvtColor(img[..., 0], cv2.COLOR_GRAY2RGB)

答案 1 :(得分:0)

默认情况下,imread将图像以3通道BGR图像的形式打开,因此您无需将其转换,如果您要的就是将其转换为RGB。

查看文档here

答案 2 :(得分:0)

问题出在CLAHE滤镜及其灰度输出的应用上,实际上该输出保留了3个通道,但看起来像是灰度的文档here

我很简单地发现here,该方法保留了RGB形式来解决问题,这要感谢所有人的回答。