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]]
我有这个功能,它只显示图像的红色 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]]