我有以下两张图片
我正在努力实现以下结果(图像具有透明度)。你知道吗
我目前的解决方案是“暴力”的差异,但它真的是低效的。(prev
和curr
是Image
对象)。你知道吗
def compare(prev, curr):
out = PIL.Image.new("RGBA", curr.size)
width, height = curr.size
for x in range(width):
for y in range(height):
if prev.getpixel((x, y)) == curr.getpixel((x, y)):
out.putpixel((x, y), (0, 0, 0, 0))
else:
out.putpixel((x, y), (*curr.getpixel((x,y)),))
return out
我有权使用PIL和numpy。有没有更好的方法使用这两个库?你知道吗
curr* np.any(prev!=curr, axis=2, keep_dims=True)
如果
curr
和prev
是numpy数组,并且您想在curr==prev
的索引处用0替换,那么您可以做np.any(prev!=curr, axis=2)
得到一个二进制掩码,它将是1,其中prev
和curr
不相等,其他地方为零。然后你可以把它和curr相乘。你知道吗相关问题 更多 >
编程相关推荐