gpt4 book ai didi

python - 带有图像的 Numpy.putmask

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:09 26 4
gpt4 key购买 nike

我将图像转换为具有 RGBA 值的 ndarray。假设它是 50 x 50 x 4。

我想用 array([255, 255, 255, 255]) 的值替换所有像素 array([0, 0, 0, 0])。所以:

from numpy import *
from PIL import Image
def test(mask):
mask = array(mask)
find = array([255, 255, 255, 255])
replace = array([0, 0, 0, 0])
return putmask(mask, mask != find, replace)

mask = Image.open('test.png')
test(mask)

我做错了什么?这给了我一个 ValueError: putmask: mask and data must be the same size。然而,如果我将数组更改为数字(find = 255,replace = 0),它会起作用。

最佳答案

更简洁的方法是

img = Image.open('test.png')
a = numpy.array(img)
a[(a == 255).all(axis=-1)] = 0
img2 = Image.fromarray(a, mode='RGBA')

更一般的,如果findrepl的项不完全相同,你也可以这样做

find = [1, 2, 3, 4]
repl = [5, 6, 7, 8]
a[(a == find).all(axis=-1)] = repl

关于python - 带有图像的 Numpy.putmask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5533996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com