FSLViewを使うと、2つの画像を簡単に重ねあわせて表示できるわけですが、その際に様々なオプションを組み合わせることで画像をわかりやすく見せることができます。
主に3つ覚えておけば、結構いけるなと思いましたので、その3つを紹介します。
その3つとは、
- -l (Lookup table)
- -b (Brightness)
- -t (Transparency)
です。
- -l オプション
lは、”Lookup table”からきています。日本語訳は、「参照テーブル」となっていますが、わかりやすく言えばカラースケールです。-l の後に使いたいカラースケールを指定します。たとえば、Red-Yellowを使いたいのならば、
fslview image.nii -l Red-Yellow
とします。
FSLViewには、様々なカラースケールが用意されています。一度、全部をきちんと見てみたいと思いましたので、この機会に紹介します。
- Greyscale
- Red-Yellow
- Blue-Lightblue
- Red
- Blue
- Green
- Yellow
- Pink
- Hot
- Cool
- Copper
これはグレースケールなので画像の紹介は割愛します。
bは、”brightness”からきています。画像がもつ値のどこからどこまでを表示するかを決定します。下限と上限の値をカンマで区切って示します。
例えば、画像が、もし、Z-score画像だとしたら、Z値が2から5まで表示したいとすると、
$ fslview z-score_map.nii -b 2,5
となりますし、もし、相関係数を持っている画像だとしたら、相関係数を0.4から1まで表示したいとすれば、
$ fslview correlation_map.nii -b 0.4,1
となります。
tはtransparencyの略です。透過度を設定するわけですね。といっても、これは不透明度と理解した方がよく、1は不透明で、背景画像の上にベタッと乗る感じになります。0.5は半透明になります。
ということで、もし、形態MRI画像 V_001.nii の上に、fMRIの結果 RSN_001.nii を表示する際に
カラースケール: Red-Yellow
表示幅: 0.4-1
不透明度: 6割
とするならば、そのコマンドは
$ fslview V_001.nii RSN_001.nii -l Red-Yellow -b 0.4,1 -t 0.6
となるわけです。
これを理解しておくと、fslviewを使っているスクリプトを見るときに、何をやりたいのかが比較的すんなり頭に入ってくるかと思います。
いつも拝見させていただいています。
fslviewに関する質問なのですが、T1画像にtract画像をoverlayし、2つの画像をfusionした状態で1つの画像としてsaveする事は可能でしょうか?
ご質問ありがとうございます。
回答としては、fslview だけでは、できません。
以下の作業が必要になります。
flirtを使って、T1とtract画像の位置合わせを行う
overlayを使って、2つの画像を重ねあわせる
overlayの書式は以下になります。
overlay 1 0 T1_image Tract_image Tract_imageの表示したい最小値 最大値 出力画像
最初の1は、0が不透明、1が透過画像
次の1は、0が浮動小数点、1が整数 という意味なので、自分の設定にあわせて変更すればいいと思います
そして、この出力画像はFSLで表示できます。
試してみていただけたらと思います。
ご連絡ありがとうございます。
さっそく試してみました。
overlay 1 0 T1_image Tract_image Tract_imageの表示したい最小値 最大値 出力画像
をコマンドしましたら
Usage: overlay [-c] [stat_image_2 s2min s2max] [cbartype] [cbarfilename]
colour_type: 0=solid 1=transparent colours
output_type: 0=floating point (32 bit real) 1=integer (16 bit signed integer)
-c : use checkerboard mask for overlay
can be replaced by -a for automatic estimation of background display range or -A to use the full image range
valid cbartypes colours are: ybg, valid cbartypes options are: s (stack)
と返ってきたのですが、何が間違っているのでしょうか。
先ほどのコメントは削除ください。
can be replaced by -a for automatic estimation of background display range or -A to use the full image range
の部分が足りなかったようです。
-aを追加したところ うまくいきました。
ありがとうございました。
ご報告ありがとうございます。
すみません、私の方で、-a の説明が抜けていましたね。
overlay 1 0 T1_image -a Tract_image Tract_imageの表示したい最小値 最大値 出力画像
ですね。
無事にできたようでよかったです。
ありがとうございました。
また、先生の方で、使いやすいnifitiをdicomに変換するソフトをご存じでしたら御教授ください。
nifti -> dicom ですね。
私はUbuntuを使っていますが、
vtk-dicom-toolsというプログラムに、その名の通り niftitodicom というツールがありますので、それを使っています。
ただ、他のOSに対応しているかはわからないので、参考になるかどうか…。
早速ありがとうございました。やってみます。
いつも参考にさせて頂いてます。
fslviewでcolorbarを表示させたく、
/usr/local/fsl/etc/lutsでcolorbar.nii.gz.を追加したらいいのかと思いましたが、違っていました。
どのように行ったらいいのでしょうか。
よろしくお願いいたします。
ご質問ありがとうございます。
これは私も以前調べたことがありまして、
結論としては、私が知る限り、スマートな方法はないです。
fslviewで、colorbar.nii.gzを表示し、
自分が表示したいLook up tableを選択することで、
必要なカラーバーが表示されます。
それをスクリーンショットでとって、(何らかの画像ソフトを使って)統計画像のスクリーンショットにくっつけてください
というのが今のところできることのようです。
参考リンクとしては、
FSLの開発者のコメントがこちら。
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=FSL;ac1a60ba.1007
その他の方々のコメントはこちら。
http://yuanchangleong.blogspot.jp/2014/09/fsl-tips.html
https://www.nitrc.org/forum/forum.php?thread_id=3825&forum_id=2
あまり役にたたない回答ですみませんが、ご参考まで。
Yellow barだけに関しては、overlayというコマンドを使うと一応カラーバーを作れますが、
それでも利便性という点ではいまいちです…。
先生のご指摘や参考リンクにあるやり方でfslviewで、colorbar.nii.gzを選択し、表示させようとしていますが、うまくいきません。「Unable to load incompatible overlay! All overlays must have same dimensions as the base image!」という表示がでます。何が間違っているのでしょうか。
すみません、言葉足らずでした。
FSLViewでoverlayするのではなく、
純粋に、FSLViewでcolorbar.nii.gzのみ表示していただく必要があります。
そうすると、カラーバーが表示されますので、それをスクリーンショットにとります。
そして、別に、ご自身のデータの結果をFSLViewで表示して、それもスクリーンショットにとります。
その2つのスクリーンショットを何らかのペイント系ソフトで連結(もしくは重ね合わせ)することで、
カラーバーが表示された結果を得ることができるということです。
これでいかがでしょうか。
早速ありがとうございます。お陰様でできました!
いつもながら素早いレスポンスで感激しております。
無事にできたようでよかったです!
臨床業務以外では、PCの前に座っていることが多いので、インターネット依存状態です…(苦笑)