关于图片:在matlab中求两张非常相似的图片之间的angular

find the angle between two very similar pictures in matlab

嗨,我找到了 2 张相似(但不相同)的图片之间的angular
?

the

the

1
2
3
4
5
6
7
8
9
hVideoSrc = vision.VideoFileReader(filename, 'ImageColorSpace', 'Intensity');

imgA = step(hVideoSrc); % Read first frame into imgA
imgB = step(hVideoSrc); % Read second frame into imgB

    figure; imshowpair(imgA, imgB, 'montage');
    title(['Frame A', repmat(' ',[1 70]), 'Frame B']);
figure; imshowpair(imgA,imgB,'ColorChannels','red-cyan');
title('Color composite (frame A = red, frame B = cyan)');

来自 http://www.mathworks.com/help/vision/examples/video-stabilization-using-point-feature-matching.html
但这无济于事
任何人都有 idia


只是想指出,从 R2014a 开始,图像处理工具箱中存在与帕特里克建议非常相似的算法。它被命名为 imregcorr,并在对数极坐标域中使用相位相关。这对于这个问题可能也很有效,我还没有尝试过。

http://www.mathworks.com/help/images/ref/imregcorr.html

http://adessowiki.fee.unicamp.br/media/Attachments/courseIA369O1S2011/Ex13/phasecorrelation5.pdf


我建议进行某种特征检测,然后使用它来查找单应矩阵。这可能有点矫枉过正,但至少您不仅可以找到一张图像相对于另一张图像的旋转,还可以找到任何剪切或平移。

检查作为计算机视觉工具箱一部分的特征检测模块,以帮助您检测关键点:http://www.mathworks.com/help/vision/feature-detection-extraction-and-matching.html

找到对应点对后,请查看重建将一张图像变形为另一张图像所需的单应矩阵。这些幻灯片很棒:http://www.comp.nus.edu.sg/~cs4243/lecture/camera.pdf。请看幻灯片 29 - 35。

一旦你找到了单应矩阵,你就可以很容易地通过检查系数和应用反三角运算来确定旋转angular。

编辑(2014 年 4 月 7 日):我找不到实际的 MATLAB 示例,但 Dima 的链接(谢谢!)向您展示了一个通过 MathWorks 完成的 MATLAB 示例(http://www. mathworks.com/help/vision/examples/find-image-rotation-and-scale-using-automated-feature-matching.html)。


在对数极坐标中进行相关。这为您提供了比例和旋转测量值(极轴为您提供了旋转分量)。

这是一个参考。这个在光学领域描述了相同的方法,但是对于可视化和理解该方法仍然非常有用。


如果你想找到两个图像之间的平面内旋转,这里有一个例子。