我有两个灰度图像,它们有轻微的偏移(〜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像素。想知道是否有更有效的方法
答案 0 :(得分:0)
通常,如果将numpy与for循环一起使用,则不会利用其内置功能。</ p>
使用广播操作。
combined_image =(image1 + image2)/ 2
应该更快,更简单