如何平均略有偏移的两个图像的非零像素[python]

时间:2018-11-03 14:59:36

标签: python panoramas

我有两个灰度图像,它们有轻微的偏移(〜80%重叠),我需要将它们平均成一个图像。图像周围有填充,因此重叠已经在图像内解决了(即,每个图像的x和y起始位置都不同)。这些图像以其当前偏移对齐,类似于全景图像。

我当前的方法(见下文)是使用嵌套的for循环,比较每个位置的像素强度,将它们求和,然后除以非零计数。

    combined_image=np.empty((image1.shape))
    for row in range(image1.shape[0]):
        for pixel in range(image2.shape[1]):
            temp_array = np.array((image1[row][pixel], image2[row][pixel]))
            combined_image[row][pixel] = np.sum(temp_array)/np.count_nonzero(temp_array)

我相信它可以工作,但是速度很慢,因为这些图像是1000 x 1000像素。想知道是否有更有效的方法

1 个答案:

答案 0 :(得分:0)

通常,如果将numpy与for循环一起使用,则不会利用其内置功能。<​​/ p>

使用广播操作。

combined_image =(image1 + image2)/ 2

应该更快,更简单