画像情報をまとめて見る

ディレクトリ内に複数の被験者フォルダがある時、それぞれの画像のインフォメーション(ex.ボリューム数、解像度など)を被験者番号順にまとめて見たい

例えばFSLのコマンドのfslhdを使ってDWI画像のボリューム数を見る場合、通常は

fslhd DWI.nii 

とすると

filename DWI.nii
・・・
dim0 4
dim1 256
dim2 256
dim3 74
dim4 54
・・・
dim4が四次元方向のボリューム数になります。

でも複数の被験者(C1, C2, C3・・・)の画像を一人ずつ調べるのは面倒・・・という時に、

cd image_folder
sublist=$(ls | sort -V)
for sub in $sublist; do echo $sub; fslhd $sub/DWI/DWI.nii | grep ^dim4; done

こうすると、
C1
 dim4 65 
C2
 dim4 21 
C3
 dim4 129
C4
 dim4 102
・・・

必要な情報だけまとめて吐き出してくれます。

ちなみに
$sub/DWI/DWI.nii
この部分は各被験者フォルダにどのように画像が入っているかによって変更します。この例の場合には被験者の下にDWIフォルダがあり、その中にDWI.niiが入っている状態です。

改行なしで出力したい場合は

sublist=$(ls | sort -V)
for sub in $sublist; do echo -en "$sub\t"; fslhd $sub/DWI/DWI.nii | grep ^dim4; done

echo -en "$sub\t" 
だと改行せずタブをいれてくれるので

C1     dim4 65 
C2     dim4 21 
C3     dim4 129
C4     dim4 102
・・・

となります。

MRtrix3のmrinfoは(mif形式の画像に限りますが)b値ごとの枚数を教えてくれる便利なコマンドです。

mrinfo -shell_sizes -shell_bvalues DWI.mif  


0 1000 
6 48 
上段がb値、下段がそれぞれのボリューム数になります。
この場合だとb0が6枚、b1000が48枚あるということです。

これも上記と同様にして

sublist=$(ls | sort -V)
for sub in $sublist; do echo $sub; mrinfo -shell_sizes -shell_bvalues $sub/DWI/DWI.mif; done

C1
0 1000 
1 64 
C2
0 1000 
1 20 
C3
0 600 1200 
1 64 64
・・・

簡単に必要な情報だけを集められます。


この記事が気に入ったらサポートをしてみませんか?