在一系列图像中检测公共区域的方法

Methods to detect a common area in a series of images

假设我们有一系列数字图像 D1,...,Dn。可以肯定的是,我们认为这些图像具有相同的大小。问题是找到最大的公共区域——所有输入图像共享的最大区域。

我想如果我们有一个算法来检测两张输入图像 A 和 B 中的此类区域,我们可以将其推广到 n 幅图像的情况。

这个问题中最困难的是图像 A 中的这个区域不必完全相同,像素到像素,等于图像 B 中的相同区域。例如,我们使用 phone 相机拍摄建筑物的两张照片。我们的手在颤抖,结果第二张照片有点脱落。每张照片中存在的噪点也增加了不确定性。

我应该研究什么算法来解决这类问题?

简单但近似的解决方案,首先。

  • 重新缩放图像,使抖动幅度小于一个像素。

  • 计算所有图像中每个像素的标准差。

  • 考虑偏差低于阈值的像素。


作为第二个近似值,您可以使用全分辨率图像作为模板,但仅限于如上获得的区域。然后将其他图像配准到它。注册模型只能平移,但允许旋转会更好。

不幸的是,registration 并非易事。对于您的小排量,Lucas-Kanade 或 Shi-Tomasi 可能是合适的。

注册后可以重新进行偏差测试,以获得更好的圈定区域。

我会使用像 SURF(或 SIFT)这样的方法:计算每张图像的 SURF,看看是否有共同的兴趣点。共同兴趣点将是您正在寻找的区域。多亏了 SURF,该区域不必在相同的位置或比例。