如何将Matlab的图像配准约束为仅假设旋转且平移为零?

时间:2018-08-21 17:07:01

标签: matlab image-processing image-registration

我正在使用Matlab的imregtform()函数将两个3D MRI图像相互配准。我知道两个图像都是围绕图像中心旋转而关联的,并且正在使用“刚性”变换类型来执行配准。但是,生成的转换具有较小但非零(小于0.5像素)的平移分量。有什么方法可以指定转换应完全为零吗?如有必要,我愿意使用Matlab之外的其他工具。

1 个答案:

答案 0 :(得分:0)

我认为转换是基于基准标记的,对吗?计算最小二乘刚性变换的过程如下:首先计算最小二乘旋转矩阵(R),然后使用R缩放因子(s),最后使用R和s转换向量(t)。 令fid1和fid2为其各自MRI的基准标记的xy坐标。然后将翻译向量计算为:

t = mean(fid1) - s*R*mean(fid2)

请注意,选择基准标记的平移为零时,您必须具有绝对完美的准确性。

但是,由于R和s的估计不依赖于t,因此您可以自由地删除转换后的翻译。要删除翻译,请执行以下操作:

tform = imregtform(....)

% Set the last row except the last element of the transformation 
% matrix to zero. This removes the translation.
tform.T(end,1:end-1) = 0;

% Register the two images
movingRegistered = imwarp(...,tform,...);

希望这会有所帮助