因此,当我尝试将一堆CT图像注册到一堆MRI图像时,我从itk-snap中获得了这个转换矩阵。如何将洞察itk图像转换矩阵转换为matlab中imwarp中使用的形式
T =
2.0523 -0.0277 0.1518 0
0..0405 0.3059 0
-0.1249 -0.2292 1.5095 0
270.7916 280.5018 148.7597 1.0000
现在我想执行这样
Tform = affine3d(T);
CT_stack_warp= imwarp(CT_stack,Rmoving,Tform,'OutputView',Rfixed);
在Matlab使用imwarp登记,东西,但是问题是,一旦你给Matlab的像素大小和切片厚度的信息,你不不需要按T矩阵中指定的比例或做翻译。我的问题是如何将原始T转换为我应该在Matlab中使用的T.
在您需要的信息的情况下,
Rmoving =
imref3d与性能:
XWorldLimits: [0.2441 250.2441]
YWorldLimits: [0.2441 250.2441]
ZWorldLimits: [0.5000 185.5000]
ImageSize: [512 512 185]
PixelExtentInWorldX: 0.4883
PixelExtentInWorldY: 0.4883
PixelExtentInWorldZ: 1
ImageExtentInWorldX: 250
ImageExtentInWorldY: 250
ImageExtentInWorldZ: 185
XIntrinsicLimits: [0.5000 512.5000]
YIntrinsicLimits: [0.5000 512.5000]
ZIntrinsicLimits: [0.5000 185.5000]
Rfixed =
imref3d与性能:
XWorldLimits: [0.4063 260.4063]
YWorldLimits: [0.4063 260.4063]
ZWorldLimits: [0.7500 192.7500]
ImageSize: [320 320 128]
PixelExtentInWorldX: 0.8125
PixelExtentInWorldY: 0.8125
PixelExtentInWorldZ: 1.5000
ImageExtentInWorldX: 260
ImageExtentInWorldY: 260
ImageExtentInWorldZ: 192
XIntrinsicLimits: [0.5000 320.5000]
YIntrinsicLimits: [0.5000 320.5000]
ZIntrinsicLimits: [0.5000 128.5000]
谢谢!
2016-11-29
Q_1.0
+0
你的'T'矩阵有什么问题,MATLAB无法应付它?你的问题不是很清楚。 –
+0
如果您查看原始T矩阵中的翻译值,即。 270,280,显然你不需要在Matlab中移动一个图像,因为Matlab在图像空间中完成了它。我想知道是否有人熟悉不同的坐标系或itk和matlab中使用的管道。 –