Chantori Blog

Medical Physics / Monte Carlo Simulation / Medical Image Processing

使えるフリーソフト(1) 3D Slicer

この記事は日本語での情報が少ないソフトに対して、日本語話者が最初の取っ掛かりとして、ソフトの概要を把握する手助けをすることを意図しています。本格的に英語ページを読み込んでいく際の敷居が少しでも下がれば嬉しいです。

f:id:chantori:20180309130547j:plain

3D Slicer(https://www.slicer.org/)は、我らがBrigham and Women’s Hospitalが開発した、3次元画像解析フリーソフトです。
ダウンロードはここから
(http://download.slicer.org/)

このソフトの特徴は豊富なセグメンテーションの機能です。セグメンテーションを行うと、放射線治療計画や外科治療計画、3D プリンティングなど様々な応用ができます。

f:id:chantori:20180309130543j:plain
Segmentation Editorモジュールには、これだけの機能があります。
Paint, Draw, Erase
は手作業で対象を抽出するのに使用します。またThresholdSmoothingといった、よく使う機能も揃っています。Grow from seeds(指定した領域近傍で輝度が同程度のボクセルを自動的に抽出)など、実際どういった状況で使えるのかよくわからない機能もあります。
SmoothingMedianフィルタ以外を選択すると計算がいつまでも終わりません。MedianフィルタでKernel sizeを小さく(0.5 mmとか)にすると、数分で終わります。

 

f:id:chantori:20180309130818j:plain
この画像はサンプルのMRI画像で、脳のDWI(拡散強調画像)です。止まっている水分子が高信号で描出されています。 

3D Slicerはセグメンテーション以外にも、画像の位置合わせ(イメージレジストレーション)を行うためのTransformモジュールなども、意外と重宝します。また、このソフト自体がC++で書かれているため、Pythonプラグインを作れるという、開発者向けの利点もあります。インターネット上では質問や意見交換も活発に行われており、Youtubeにも解説動画が多くあります。

実際の使用例

セグメンテーションの後は、解析作業が待っているケースが多いのではないでしょうか。3D Slicerでは、Segmentation Statisticsモジュールで、セグメントの体積・表面積の計算を行い、表計算ソフトやテキストファイルに出力できます。しかし実際には、解析としてはこれだけでは不十分なことが多いため、セグメンテーション後の解析は別のソフトで済ませてしまう方が楽です。

 

具体的には、

  1. 3D Slicerに画像を取り込む
  2. 3D SlicerのSegmentation Editorモジュールでセグメントを作成
  3. 3D Slicerで保存したセグメント(~.seg.nrrdや~.nrrd)MATLABで解析

という感じでやっていました。