【FSL】画像の向きの確認と修正


1. 目的
2. コマンド
3. 使用例
4. おまけ


1. 目的

DICOMからNIfTIに変換した画像をFSLの画像ViewerであるFSLeyesで確認すると、FSLeyesでの表示がおかしい(画像の向きがおかしい)ときがある。

例えば、以下のようになる(上段:正常、下段:異常)。

解析をする際に、データあるいは被験者ごとに向きが異なっていると解析エラーを起こす場合がある(例:同一被験者のT1WIとDWIの向きが異なる、FAとアトラス(関心領域)の向き異なる)。特に、FSLで解析する場合には、この向きの違いが解析結果に影響することが多く、解析前に画像の向きの標準化をしておいた方が無難である。

そこで、この記事では「画像の向きの確認と修正方法」について解析する。

なぜ、画像の向きに違いが出るのか?向きはヘッダーの何にあたるのか?向きとはどのようにして決まるのか?といった詳細については、こちらを参考にするとよい。

2. コマンド

FSLコマンドで画像を確認するには、fsleyesを用いる。基本的な使い方は、以下の通り。

fsleyeys <入力画像>

向きがおかしい場合は、FSLのfslreorient2stdコマンドを用いる。fslreorient2stdコマンドを実行することで、標準脳(MNI152)と同じ向きに揃えてくれる。基本的な使い方は、以下の通り。

fslreorient2std <入力画像> <出力画像>

3. 使用例

向きがおかしい3D-T1WI(T1_orientation_false.nii.gz)を、fsleyesで表示してみる。

fsleyes T1_orientation_false.nii.gz

実行すると、次のような画像が表示される。

次に、向きがおかしい3D-T1WI(T1_orientation_false.nii.gz)に対して、fslreorient2stdを実行する。

fslreorient2std T1_orientation_false.nii.gz T1_orientation_corrected.nii.gz

向きを修正した画像(T1_orientation_corrected.nii.gz)を表示して、向きが修正されたことを確認する。

fsleyes T1_orientation_corrected.nii.gz

4. おまけ

画像の向きは、FSLのNIfTIヘッダーを確認するfslhdコマンドで表示される「qform_?orient」で確認することができる。

画像の向きを修正した画像(T1_orientation_corrected.nii.gz)に、fslhdコマンドを実行するには、次のようにする。

fslhd T1_orientation_corrected.nii.gz

画像の向きを修正した画像(T1_orientation_corrected.nii.gz)と、向きがおかしい画像(T1_orientation_false.nii.gz)のqform_?orientを比較したものは以下。

# 画像の向きを修正した画像(T1_orientation_corrected.nii.gz)
qform_xorient	Right-to-Left
qform_yorient	Posterior-to-Anterior
qform_zorient	Inferior-to-Superior

# 向きがおかしい画像(T1_orientation_false.nii.gz)
qform_xorient	Posterior-to-Anterior
qform_yorient	Right-to-Left
qform_zorient	Inferior-to-Superior

また、MRtrixのNIfTIヘッダーを確認するmrinfoで出力される「Data strides」でも確認することができる。

画像の向きを修正した画像(T1_orientation_corrected.nii.gz)に、mrinfoコマンドを実行するには、次のようにする。

mrinfo T1_orientation_corrected.nii.gz

画像の向きを修正した画像(T1_orientation_corrected.nii.gz)と、向きがおかしい画像(T1_orientation_false.nii.gz)のData stridesを比較したものは以下。

# 画像の向きを修正した画像(T1_orientation_corrected.nii.gz)
Data strides:      [ -1 2 3 ]

# 向きがおかしい画像(T1_orientation_false.nii.gz)
Data strides:      [ -2 1 3 ]

【FSL】画像の向きの確認と修正” へのコメント

  1. いつもありがとうございます。fslreorient2stdで処理した時にfsleyesでみられる画像は正しくなったのですが、mrinfoで確認すると Data strides: [ 1 2 3 4 ]となっています。これは正しく変換されているのでしょうか。

    • Data strides は、軸の順序 (order of axes)を意味します。

      数値の順序は、データがどの順序で格納されているかを示します。例えば、[1, 2, 3] であれば、1番目の軸(通常X軸)、2番目の軸(Y軸)、3番目の軸(Z軸)の順でデータが格納されていることを意味します。

      各数値の正負は、その軸に沿ってデータが増加する方向を示します。正の値は通常の方向、負の値は逆方向を意味します。

      例えば、”data strides: -1, 2, 3″ という出力があった場合:

      X軸(1番目の軸)のデータは逆方向に格納されている
      Y軸(2番目の軸)のデータは通常の方向に格納されている
      Z軸(3番目の軸)のデータは通常の方向に格納されている

      となります

      今回の 4 はfMRIやDWIで4番目の情報である時間軸や印加軸です。

      なので、[1 2 3 4] は正しいということになります。

コメントを残す

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