シンプルなITKで3D画像を回転しようとしています。 ここに私のコードです: imagetoresize元の画像です。画像のサイズは(512,512,149)です。3D画像回転シンプルなITK Python
targetimage = imagetoresize
origin = imagetoresize.GetOrigin()
targetimage = imagetoresize
imagetoresize.SetOrigin((0,0,0))
transform = sitk.VersorTransform((0,0,1), np.pi)
transform.SetCenter((256,256,74))
outimage=sitk.Resample(imagetoresize,targetimage.GetSize(),transform,sitk.sitkLinear,[0,0,0], imagetoresize.GetSpacing(), imagetoresize.GetDirection())
outimage.SetOrigin(origin)
コードは画像を回転しますが、中心は移動します。
Orginal Image Image after rotate
なぜセンターがシフトされたのか説明できますか?
ご協力いただければ幸いです。
物理的なポイントが画像のインデックスと同じであると思われるようです。あなたのイメージの残りのメタデータを共有できますか?間隔、原点、および方向のマトリックス。 – blowekamp
Orginal: 寸法:3つの 寸法:512 512 149 マトリックス: 0.832031 0 0 0 0.832031 0 0 0 1.5 オフセット:[-200.584、-382.084、-1431.5] センター:[0、0、0 ] 翻訳:[-200.584、-382.084、-1431.5] 逆: 1.20188 0 0 0 1.20188 0 0 0 0.666667 スケール:1 1 1 起源:[-200.584、-382.084、-1431.5] 間隔:[0.832031,0.832031,1.5] EvenlySpaced:1 DirectionVector:[0、0、1 ] スライス:149 – Noobie555
回転: 寸法:3つの 寸法:512 512 149 マトリックス: 0.832031 0 0 0 0.832031 0 0 0 1.5 オフセット:[-200.584、-382.084、-1431.5] センター:[ 0、0、0] 翻訳:[-200.584、-382.084、-1431.5] 逆: 1.20188 0 0 0 1.20188 0 0 0 0.666667 スケール:1 1 1 起源:[-200.584、-382.084、 -1431.5] 間隔:[0.832031,0.832031,1.5] 等間隔:1 DirectionVector:[0、0、1] スライス:149 – Noobie555