4

我正在使用 Matlab R2013a 对齐两个相似的图像。输出看起来很好,除了两个图像由于 ax,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。

感谢您的任何提示!都林

4

2 回答 2

3

在 OutputView 中,您需要 size(B),因为 B 是您的参考图像,并且您希望 A 的重新采样版本与 B 具有相同的大小。

于 2013-06-27T02:42:55.047 回答
2

将函数 X 的输出图像的大小设置为与imwarp要在其上叠加 X 的输入图像 B 的大小相同。

X = imwarp(A, Transformation, 'OutputView', imref2d( size(B) ));

然后,您可以使用imfuse重叠两个图像并使用显示它imshow

falseColorOverlay = imfuse( B, X);
imshow( falseColorOverlay, 'initialMagnification', 'fit');

B 将显示为绿色,而 X 将显示为洋红色。

于 2015-09-08T21:30:00.113 回答