如何使两幅图像仅几个像素在垂直方向?

19日视图(30天)
嗨,伙计们,
有两个图片和他们几个像素在垂直方向(Y)。我想自动对齐它们。我的计划是在两张图片画一条线,计算归一化互相关峰值和找到坐标。的想法是 注册一个使用归一化互相关图像 。但我不知道如何找到两条线之间的偏移。
normxcorr2_2diff = normxcorr2 (template_line other_line);
[max_c, imax] = max (abs (normxcorr2_2diff (:)));
[ypeak, xpeak] = ind2sub(大小(normxcorr2_2diff), imax (1));
在上面的代码中,大小(template_line) = 89,大小(other_line) = 176,大小(normxcorr2_2diff) = 264, ypeak = 135。你可以从附件负载template_line和other_line .mat文件。所以我们如何能找到偏移量从这些结果?如果可以确定偏移量,我可以使用 imtranslate 把线(图片)。让我们使用template_line作为参考(固定)和想移动other_line对齐。
这是我的想法。否则,有其他更容易或更直接的方法呢?自两图像只在Y方向上几个像素,有没有全球的方法(基于两个完整的图片,然后发现Y方向的偏移量)使他们吗?我也考虑 imregister 。但还没有找出如何使用它在我的例子中。
非常感谢。

答案(3)

图像分析
图像分析 2014年11月9日
你想使用imregister()而不是normxcorr2 ()。有一个例子的帮助,您可以很容易地适应。
3评论

登录置评。


亚历克斯·泰勒
亚历克斯·泰勒 2014年11月11日
也看看imregcorr。它使用阶段比imregister相关性和更容易使用。我从这里开始。
1评论
YZ
YZ 2014年11月11日
谢谢你,亚历克斯。
两个图像的差异是微妙的,可能只有1或2像素沿Y方向。我用下面的代码:
固定= img_alldyn (:: 1);
移动= img_alldyn (:: 2);
tformEstimate = imregcorr(移动,固定的,“翻译”);
movingReg = imwarp(移动,tformEstimate);
图;
次要情节(1,3,1);imshow(固定,[]);imcontrast;
次要情节(1、3、2);imshow(移动,[]);imcontrast;
次要情节(1,3,3);imshow (movingReg []);imcontrast;
因此,tformEstimate。T = [1, 0, 0, 0, 1, 0, 0, 0, 1]。这是什么意思?
谢谢你!

登录置评。


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!