通过互相关高效的亚像素图像配准。

注册两个图像(二维刚性翻译)在用户指定的一个像素的一小部分。而不是计算在FFT(快速傅里叶变换),这个代码使用选择性upsampling矩阵相乘的DFT(离散英尺)显著减少计算时间和内存不牺牲准确性。在这个过程的所有图像点是用来计算upsampled互相关在一个很小的社区在顶峰。这个算法被称为单步DFT算法[1]。

[1]Manuel Guizar-Sicairos塞缪尔·t·瑟曼和詹姆斯·r·Fienup“高效的亚像素图像配准算法,选择列托人。33岁,156 - 158 (2008)。

内容

语法

引用的代码接收FFT和移位的图片,和一个(整数)upsampling因素。预计fft算法的代码与直流(1,1)所以不要使用fftshift。

输出= dftregistration (fft2 (f), fft2 (g), usfac);

1 / usfac中的图像注册一个像素。

(1)输出归一化均方根误差(NRMSE) f和g之间[1]。

输出(2)是全球两幅图像之间的相位差(应该是零如果图片是实值和非负)。

输出(3)和输出(4)之间的行和列的变化分别f和g。

(输出格雷格)= dftregistration (fft2 (f), fft2 (g), usfac);

格雷格是一个可选的输出,它返回的傅里叶变换的注册版本g,在全球相位差(输出(2))也补偿。

获得一个参考和移动图像

为了说明算法的使用,允许获得一个参考和改变形象。首先我们阅读参考图像f (x, y)

f = im2double (imread (“cameraman.tif”));

g (x, y)定义为一个版本的f (x, y)转移部分的像素值,乘以一个全球阶段。

deltar = 3.48574;deltac = 8.73837;阶段= 2;(nr、数控)= (f)大小;Nr = ifftshift([修复(Nr / 2):装天花板(Nr / 2) 1]);数控= ifftshift([修复(Nc / 2):装天花板(Nc / 2) 1]);(数控、Nr) = meshgrid(数控、Nr);g = ifft2 (fft2 (f)。* exp(我* 2 *π* (deltar * Nr / Nr + deltac * Nc / Nc))) * exp(我*阶段);图(1);次要情节(1、2、1); imshow(abs(f)); title(的参考图像,f (x, y) ')次要情节(1、2、2);imshow (abs (g));标题(“改变形象,g (x, y) ')

我们已经改变了图像的8.73837和3.48574像素在x和y方向上,分别添加了一个阶段的2弧度g (x, y)。的转变是实现通过应用一个线性相位的英国《金融时报》,因此我们认为的图片环绕(功能保留的一面窗口出现对面),图像是带限(由sinc函数插值)。通过阶互相关图像配准(DFT矩阵相乘和在FFT)分享这些假设。

这个注册技术是适合比较图像捕获在傅里叶域中(即评价图像重建通过全息术或相位检索)严格限带和展览的全方位的效果。

即使注册码假定限带环绕的图像,我们取得了很好的应用效果有限带宽显微镜图像,和别名图像。当改变图像带来新内容而不是包装或图像时不带限。

样本图像配准

dftregistration。f和g m接受英国《金融时报》和upsampling因素。代码预计FTs的直流(1,1)所以不要使用fftshift。

我们现在使用图像注册码注册0.01 f和g在100像素通过指定一个upsampling参数

(输出格雷格)= dftregistration (fft2 (f), fft2 (g), 100);显示(输出),
输出= 0.0008 2.0000 3.4900 8.7400

像素移位误差(区别真正的和获得的变化)是0.0016和0.0043分别在x和y方向。在预期的精度可达到0.01。注意,使用传统的在FFT方法相同的精度,需要25600 x25,600 FFT计算,这需要超过19 gb的RAM和一个非常舒适的椅子上。

下面的图显示了注册的参考图像和图像。

图(1);次要情节(1、2、1);imshow (abs (f));标题(的参考图像,f (x, y) ')次要情节(1、2、2);imshow (abs (ifft2 (Greg)));标题(“注册图像,gr (x, y) ')

免责声明

我做了一切努力来评估这段代码在不同条件下的正确工作。然而,它是用户的责任,以确保这个注册码对他们的应用程序来说是足够的。

随时给我发电子邮件与问题或评论。