繁体   English   中英

在 python 中读取灰度图像显示 3 个颜色通道而不是一个

[英]Reading a grayscale image in python shows 3 color channels instead of one

我正在从包含 grayscale.png 图像的数据集中读取 python 中的图像。

img_1.png 已经是灰度图像。

 img=cv2.imread('img_1.png') print(img.shape)

在读取图像时,img.shape 显示 3 个通道。

 (16, 16, 3)

然而它是一个灰度图像,所以它应该只有宽度和高度。

 (16, 16)

我还在 MATLAB 中读取了相同的灰度图像,它只显示宽度和高度。

但在 python 中读取 rgb 图像并将其转换为灰度时不会显示 3 个通道。 为什么会这样?

 gray_img=cv2.imread('rgb_1.png',cv2.IMREAD_GRAYSCALE) print(gray_img.shape)

output:

 (1050, 1400)

读取灰度图像的output和python中转换为灰度的图像是一样的吗? 有什么区别?

我想在不显示频道的情况下读取该灰度图像。

cv.imread总是将所有内容都转换为 BGR,除非您告诉它不要这样做。 使用cv.IMREAD_UNCHANGED标志来做到这一点。

您将维度的数量误认为是颜色维度的大小。

(h,w)是二维的,它等价于(h,w,1) ,其中颜色维度的大小为 1。

(h,w,3)是 3 维(元组的长度为 3),最后一个位置的3表示颜色维度的长度为 3(对于三种颜色)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM