如何在子像素精度下找到图像之间的配准?

时间:2018-04-16 23:49:13

标签: matlab image-processing cross-correlation

我正在使用Matlab并使用互相关进行图像配准。我使用了这段代码:https://www.mathworks.com/matlabcentral/fileexchange/18401-efficient-subpixel-image-registration-by-cross-correlation

但是,对于我所看到的专有图像的某个边缘,我注意到dftregistration没有为row_shift值提供良好的结果。但是,当我用这个替换95-100行时:

CC = normxcorr2(buf1ft, buf2ft);

我得到了更好的结果,因为row_shift不再有这么多零值。但是,我不再获得sub-pixel值的row_shift值。

任何人都可以帮忙吗?还有其他子像素互相关方法吗?

1 个答案:

答案 0 :(得分:0)

通过乘以傅里叶域中的复共轭来计算规则的互相关,可以得到一个可以用子像素精度进行定位的漂亮峰值。要找到峰值的位置,请将抛物线拟合到最大值的3x3邻域。

DIPimage函数findshift实现了此方法以及其他一些方法。 The C++ source code is here如果您有兴趣了解它是如何实施的。