您可以使用Python,使用numpy和matplotlib模块生成这样一个翻译(移位)图像堆栈。Pillow(另一个Python模块)本身也可以做到这一点,但是我必须研究如何确保重叠像素的值被添加,而不是被覆盖。在

下面是一个numpy+matplotlib解决方案,从一个测试图像开始:import numpy as np

import matplotlib.pyplot as plt
img1 = plt.imread('img.png')

对于下面的文章,一个非常简单的测试图像显示在这篇文章的末尾,这也将用来显示不同的叠加选项(覆盖或相加,即加权不透明度与等权重)。在

^{pr2}$

其实很简单:预先计算输出图像的大小,初始化它使其具有完全透明性,然后将基本图像“丢弃”到该文件中,每次偏移一定的偏移向量。有趣的部分出现在部分重叠的时候。然后你有一些选择:覆盖之前的内容。在本例中,将+=运算符改为=。另外,不要按层数缩放。在

以加权的方式加入。您应该将每个通道中的所有强度值按一定的权重重新缩放(在上面的示例中,重要性相同),然后添加这些值。根据a.o.的权值,你有可能使像素饱和。然后,您可以选择剪裁数组(从而导致信息丢失)或简单地按新获得的最大值重新缩放所有内容。上面的例子通过在对imsave的调用中指定vmin和{}来使用剪切。在

这里显示的测试图像包含4个透明的方块,但是这些方块不容易与左上一行的2个白色方块区分开来。添加它们是为了说明透明度的增加和重新缩放的效果(白色变为灰色)。在

运行上述代码后,您将得到类似这样的结果(尽管要更改偏移量)(“add”)

或者像这样(“覆盖”)

当像素重叠时,您还可以考虑其他一些方法来反映您想要做的事情。这两种情况可能是最常见的。无论如何,这里列出的方法应该给你一个良好的开端。在