SimpleITK::ImageSeriesWriter はデフォルトで、指定された 3D ボリュームを Z 軸に沿ってスライスし、XY ビューで 2D イメージのスライスを書き込みます。
出力が XZ または YZ ビューになるように軸を変更するにはどうすればよいですか?
言い換えれば、デフォルトの Z 軸スライスがアキシャル ビューにある場合、どうすればコロナル ビューとサジタル ビューのスライスを取得できますか?
GitHub:FNNDSC/med2imageの出力 xyz 関数を試してみました。しかし、画像配列はやみくもに書かれているため、XとYが入れ替わったり、軸の1つが反転(反転)することがあります。そのため、完全に制御するには独自のコードを作成する必要があると感じています。
def slice(dcm_folder, output_stem):
print('Reading Dicom directory:', path.abspath(dcm_folder))
reader = sitk.ImageSeriesReader()
dicom_names = reader.GetGDCMSeriesFileNames(dcm_folder)
reader.SetFileNames(dicom_names)
image = reader.Execute()
# cast the bit depth to PNG compatible "unsigned char"
image = sitk.Cast(sitk.RescaleIntensity(image), sitk.sitkUInt8)
size = image.GetSize()
print( "Image size:", size[0], size[1], size[2] )
# need Z filenames to write
series_filenames = list([output_stem + '-slice' + str(i).zfill(3) + '.png' for i in range(size[2])])
print('Writing {} image slices'.format(size[2]))
writer = sitk.ImageSeriesWriter()
writer.SetFileNames( series_filenames )
writer.Execute(image)
上記のコードは、Z 軸のスライスを正常に書き出します。別の 2 つのビューのスライスを取得できるようにコードを変更するにはどうすればよいですか?