我正在使用Matlab R2013a来对齐两个相似的图像。输出看起来很好,但两个图像由于x,y错位而不适合。我认为这是由于图像的旋转造成的。是否有一种简单的方法可以使图像“居中”,这样在仿射变换后两个图像都可以叠加?
Transformation = imregtform(uint8(A),uint8(B),'affine', ...
optimizer,metric);
[X RB] = imwarp(A,Transformation,'OutputView',imref2d(size(A)));
B是原始图像。 A被注册到B.在仿射变换之后,X包含旋转和缩放的图像,但需要在x和y轴上对齐以完全适合A.
感谢任何提示! 都灵
答案 0 :(得分:3)
在OutputView中,您需要大小(B),因为B是您的参考图像,并且您希望重新采样的A版本与B具有相同的大小。
答案 1 :(得分:1)
设置imwarp
函数X的输出图像的大小,与要覆盖X的输入图像B的输出图像的大小相同。
X = imwarp(A, Transformation, 'OutputView', imref2d( size(B) ));
然后,您可以使用imfuse
重叠两张图片并使用imshow
显示:
falseColorOverlay = imfuse( B, X);
imshow( falseColorOverlay, 'initialMagnification', 'fit');
B将为绿色,而X将为品红色。