今回は、シリーズを通して、「ITK」を使って胸部CT画像から肺を抽出する方法について説明していきたいと思います。
胸部CT画像からの肺の抽出はそんなに難しくありません。方法はいくらでもあります。もっとも簡単な方法としては、肺野内は主に空気で占められているので、それに注目してしきい値処理(ct値-500ぐらい)をするなどがあります。
今回紹介する方法はそれより少し複雑な方法ですが、濃度値の違いに着目した方法です。より手軽にプログラムを組むため、複雑な画像処理はすべて「ITK」にやってもらっています。
「ITK」とは何か?ITKとは「Insight ToolKit」という、Kitware社が開発した科学的な画像解析に特化しているオープンソースソフトウェア(ライブラリ)です。
最近では、画像処理であれば、OpenCV、ImageJなど色々あります。GitHubにも良いコードがたくさん公開されています。
それでは、なぜ筆者がITKを使うのか?
それは次の大きなメリットがあるからです。
1.医用画像処理に欠かせないセグメンテーションやレジストレーション処理が得意。
2.3次元画像にも対応している。
医用画像処理では、3次元であるCT画像やMRIでの臓器のセグメンテーション、レジストレーションは必須です。そして、そのアルゴリズムを自分で実装とするとなると、かなり大変です。しかしながら、ITKの関数を利用すれば実に簡単にできます。
ITKのインストール方法などについてはまた別の機会に紹介していきたいと思います。
第一回目は、肺抽出処理の概要です。
それでは、概要について説明していきます。
まずは胸部CT画像に対し、K-means法で「人体の組織」部分に属する画素と「人体の組織ではない」部分に属する画素を分類します。次にシードを起点に領域を拡げていくリージョングローイングを使って「人体の外側」の領域を検出し、取り除くことでおおまかな肺野内の空気領域を得ることができます。最後に、検出できていない肺野内の血管領域をクロージングによって検出し、セグメンテーション完了です。
まとめるとこんな感じです。
(1)胸部CT画像入力 → (2)K-means法で人体組織とそうでない部分分ける → (3)人体組織でない部分(外側)をリージョングローイング法で抽出する → (4)肺野内の空気領域を得る → (5)クロージングで肺内部の空洞を埋める → (6)セグメンテーション完了
(注)あくまでもこの方法は一例であり、もっと正確に抽出できる方法はいくらでもあります。
過程(1)~(6)での画像は以下のようになります。(2)~(5)の画像は人体の組織=0、それ以外=1と二値化しています。
今回は以上です。次回からは、それぞれの処理においてどのようにITKを使っているのか、ソースコードを交えながら説明していきたいと思います。
次回は「(2)K-means法で人体とそうでない部分を分ける」処理について説明します。