在Matlab中将一系列图像对齐在一起

时间:2012-02-29 20:13:42

标签: image matlab alignment

我正试图在matlab中将一系列图像对齐。

我有一系列彼此非常相似的图像。它们在x或y方向上略微偏移。图像的每个角上都有4个十字准线,以帮助对齐。我想将它们对齐,使整个系列位于所有四个十字准线的顶部。我还希望在文件对齐后找出文件之间的任何差异。

我一直在努力让对齐工作,但我似乎无法在matlab中找到它。

这是两个示例图像。 [1] [2]

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我猜image registration是您可能正在寻找的。

答案 1 :(得分:0)

尝试

%size(img2) <= size(img1) 

img1 = 255-mean(imread('a1.png'),3); 
img2 = 255-mean(imread('a2.png'),3); 

c = normxcorr2(img2,img1); 
[y x] = find(c==max(c(:))); 
y = y-size(img2,1); 
x = x-size(img2,2); 

T = maketform('affine',[1 0 x;0 1 y; 0 0 1]'); 
img2N = imtransform(img2,T,'xdata',[1 size(img1,2)],'ydata',[1 size(img1,1)]); 
imagesc(max(img1,img2N));
axis image