小编Qiu*_*ang的帖子

使用python仅在R(红色)通道中显示图像

嗨,我是图像处理方面的新手,现在我正在使用 python 处理图像以获得更多洞察力。但是,我对颜色通道的理解有点不满意。

在我看来,形状为 (400, 400, 3) 的 RGB 图像意味着图像由 3 个通道组成,每个通道有 400 * 400 像素。相同位置的三个不同颜色的像素代表整个图像中的一个完整像素。

所以 image[:, :, 0] 代表红色通道中的图像。如果我显示它,它应该给出一个全红色的图像。我这样做了,但输出并不理想:

plt.figure(figsize=(15,5))
plt.imshow(im[:,:,0])  # im is the image
Run Code Online (Sandbox Code Playgroud)

抱歉,我还没有足够的信用来上传图像,上面的输出是绿色的,但不是完全绿色。

然后我从其他人那里得到了这个想法,他们将 im[:,:,0] 分配给与图像具有相同形状的零数组。然后输出完全是红色的。代码是:

tmp_im = np.zeros(im.shape, dtype="uint8")
tmp_im[:,:,0] = im[:,:,0]
plt.figure(figsize=(15,5))
plt.imshow(tmp_im)
Run Code Online (Sandbox Code Playgroud)

所以我在想,这两者之间唯一的区别是第一个代码中imshow()的参数是2D,它只包含R通道中的元素。但是,第二个是3D,虽然其他两个通道中的元素为0。这是导致输出不同的原因吗?

如果我的理解有任何错误,请纠正我。

非常感谢你。

python numpy image-processing

5
推荐指数
1
解决办法
7723
查看次数

标签 统计

image-processing ×1

numpy ×1

python ×1