python 函数改变图像的 RGB 值

python function to change RGB values of an image

我有这个功能,它只显示图像的红色 RGB 值。但是,我对该功能的工作方式感到困惑。具体来说,为什么这一行括号里有一个0:

newimage[i][j] = [image[i][j][0], 0, 0]

如何更改此函数以交换绿色和蓝色 RGB 值,同时保持红色值相同?

from matplotlib.pyplot import imshow #command to display a 2D array as an image
from imageio import imread #command to read images from a file or url

coffee = imread('imageio:coffee.png') #Image

def RedImage(image):
    newimage = ArrayOfZeros(400, 600)
    for i in range(400):
        for j in range(600):
            newimage[i][j] = [image[i][j][0], 0, 0]
    return newimage

imshow(RedImage(coffee))

newimage[i][j] = [image[i][j][0], 0, 0]

image[i][j]newimage[i][j] 大概是由图像中特定像素位置 (i, j) 处的红色、绿色和蓝色三个值组成的数组。

所以image[i][j][0]是原始图像的红色值,也将用作新图像的红色值。新图像的蓝色和绿色值将为 0。

原图的绿色值为image[i][j][1],蓝色值为image[i][j][2]。因此,为了在新图像中交换它们,在新图像的蓝色值位置使用旧图像的绿色值,在新图像的绿色值位置使用旧图像的蓝色值.

newimage[i][j] = [image[i][j][0], image[i][j][2], image[i][j][1]]