使用 Numpy 分割图像的 RGB 通道

问题描述 投票:0回答:1

帖子参考: 使用 OpenCv Python 将 RGB 图像分割为 RGB 我对使用 opencv 和 numpy 很陌生,根本不明白方法#1 如何复制图像并将通道更改为黑色。这是我不明白的代码部分的副本:

r = img.copy()
r[:,:,0] = r[:,:,1] = 0

g = img.copy()
g[:,:,0] = g[:,:,2] = 0

b = img.copy()
b[:,:,1] = b[:,:,2] = 0

有人可以发表一个75岁以上老人能理解的解释吗?感谢您的帮助!

代码显然有效...我只是想了解颜色如何在 numpy 数组中分离/合并

python opencv numpy-ndarray rgb
1个回答
0
投票

OpenCV 将图像存储为 Numpy 数组,如下所示:

image[row, column, channel]

通道按 B、G、R 顺序排列。所以通道 0 是蓝色,通道 1 是绿色,通道 2 是红色。

因此,此命令会将每行和每列的蓝色通道设置为 0,即它将蓝色分量归零:

im[:, :, 0] = 0

这会将各处的绿色归零:

im[:, :, 1] = 0

所以,你会剩下红色。


顺便说一句,您可以使用以下方法一次性完成这两件事:

im[:, :, [0,1]] = 0
© www.soinside.com 2019 - 2024. All rights reserved.