我有两张相似但方向和大小不同的图片。示例如下:
有没有办法匹配这两张图片?
我使用了Procrustes形状分析,但还有其他方法吗?
你需要使用对数极坐标比较…不知道它是否已经在matlab或matlab工具箱中实现了…
我会使用图像注册。找到一组匹配两幅图像的关键点,然后找到一个将两幅图像对齐的同形/变换矩阵。顺便问一下,在我写答案之前,你有计算机视觉工具箱吗?
这可能会给你一些想法:可口可乐的算法改进可以形状识别
@kkuilla-很好的链接。我很喜欢那个。
这是一些让你开始的东西。您所要求的是一个称为图像注册的经典问题。图像配准寻求找到正确的同形性,采取一个图像和另一个对齐。这涉及到寻找两个图像之间的共同兴趣或关键点,并确定两个图像之间匹配的关键点。一旦你有了这些点对,你就可以确定一个同形矩阵,并扭曲其中一个图像,使它们与另一个图像与这个矩阵对齐。好的。
我假设你有计算机视觉和图像处理工具箱,它们是Matlab的一部分。如果你不这样做,那么莫里斯给出的答案是一个很好的选择,VLFEAT工具箱也是我使用过的。好的。
首先,让我们直接从stackoverflow中读取图像:好的。
im = imread('http://i.stack.imgur.com/vXqe8.png');
im2 = imread('http://i.stack.imgur.com/Pd7pt.png');
im_gray = rgb2gray(im);
im2_gray = rgb2gray(im2);
我们还需要转换成灰度,因为关键点检测算法需要灰度图像。接下来,我们可以使用matlab的cvst中的任何特征检测算法。我将使用冲浪,因为它本质上和筛一样,但有一些细微但关键的区别。您可以使用cvst工具箱中的detectSURFFeatures函数,它接受灰度图像。输出是一种结构,