我目前正在使用一个numpy数组,其中包含形状(宽度,高度,3)的像素颜色信息。
我希望能够用新数组中描述的颜色替换原始数组中的颜色,并在可能的情况下进行WITHOUT循环。
我尝试用花式索引对它进行索引,但不确定如何正确索引。
函数最好是这样的:
>>>import numpy as np
>>>imgdat = np.random.randint(0, 255, size=(2, 2, 3))
>>>imgdat
[[[138 149 41]
[100 186 136]]
[[181 202 169]
[205 247 195]]]
>>>pixels = np.random.randint(0, imgdat.shape[0], size=(2, 2))
>>>pixels
[[1,0]
[0,1]]
>>>colors = np.random.randint(0, 255, size=(2, 3))
>>>colors
[[ 16 229 138]
[ 86 76 209]]
######apply the function#######
>>>filledimgdat = fillPixels(imgdat, pixels, colors)
>>>filledimgdat
[[[ 138 149 41]
[ 86 76 209]]
[[ 16 229 138]
[205 247 195]]]
编辑:
因为我最初的描述有点不清楚,所以我想做的是替换imgdat中特定索引处的特定颜色。如果有人想出一种更好的方式来格式化数据类型或处理信息以简化这样的操作,那也将受到欢迎。