我有几个不同的图像,我想将图像的每个透明像素更改为不同的颜色。
我找到了一种提取图像透明像素的所有 RGB 值的方法,如下所示:
data[data[:,:,3]==0,:3][0]
现在,当我尝试为该像素分配不同的数组时,它不起作用:
data[data[:,:,3]==0,:3][0] = np.array([255,0,255])
print(data[data[:,:,3]==0,:3][0])
Out[1]: [0 0 0]
如何更改此像素?
最佳答案
虽然矢量化操作可能可用于我想要实现的目标,但我发现可行的解决方案如下。
for h in range(0,data.shape[0]):
for w in range(0,data.shape[1]):
if data[h, w][3] == 0:
data[h, w] = np.random.randint(0,255), np.random.randint(0,255), np.random.randint(0,255), 255
这会遍历图像中的每个像素,然后检查该像素是否透明,如果是,则随机化该像素的 RGB 值。可能相当慢,但按预期工作!
关于python - 更改像素透明背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017327/