如何以这样的方式对齐两张不同的图片,它们尽可能匹配?

时间:2011-02-23 22:10:39

标签: image-processing artificial-intelligence

我需要自动将图像 B 对齐在另一个图像 A 之上,以使图像内容尽可能匹配。

图像可以在x / y方向上移动并在z上旋转5度,但它们不会失真(即缩放或键控)。

也许有人可以就这个主题推荐一些好的链接或书籍,或者分享一些关于如何进行图像对齐的想法。

如果没有旋转问题,那么我可以简单地尝试用蛮力方法比较像素行,直到找到匹配,然后我知道偏移并且可以对齐图像。

我需要人工智能吗?

我很难找到有关图像处理的资源,详细介绍了这些对齐算法的工作原理。

2 个答案:

答案 0 :(得分:8)

因此,人们在这种情况下经常做的是首先在匹配的图像中找到点,然后用最小二乘法计算最佳变换矩阵。点匹配并不是特别简单,通常你只需要使用人工输入来完成这项任务,你必须一直用它来校准相机。无论如何,如果你想完全自动化这个过程,你可以使用feature extraction技术来找到匹配点,有大量关于这个主题的研究论文,任何standard computer vision text都会有一章。一旦你有N个匹配点,求解最小二乘变换矩阵非常简单,再次,可以在任何计算机视觉文本中找到,所以我假设你已经覆盖了。

如果您不想找到点对应,可以使用最陡的下降直接优化旋转和平移,麻烦的是这是非凸的,因此无法保证您会找到正确的变换。您可以在此基础上进行随机重启或模拟退火或任何其他全局优化技巧,这很可能会奏效。我找不到任何关于这个问题的参考,但它基本上是一个数字图像稳定算法,我必须在我采用计算机视觉时实现它,但多年前,here are the relevant slides,但看看“稳定性重新审视”。是的,我知道那些幻灯片很糟糕,我没有制作它们:)但是,确定渐变的方法非常优雅,因为有限的差异显然是难以处理的。

编辑:我终于找到了关于如何做到这一点的论文here,这是一篇非常好的论文,它很好地解释了Lucas-Kanade算法。此外,this site在图像对齐上有很多材料和源代码可能很有用。

答案 1 :(得分:0)

要将2个图像对齐在一起,您必须执行图像配准技术。 在matlab中,编写用于图像配准的功能,并使用“控制点选择工具”选择所需的参考功能,称为“特征点”,以注册图像。 在matlab帮助窗口中阅读有关图像注册的更多信息,以便正确理解。