FSLやSPMを用いて画像の左右を反転する方法

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
  • SPMでは、Batch -> SPM -> Util -> Reorient images

    を用いることで反転できます。

    • Images to reorient
    • ここに、左右を反転したい画像を指定します。複数指定できます。

    • Reorient by Reorientation Matrix
    • ここに行列を入れます。左右を反転させる行列は以下の行列になります

      -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] として指定できます。

    • Filename Prefix
    • なんでもいいですが、flipということで、 f にしてみましょう。

    これを実行すると、同様にフリップした画像を作成できます。

    ちなみに、毎回はめんどくさいので、簡単なスクリプトを準備してみました。

    flip_batch.mをダウンロード(右クリックで保存してください)

    これをMatlabのパスが通っているディレクトリに保存していただき、

    Matlabから、

    >&gt; flip_batch
    

    とタイプしていただくと、画像選択画面が開きますので、そこでフリップしたい画像を選択していただければ、先程のBatchウィンドウが立ち上がります。

おためしあれ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください