我正在从包含灰度.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)
输出:
(1050, 1400)
读取灰度图像的输出和python中转换为灰度的图像的输出相同吗?有什么区别?
我想在不显示通道的情况下读取灰度图像。
cv.imread
总是将所有内容转换为BGR,除非您告诉它不要这样做。请使用cv.IMREAD_UNCHANGED
标志来执行此操作。
您将尺寸的数量误认为是颜色尺寸的大小。
(h,w)
是二维的,它等价于(h,w,1)
,其中颜色维度的大小为1。
(h,w,3)
是三维的(元组长度为3),最后一位的3
表示颜色维度长度为3(对于三种颜色)。