DICOM→NIFTIに変換する際に、MRI画像の左右を反転する方法はありますか?というご質問をいただきました。
DICOM→NIFTIの際に変換する方法は私が知る限りあまりないと思いますが、NIFTI画像に対する方法はあります。
この方法を紹介します。
FSLに、”MNI152_T1_2mm_LR-masked” というファイルがあります。
画像の反転の確認にはわかりやすいファイルなので、今回はこれを使用します。
Mangoで見ると、画像に埋め込まれている”R”が実際にR側にあることに気をつけてください。
- FSLでの反転
FSLでは、”fslswapdim”というコマンドがあります。これを使えばOKです。
使い方は、以下のとおりです。
fslswapdim <入力画像> -x y z <出力画像>
これからわかるように、y や z に – をつければ、y軸、z軸も反転できます。
実際にやってみます。出力ファイルは、flippedとつけましょう。
fslswapdim MNI152_T1_2mm_LR-masked -x y z MNI152_T1_2mm_LR-flipped
これを表示してみます。
反転していることがわかります。
なお、複数行いたい場合には、これを for ループに入れるなどしたらいいでしょう。あるディレクトリにある NIFTIファイルを全部ひっくり返したかったら、
for f in *.nii*; do fslswapdim $f -x y z ${f%.nii*}_flipped; done
とすれば、LR反転した画像が生成され、ファイル名の最後に _flipped がつきます。
SPMでは、Batch -> SPM -> Util -> Reorient images
を用いることで反転できます。
- Images to reorient
- Reorient by Reorientation Matrix
- Filename Prefix
ここに、左右を反転したい画像を指定します。複数指定できます。
ここに行列を入れます。左右を反転させる行列は以下の行列になります
-1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
これは、Matlabでは、[-1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1] として指定できます。
なんでもいいですが、flipということで、 f にしてみましょう。
これを実行すると、同様にフリップした画像を作成できます。
ちなみに、毎回はめんどくさいので、簡単なスクリプトを準備してみました。
flip_batch.mをダウンロード(右クリックで保存してください)
これをMatlabのパスが通っているディレクトリに保存していただき、
Matlabから、
>> flip_batch
とタイプしていただくと、画像選択画面が開きますので、そこでフリップしたい画像を選択していただければ、先程のBatchウィンドウが立ち上がります。
おためしあれ。