3D Slicerの使い方 基本の基 データインポートからカラーバーの出し方まで
こんにちは、個人事業OguLinks代表の小倉(@jun_ogulinks)です。
3D Slicerのバージョンが5.0になってからボタンや機能の配置が一部変わりました。
しかし、この変更は以前のバージョンよりも使いやすくなり個人的には好印象です。
全ての機能の変更については把握しきれていませんが、せっかくなので基本操作方法の変更があったところを含めて基本の基として初心者向けに解説をしていこうと思います。
この記事を読むことで以下のことができるようになります。
- 3D Slicerへの画像データの読み込み
- 読み込んだ画像データの表示および表示方法の変更など
- カラーバーの表示を編集方法
3D Slicerへの画像データの読み込み
画像データの読み込みは非常に簡単ですが、皆さんはDICOM形式とNIfTI形式のどちらを普段使用していますでしょうか?
DICOM形式のまま読み込んでも良いですが、私が扱っている分野ではDICOM形式のまま処理を行うことは少ない?ような気がしています。
SPMのような解析ソフトでもテンプレート画像はNIfTI形式で提供されていますし、DICOM形式よりもNIfTI形式の方が取り扱いが楽な気がしています。
なのでこの後の操作はNIfTI形式の画像データを扱うことを前提に話を進めていきたいと思います。
お持ちの画像データがDICOM形式しかないという場合は、事前にdcm2niiなどのソフトでNIfTI形式に変換してから読み進めると良いかと思います。
ただし、読み込んだあとの操作はDICOM形式とNIfTI形式で特に変わりありませんので、無理に変換する必要はありません。
前置きが長くなってしまいましたが早速、画像の読み込みを始めていきましょう。
ここでは最も簡単な読み込み方法を紹介します。
下図のようにエクスプローラー(MacならFinder)からマウスでドラッグ&ドロップするだけです。
メニューバーのファイルから読み込む方法もありますが、こちらの方が断然簡単ですね。
ドラッグ&ドロップすると画像ごとにどのように読み込むのか聞かれますので、それぞれ読み込み方法をカスタマイズしていきます。
今回、読み込みに使用したのはSmall Animal Molecular Imaging Toolbox (SAMIT)に含まれているラットのMRI T2Wとそれに対応したVOIおよびFDG PETのテンプレート画像です。
論文は以下のものになります。
名前やカラーバーの種類は後から変更することができますのであまり気にしなくても良いですが、LabelMapとして読み込むかどうかについてはここでしか操作できないので注意します。
もし間違って読み込んでしまった場合は読み込みなおしてください。
Viewレイアウトの変更方法
3D Slicerの右半分がView画面になりますが、このViewのレイアウトは好きに変更することができます。
下図にあるように操作することでレイアウトを変更できますので、自分の好みや処理状況に合わせて変更するようにします。
Sagittal、Axial、Coronal断面だけでなく、3D描画や3D Slicer内で作製したグラフ(プロット)も表示できます。
また、複数の画像データを同時に表示することもできますので異なる画像を並べて表示して比較するなんてことも可能です。
以降の説明はスタンダードなFour-UPレイアウトを使っていきます。
View画面の操作方法
View画面は非常に多くの機能があります。
全てを使うことはないと思いますが、よく使う機能や知っておいた方が良い機能を中心に説明していきます。
まずは下図をご覧ください。
色々と矢印が伸びていますがまだ全部ではありません。
ただ、ここに挙げたものは全て頻繁に使用するものになりますので、全て覚える必要があるかと思います。
実際に操作してもらうのが一番分かりやすいですが、四角で囲った説明だけでは分かりにくい部分だけピックアップして補足します。
オリジンの位置を表示するボタンをクリックすると、backgroundに指定している画像のオリジン位置を表示してくれます。
オリジンとはその画像の原点座標(0,0,0)のことで、Volumeモジュールで画像を選択したときのVolume Information内のImage origin(単位:mm)で示される位置のことを指します。
表示断面をリセットしたいときに便利です。
スムージングのon/offはデフォルトでonになっていますが、これは画像自体にスムーズ処理が行われている訳ではなく、表示上のみのスムージングということになります。
ここをonにしたからといって画像にスムーズ処理がされるわけではありません(さすがに分かるとは思いますが)。
3D Slicerでは簡単にFusion画像を作製できます。
MRIやCT画像をbackgroundに配置した後、PET画像などをforegroundに配置、そして透過度を調整すればFusion画像の完成です。
また、3D Slicerはbackground、foreground、labelmapの3つを重ねることが可能です。
セグメンテーションデータがある場合はlabelmapのかわりにセグメンテーションデータを選択することも可能です。
セグメンテーションデータについては別の記事で解説したいと思います。
次に上図で出てこなかった他の機能についても見ていきます。
reformat widget
3D表示すると通常は3断面が全て90度で交差する状態になっていますが、断面の角度を変えたいときにはreformat widgetをクリックします。
すると下図のように白い矢印が表示され、それを動かすことでスライスの角度を変えることができます。
断面をマウスで動かすとスライス位置を変更できます。
orientation maker
軸はorientation makerから追加できます。
orientation makerの種類は3種類から選べます。
また、サイズも大・中・小と選択できます。
ルーラー(スケール)
ルーラー(スケール)も太さと色をそれぞれ3種類から選択できます。
十字線
十字線の表示のon/offは3D Slicerのバージョン5.0になってから独立したボタンとして実装されたようです。
以前(バージョン4.x)では左隣にあるcrosshairボタンの一部として実装されていましたが、5.x以降で独立したボタンとして実装されワンクリックでon/offできるようになったので利便性が上がりました。
Volumesモジュールの使い方
次にVolumesモジュールの基本的な使い方について説明していきます。
Volumesモジュールは大きく分けて、①Volume Information、②Display、➂Color Legendに機能が分かれています。
Volume Information
まずはVolume Informationになりますが、Active Volumeで参照したい画像を選択します。
すると下図のように選択した画像のヘッダー情報の一部が表示されます。
Volume Informationではx, y, zのボクセル数(Image Dimensions)やボクセルサイズ(Image Spacing)、オリジンの位置(Image Origin)を確認するのによく使います。
ここでは解説しませんが、VOI解析や群の平均画像を作製したりするときにはx, y, zのボクセル数が一致していないと間違った結果を出してしまうなど困ったことがありますので、その確認用として利用することができます。
Display
Displayでは色(Lookup Table)の変更や表示するボクセル値のMin/Maxの指定ができます。
MRIやCTであればGray、PETであればPET-HeatやColdToHotRainbowなど画像のモダリティや目的に合わせて変更しましょう。
後述するColor Legendの上下限値はこのDisplayのMin/Maxが適用されますので、値を指定したい場合はここのMin/Maxをしっかりと設定しておきましょう。
Min/Maxの部分のモードは3種類あります。
Auto W/L、Manual W/L、Manual Min/Maxです。
個人的に一番使いやすいのはManual Min/Maxでこれを多用しています。
W/LはWindow/Levelの略になります。
Manual W/Lにしてバーを動かすと分かりますが、Widonwでバーの幅を固定して、Levelでバーの位置を変えるというイメージを持っていただければ良いかと思います。
また、Maxが自分の指定したい値にまで大きくすることができないということがあります。
その時はMaxのテキストボックスの下にある「設定可能な上下限値の変更」でより大きな値を入力すれば、自分の指定したい値にまで大きくすることができるようになります。
おまけとしてHistogramは画像内のボクセル値の分布を表したものになりますが、Min/Maxのバーを動かすとこのHistogramのbackgroundの白黒が変化します。
私は今のところほとんど使っていませんが、ノイジーなところを見つけたり、レンジの分解能が悪くないかどうかの判断などで役に立つことがあります。
Color Legend
最後にカラーバーの表示と編集方法を見ていきます。
このColor Legendは3D Slicerバージョン4.xではData Probeモジュールに含まれていましたが、バージョン5.xからVolumesモジュールへ移動され使いやすくなりました。
カラーバーのタイトルは単位などを入力しておくと良いでしょう。
カラーバーのラベルの数は上下限値のみ表示したい場合は2とし、それ以上の数のラベルを付けたいのであれば3以上にします。
例えば0を境にプラスとマイナス方向の両方の値を持つ場合は0にもラベルを付けたいと思うでしょう。
その時はラベル数を3にすればOKです。
カラーバーの大きさと位置の変更も可能ですので、見やすく邪魔にならない配置とします。
Title/Label propatiesでは色・フォント・文字装飾の変更ができます。
ここで注意しなければならないのはフォントサイズを変更できるパラメータを持っているのはTitleのみでLabelにはないということです。
では、ラベルのフォントサイズを変更するにはどうしたら良いか?
答えはカラーバーのサイズ変更の部分で対応する、です。
残念ながらラベルのフォントサイズだけを変更するこはできないようです。
そのため、代替法としてカラーバーのサイズ変更で対応するということになりますので注意しましょう。
ラベルのフォーマットについては全部は試していませんが、通常のプログラミングと同様の方法で変更することが可能です。
下図の右下に例を示しましたが%.1fなどとすれば小数点以下1桁の浮動小数点(float)になりますし、%.4gなどとすれば有効桁数4桁(ただし0は省略される)の表示になります。
なお、gはeとしても同じ結果が得られます(eの方が個人的にはしっくりきます。gは個人的にはあまり使いません)。
まとめ
今回は3D Slicerへの画像の読み込み方法、Viewの使い方、Volumesモジュールの使い方を一通り見ていきました。
バージョン5.xになってから使いやすくなり好印象です。
Color Legendの編集については画像ごとに設定が可能なので、片方の画像だけ設定してもう片方の画像を設定し忘れたなんてことがないように気を付けてましょう。
ここで解説した内容は3D Slicerの基本中の基本となりますので、何も考えずに使えるくらいになれるのがちょうど良いです。
一度覚えてしまえばそれほど難しい操作はありませんので頑張りましょう。
Pythonのプログラム・GUIアプリケーションを作って仕事の効率化をお手伝いします!
科研費等での支払いにも対応しており、国立・私立大学の先生から複数の受注実績があります。
対応可能かどうかも含めてお気軽に問い合わせページからご相談ください。
OguLInks公式サイトのトップページに簡単な事例紹介もありますのでご参照ください。
Twitterでお得情報をゲットしたい方はフォローいただけると幸いです。
この記事が役に立ったという方、少額の御寄附をいただけますと小倉のモチベーションアップにつながります。
よろしければ以下より寄付いただけますと幸いですm(_ _)m
すでに購入済みの方はこちら