我拍摄了 2 张带有交叉点的图像,现在我正在尝试比较这 2 张图像并找出移动的距离和角度。我怎样才能使用 MATLAB 来做到这一点?非常感谢你!
我拍摄了 2 张带有交叉点的图像,现在我正在尝试比较这 2 张图像并找出移动的距离和角度。我怎样才能使用 MATLAB 来做到这一点?非常感谢你!
如果图像被旋转,互相关(维基百科称之为相位相关)将不起作用。但是,有一种基于对数极坐标的相关方法,无论旋转、缩放、剪切和平移如何,它都可以工作。
如果您必须匹配任意图像,此方法将是最好的。使用其他方法更好地匹配已知形状或暗线。
如果那些黑线总是在图像中,并且它们几乎是完全笔直的(不会扭曲成曲线),那么更好的方法是使用霍夫变换或Radon 变换(一种不同的方式来考虑做同样的事情) 只找到两条黑线,然后比较它们的位置。
您将首先反转图像,使线条为亮白色(大值),然后进行霍夫变换。每个图像的输出将是两个明亮的白点,您可以从中进行峰值检测。每个峰的坐标告诉你线的角度和偏移量。
我没有在 MATLAB 中这样做,但我看到了一些示例和文档:
hough
, houghlines
, 和houghpeaks
函数