[英]OpenCV Python how to keep one color as is converting an image to Grayscale
[英]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.