2016-11-29 3 views
0

MRI画像のスタックにCT画像のスタックを登録しようとしたときに、この変換行列をitk-snapから取得しました。洞察itk画像変換行列をmatwabの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 

今私は、MATLABでimwarpを使用して、登録を実行するには、この

Tform = affine3d(T); 
CT_stack_warp= imwarp(CT_stack,Rmoving,Tform,'OutputView',Rfixed); 

のような何かをしたいしかし、問題は、あなたは、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] 

ありがとうございます!

+0

MATLABが対応できない 'T'マトリックスの問題点は何ですか?あなたの質問ではあまり明確ではありません。 – Adriaan

+0

元のT行列の変換値を見れば、つまり、 270,280、Matlabは画像空間でそれをやっているので、明らかにあなたはMatlabでそれほど画像をずらす必要はありません。私は誰かが異なる座標系やitkとmatlabで使用されるパイプラインに精通しているのだろうかと思います。 –

答えて

0

現在のITKのインデックスはtransformで、後ろにはbackgroundです。医用イメージングで使用されるcoordinate systemsの追加説明。

MatlabのWorldLimitsで判断すると、画像をMatlabに読み込むときにworld originが無視されると思います。これは、ITK-SNAP(または他の適切に動作するソフトウェア)によって計算された変換行列を効果的に役に立たなくする。

関連する問題