我正在使用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
值。
任何人都可以帮忙吗?还有其他子像素互相关方法吗?
答案 0 :(得分:0)
通过乘以傅里叶域中的复共轭来计算规则的互相关,可以得到一个可以用子像素精度进行定位的漂亮峰值。要找到峰值的位置,请将抛物线拟合到最大值的3x3邻域。
DIPimage函数findshift
实现了此方法以及其他一些方法。 The C++ source code is here如果您有兴趣了解它是如何实施的。