以下、図面を参照しながら本発明の実施の形態に係る画像処理装置を説明する。図1は、本実施形態に係る画像処理装置1の構成を示す図である。図1に示すように、画像処理装置1は、制御部10を中枢として、記憶部12、対象領域決定部14、結節候補領域抽出部16、穴埋め部18、核領域決定部20、結節領域抽出部22、画像発生部24、体積算出部26、表示部28、及び入力部30を備える。
記憶部12は、被検体の胸部に関するボリュームデータを記憶する。ボリュームデータは、図示しない、X線コンピュータ断層撮影装置等の医用画像発生装置により発生されたものである。ボリュームデータには、肺に発生された結節の領域が含まれるとする。
図2は、結節領域NRの一例を示す図である。図2に示すように、結節領域NRは、結節の一部分である小さな突起の領域TRを有する。また、結節領域NRは、小突起領域TRの他に、血管や気管支の領域HRに接続する。血管領域及び気管支領域HRは、結節の一部分でなく、結節領域NRを観察する上で邪魔な部分である。ここで、結節領域NRに接続する血管領域や気管支領域を非結節領域HRと呼ぶことにする。また、小突起領域TRと非結節領域HRとは外見上いずれも突起形状を有している。そのため、小突起領域TRと非結節領域HRとをまとめて突起候補領域と呼ぶことにする。
また、結節領域は、画素値に応じて、solid領域とGGO領域とに大別される。solid領域は、充実性陰影とも呼ばれる。solid領域は、結節領域のうち、軟部組織に近い画素値を有する領域である。GGO領域は、すりガラス状陰影とも呼ばれる。GGO領域は、肺の実質組織と軟部組織との中間の画素値を有する領域である。
対象領域決定部14は、ボリュームデータから処理対象となる領域を決定する。処理対象領域は、例えば、一辺30mmの立方体である。処理対象領域の形状やサイズは、変更可能である。
結節候補領域抽出部16は、決定された処理対象領域から結節領域の候補となる領域を生成する。結節候補領域は、結節領域と非結節領域とを含む。結節候補領域抽出部16は、例えば、既存の閾値処理やP-tile-thresholding、Mode method、Optimal threshold、大津の方法により、処理対象領域から結節候補領域を抽出する。
穴埋め部18は、生成された結節候補領域に画像処理を行い、結節候補領域内部に存在する穴領域を埋める。穴領域は、結節候補領域内部に存在する結節に由来しない領域である。
核領域決定部20は、穴埋め後の結節候補領域の中心部を表す核領域を決定する。具体的には、核領域決定部20は、穴埋め後の結節候補領域をエロージョン距離Deで縮小処理(モルフォロジー演算のエロージョン処理)することにより核領域を決定する。核領域は、穴埋め後結節候補領域に含まれる突起候補領域から突起領域と非結節領域とを特定するための基準となる。また、核領域決定部20は、ユーザにより入力部30を介して入力された指示に基づいて核領域を修正可能である。
結節領域抽出部22は、決定された核領域からのダイレーション距離Dminとダイレーション距離Dminよりも長いダイレーション距離Dmaxとに基づいて穴埋め後結節候補領域から非結節領域を特定し、特定された非結節領域を穴埋め後結節候補領域から除去することにより結節領域を抽出する。この非結節領域の除去範囲は、ダイレーション距離Dmaxより核領域へ向けた内側部分を含む。また、結節領域抽出部22は、ユーザにより入力部30を介して入力された指示に基づいて、結節領域を修正可能である。
体積算出部24は、抽出された結節領域の体積を算出する。画像発生部26は、ボリュームデータに基づいてCT画像データを発生する。例えば、画像発生部26は、ボリュームデータをMPR(MultiPlanar Reconstruction)処理して任意断面に関するCT画像データを発生する。表示部28は、発生された結節領域を強調してCT画像を表示する。また、表示部28は、算出された体積を表示する。
入力部30は、操作者からの各種指示を入力する。入力部30としては、マウスやトラックボールなどのポインティングデバイス、あるいはキーボード等の入力デバイスが適宜利用可能である。
制御部10は、例えばCPU及びメモリを有し、アプリケーションプログラムを上記メモリ上に展開し、このアプリケーションプログラムに従った処理を上記CPUが実行する。アプリケーションプログラムの実行により、制御部10は、画像処理装置1を構成する各部を制御し、本実施形態に係る結節領域の抽出・表示処理を行なう。
(結節領域の抽出・表示処理)
以下、制御部10の制御により行なわれる結節領域の抽出・表示処理の動作を説明する。図3は、結節領域の抽出・表示処理の流れを示す図である。
まず、制御部10は、結節領域の抽出・表示処理の開始指示を受けると、処理対象領域決定部14に中心点の決定処理を行なわせる。
中心点決定処理において処理対象領域決定部14は、結節領域の中心点を決定する(ステップSA)。具体的には、処理対象領域決定部14は、ユーザにより入力部30を介して指定された点を、中心点に決定する。あるいは、処理対象領域決定部14は、既存のCAD処理により中心点を算出してもよい。
中心点が決定処理後、制御部10は、処理対象領域決定部14に処理対象領域の決定処理を行なわせる(ステップSB)。処理対象領域の決定処理において処理対象領域決定部14は、中心点を中心とする一定範囲の領域を処理対象領域に決定する。例えば、中心点を中心とする一辺30mmの立方体領域が処理対象領域に決定される。決定された処理対象領域は、ボリュームデータから切り出される。
処理対象領域の決定処理後、制御部10は、結節候補領域抽出部16に結節候補領域の抽出処理を行なわせる(ステップSC)。結節候補領域の抽出処理において結節候補領域抽出部16は、結節候補領域の画素値と、結節候補領域以外の画素値との境の画素値(例えば−700HU)を閾値として、処理対象領域から結節候補領域を抽出する。より具体的には、−700HU以下の画素値を有するボクセルを値“1”に、−700以上の画素値を有するボクセルを値“0”に置き換えることにより、ボリュームデータから結節候補領域を抽出する。典型的には、複数の閾値を用いることにより、solid候補領域とGGO候補領域とが別々にボリュームデータから抽出される。閾値は、予め設定されてもよいが、肺内部の領域内での濃度の不均一性や個人間の違いが存在するため、これらを考慮し、ヒストグラムを用いて決定するなど、適応的に決定する方法がよい。閾値処理が行なわれると、結節候補領域抽出部16は、抽出された全てのsolid候補領域とGGO領域との論理和を演算し、和領域を生成する。生成された和領域を、結節候補領域と呼ぶことにする。
結節候補領域の抽出処理後、制御部10は、穴埋め部18に穴埋め処理を行なわせる(ステップSD)。穴埋め処理において穴埋め部18は、結節候補領域を画像処理して、結節候補領域に存在する穴領域を埋める。穴領域が埋められた結節候補領域を、穴埋め後結節候補領域と呼ぶことにする。穴埋め処理の詳細については後述する。
穴埋め処理後、制御部10は、核領域決定部20に核領域の決定処理を行なわせる(ステップSE)。核領域決定処理において核領域決定部20は、穴埋め後結節候補領域をエロージョン距離Deでエロージョン処理して、エロージョン処理された穴埋め後結節候補領域を核領域に決定する。
図4は、穴埋め後結節候補領域ARと核領域CRとを示す図である。図4に示すように、穴埋め後結節候補領域ARは、突起領域TRや非結節領域HR等の突起候補領域を有する。核領域CRは、穴埋め後結節候補領域ARがエロージョン処理によってエロージョン距離Deだけ縮小された領域である。エロージョン処理により突起領域TRと非結節領域HRとが除去されるため、核領域CRは、突起領域TRと非結節領域HRとに由来する突起形状を有さない。後述するように、核領域CRは、突起候補領域から突起領域TRと非結節領域HRとを区別するための距離Dminと距離Dmaxとの基点となる。核領域の設定処理の詳細については後述する。
核領域の決定処理後、制御部10は、結節領域抽出部22に結節領域の抽出処理を行なわせる(ステップSF)。
以下、図5と図6とを参照しながら、結節領域抽出部22による結節領域の抽出処理の概要を説明する。図5に示すように、穴埋め後結節候補領域AR、ダイレーション距離Dminで核領域CRを拡張処理(モルフォロジー演算のダイレーション処理)する。穴埋め後結節候補領域ARのうち、核領域CRから距離Dmin以上離れている領域は、突起候補領域KRであると特定される。また、結節領域抽出部22は、ダイレーション距離Dmaxで核領域CRをダイレーション処理する。ここで、距離Dminと距離Dmaxとの間の領域を結節マージン領域ZRと呼ぶことにする。結節マージン領域ZRの外側に突き出た領域は非結節領域HRであると、突き出ない領域は小突起領域TRであると特定される。すなわち、突起候補領域のうち、距離Dmaxよりも外側の領域に連結する領域は非結節領域HRであると、連結しない領域は小突起領域TRであると判別される。より詳細には、核領域CRから距離Dmaxにあるボクセルの画素値に基づいて、穴埋め後結節候補領域ARから非結節領域HRの位置部分が特定される。ここでは、ダイレーション距離Dmaxにあるボクセルに値“1”が割り付けられている場合は、非結節領域HRの一部分であると特定される。そして、突起候補領域のうち特定された一部分に連結する領域が非結節領域HRとして特定される。特定された非結節領域HRが穴埋め後結節候補領域ARから除去されることにより結節領域NRは、抽出される。この除去範囲は、ダイレーション距離Dmaxより内側部分を含む。
非結節領域を穴埋め後結節候補領域から除去するために、結節領域の抽出処理は、具体的には、結節マスク領域の生成処理と論理積の演算処理とにより構成される。結節マスク領域の生成処理において結節領域抽出部22は、穴埋め後結節候補領域を画像処理し、穴埋め後結節候補領域から非結節領域を除去するためのマスクとして用いられる結節マスク領域を生成する。結節マスク領域は、ダイレーション距離Dmin以内の領域と小突起領域TRとの和領域である。結節マスク領域の生成処理は、結節領域の抽出処理の主要な処理である。結節マスク領域の生成処理については、後述する。
論理積の演算処理において結節領域抽出部22は、結節マスク領域と結節候補領域との論理積を演算して、積領域を生成する。生成された積領域は、結節候補領域から非結節領域が除去された結節領域である。より詳細には、結節領域抽出部22は、結節マスク領域とsolid候補領域との論理積を演算し、積領域を生成する。生成された積領域は、結節領域のうちのsolid領域である。同様に、結節領域抽出部22は、結節マスク領域とGGO候補領域との論理積を演算し、積領域を生成する。生成された積領域は、結節領域のうちのGGO領域である。
結節領域が生成されると制御部10は、表示部28に結節領域の表示処理を行なわせる(ステップSG)。結節領域の表示処理において表示部28は、生成された結節領域を色等で強調してCT画像を表示する。なお、強調の方法は、色による強調だけでなく、輝度や明度により強調してもよい。
必要に応じて、結節領域が生成されると制御部10は、体積算出部24に体積の算出処理を行なわせる(ステップSH)。体積の算出処理において体積算出部24は、最も単純には、結節領域のボクセルの個数を計数し、計数されたボクセルの個数に基づいて結節領域の体積を算出する。体積の算出処理は、solid領域とGGO領域とに対して、個々に行なわれる。
体積が算出されると制御部10は、表示部28に体積の表示処理を行なわせる(ステップSG)。体積の表示処理において表示部28は、算出された体積の値を所定のレイアウトで表示する。
以上で結節領域の抽出・表示処理は終了する。次に穴埋め処理(ステップSD)、核領域決定処理(ステップSE)、結節マスク領域生成処理(ステップSF)の詳細について順番に説明する。
(穴埋め処理)
図7は、ステップSDにおいて穴埋め部18により行なわれる穴埋め処理の流れを示す図である。図7に示すように、穴埋め部18は、結節候補領域の生成処理で生成された結節候補領域をダイレーション距離D1でダイレーション処理する(ステップSD1)。ダイレーション距離D1は、予め設定されており、例えば1mmである。ダイレーション処理により、結節候補領域は、ダイレーション距離D1だけ拡張され、距離D1より小さい穴領域が埋められる。
ダイレーション処理の後、穴埋め部18は、ダイレーション処理された結節候補領域に含まれる背景領域(値“0”を有するボクセル)を特定し、前景領域(値“1”を有するボクセル)に置き換える(ステップSD2)。この置き換え処理により、ダイレーション距離D1では埋めることができなかった穴領域や、背景領域に連結している穴領域を埋めることができる。
置き換え処理の後、穴埋め部18は、置き換え処理された結節候補領域をエロージョン距離D2でエロージョン処理する(ステップSD3)。エロージョン距離D2は、予め設定されており、ダイレーション距離D1よりも長く、例えば1.5mmである。すなわち、エロージョン処理された結節候補領域は、元の結節候補領域(結節候補領域生成処理で生成された結節候補領域)よりも小さい。
エロージョン処理の後、穴埋め部18は、元の結節候補領域とエロージョン処理された結節候補領域との論理和を演算し、和領域(穴埋め後結節候補領域)を生成する(ステップSD4)。生成された穴埋め後結節候補領域は、元の結節候補領域の形状を有し、且つ穴領域を有さない。
(核領域決定処理)
次にステップSEにおいて核領域決定部20により行なわれる核領域に決定処理の詳細について説明する。
図8は、核領域決定処理の流れを示す図である。図8に示すように、核領域決定部20は、穴埋め処理により生成された穴埋め後結節候補領域に関するボリュームデータを距離変換処理する(ステップSE1)。ステップSE1における距離変換処理は、穴埋め後結節候補領域に関するボリュームデータを構成する各ボクセルに対し、背景領域(値“0”が割り付けられたボクセル)からの距離値を割り付ける処理である。ステップSE1における距離変換処理により、各ボクセルに背景領域からの距離が割り付けられた距離データAが発生される。
距離データAが発生されると核領域決定部20は、距離データAと中心点決定処理により決定された中心点とに基づいて、シード点を設定する(ステップSE2)。具体的には、シード点は、中心点の周辺で最大距離が割り付けられたボクセルである。
シード点が決定されると核領域決定部20は、穴埋め後結節候補領域の大きさに適したエロージョン距離Deを決定する(ステップSE3)。具体的には、エロージョン距離Deは、予め設定された距離(例えば3mm)と、シード点に割り付けられた距離値の半分とのうちの小さい方である。すなわち、穴埋め後結節候補領域が予め設定された距離(上記の説例の場合、3mm)よりも小さい場合、エロージョン距離Deは、シード点に割り付けられた距離値の半分に決定される。このようにエロージョン距離Deの下限を設けることで、エロージョン処理による穴埋め後結節候補領域の消滅を防止できる。一方、穴埋め後結節候補領域が予め設定された距離よりも大きい場合、エロージョン距離Deは、予め設定された距離に設定される。このようにエロージョン距離Deの上限を設けることで、過度のエロージョン処理により核領域の形状が大きく変形することを防止できる。
エロージョン距離Deが決定されると核領域決定部20は、穴埋め後結節候補領域を、決定されたエロージョン距離Deでエロージョン処理することにより、核候補領域を生成する(ステップSE4)。生成された領域には、エロージョン処理等により発生された孤立点が含まれる場合もある。
これら孤立点を除去するため、核領域決定部20は、核候補領域のうちシード点に連結しない領域を除去して、シード点に連結する領域を核領域に決定する(ステップSE5)。具体的には、ステップSE2で決定されたシード点から核候補領域を領域拡張処理し、シード点に連結する領域を特定する。特定された領域を核領域に決定する。核候補領域のうち、シード点に連結しない領域は除去される。
(結節マスク領域生成処理)
次にステップSFにおいて結節領域抽出部22により実行される結節マスク領域の生成処理について説明する。
図9は、結節マスク領域の生成処理の流れを示す図である。図9に示すように、結節領域抽出部22は、穴埋め後結節候補領域に関するボリュームデータを距離変換する(ステップSF1)。ステップSFにおける距離変換は、穴埋め後結節候補領域を構成する各ボクセルに対し、核領域からの距離値を割り付ける処理である。ステップSF1における距離変換処理により、各ボクセルに対して核領域から核領域外への距離が割り付けられた距離データBが発生される。
距離変換処理の後、結節領域抽出部22は、距離データBに基づいてダイレーション距離Dminを決定する(ステップSF2)。ダイレーション距離Dminは、エロージョン距離Deよりも僅かに大きい又は同一の値である。
エロージョン距離Dminが決定されると結節領域抽出部22は、エロージョン距離Dmin以上の距離に関する領域と穴埋め後結節候補領域との論理積を演算し、積領域を生成する(ステップSF3)。生成される積領域は、突起候補領域である。
図10は、ステップSF3の処理を説明する図である。なお図10は、簡単のためステップSF3の処理を2次元的に表現しているが、実際には、ステップSF3は、3次元的に処理される。図10に示すように、距離Dmin以上の距離に関する領域DORは、核領域CRからダイレーション距離Dmin以上離れている領域である。すなわち、領域DORを構成するボクセルは、距離データBにおいて、距離Dmin以上の距離値を有する。領域DORと穴埋め後結節候補領域ARとの論理積を演算することにより、積領域、すなわち、穴埋め後結節候補領域ARのうちの突起候補領域CRが抽出される。すなわち、ダイレーション距離Dminは、突起候補領域か否かを判定するための基準である。
突起候補領域が生成されると結節領域抽出部22は、ダイレーション距離Dmaxを決定する(ステップSF4)。距離Dmaxは、予め設定されているとしても、ユーザにより入力部30を介して任意に設定可能である。距離Dmaxを任意に設定する場合、ユーザは、例えば、結節マージン領域の幅W(距離Dmaxと距離Dminとの差)を入力する。そして、距離Dmaxの計算式、すなわち、距離Dmax=距離Dmin+結節マージン領域の幅W、に従って距離Dmaxが決定される。
ダイレーション距離Dmaxが決定されると結節領域抽出部22は、ダイレーション距離Dmax以上の距離に関する領域をシード領域に設定する(ステップSF4)。シード領域には、距離Dmax以上の背景領域の他に、例えば突起候補領域のうちの距離Dmax以上の部分が含まれる。
シード領域が設定されると結節領域抽出部22は、突起候補領域のうちシード領域に連結する領域を、非結節領域として特定する(ステップSF5)。
図11は、ステップSF5の処理を説明する図である。なお図11は、簡単のためステップSFの処理を2次元的に表現しているが、実際には、ステップSFは、3次元的に処理される。図11に示すように、ダイレーション距離Dmax以上の領域がシード領域に設定されている。突起候補領域KRをシード領域から領域拡張処理することにより、非結節領域HRが特定される。突起候補領域KTのうち、シード領域に連結しない領域は、小突起領域TRであると特定される。換言すれば、突起候補領域KRを構成する領域のうち、核領域CRからの距離がダイレーション距離Dmaxに達する領域は、非結節領域HRとみなされ、核領域CRからの距離が距離Dmaxに達しない領域は、突起領域TRとみなされる。すなわち、ダイレーション距離Dmaxは、非結節領域か否かを判定するための基準である。
非突起候補領域が特定されると結節領域抽出部22は、突起候補領域から非結節領域を除去し、小突起領域を生成する(ステップSF6)。具体的には、非結節領域を構成する各ボクセルに値“0”を割り付けることで、非結節領域を除去する。
小突起領域が生成されると結節領域抽出部22は、生成された小突起領域とダイレーション距離Dmin以下の距離に関する領域との論理和を演算し、和領域を生成する(ステップSF7)。生成される和領域は、結節マスク領域である。
図12は、ステップSF7の処理を説明する図である。なお図12は、簡単のためステップSFの処理を2次元的に表現しているが、実際には、ステップSFは、3次元的に処理される。図12に示すように、距離Dmin以下の距離に関する領域DMRは、核領域CRから距離Dmin以内の領域である。換言すれば、領域DMRを構成するボクセルは、距離データBにおいて、距離Dmin以下の距離値を有する。領域DMRと小突起領域TRとの論理和を演算することにより、和領域、すなわち、結節マスク領域MRが生成される。
以上で結節マスク領域の生成処理は終了する。結節マスク領域の生成後、結節マスク領域と結節領域との論理積を演算することで、結節候補領域から非結節領域が除去されて結節領域が抽出される。この際、非結節領域であると判定されたダイレーション距離Dmaxではなく、距離Dminから非結節領域を除去できる。
上記のように、本実施形態に係る結節領域の抽出処理は、閾値処理、距離変換、ダイレーション処理、エロージョン処理、論理演算、領域拡張処理等の単純な処理から構成される。従って、本抽出処理は、比較的高速に実行可能である。また、本抽出処理は、非特許文献1記載のように反復処理ではない。そのため、非特許文献1記載の方法に比して、短時間に結節領域を抽出できる。本発明者達による試作のソフトウェアでは、本抽出処理の全体に要する時間は、おおよそ1.5秒である。
また本抽出処理によれば、小さな突起を完全に元の形状に復元することができる。非特許文献2記載の従来法では、エロージョン距離を長くすると、結節領域が変形してしまう。本抽出処理では、このエロージョン距離の上限が拡大される。また、核領域を求める際のエロージョン距離を長くしても、血管を根元から切断できる。そのためエロージョン距離を非特許文献2記載の従来法より長く設定することができる。エロージョン距離を長く設定すれば、より太い血管を結節領域から分離できる。
次に本実施形態に係る結節領域の抽出・表示処理の種々の応用例について説明する。応用例は、非血管領域からスピクラ(spicula)を判定する処理、結節領域を修正する処理、処理対象領域を修正する処理がある。以下、これら処理を順番に説明する。
(スピクラの判定処理)
結節には、血管、気管支の他にスピクラが接続される。スピクラは、腫瘍細胞が増殖したものであるから、結節の一部、すなわち突起領域と認識されることが望ましい。スピクラの成り立ちは様々であるが、最も長いものでも20mmを超えることは稀である。一方、血管や気管支が結節に接続している場合、それらは肺門部まで連結している。従っておよそ20mmを超えるか否かで、スピクラと血管(あるいは気管支)とを区別できる。
スピクラの判定処理は、結節マスク領域の生成処理に組み込まれる。以下、図13を参照しながら、結節領域抽出部22により行なわれる、スピクラ判定処理が組み込まれた結節マスク領域の生成処理について説明する。図13は、スピクラ判定処理が組み込まれた結節マスク領域の生成処理の流れを示す図である。図13に示すように、ステップSJ1〜ステップSJ5は、図9の結節マスク領域の生成処理のステップSF1〜ステップSF5と同様なので説明を省略する。
図13に示すように、シード領域が決定されると結節領域抽出部22は、突起候補領域のうちシード領域に連結する領域を、非結節候補領域として特定する(ステップSJ6)。特定される非結節候補領域には、非結節領域に含めるべき血管や気管支の他に、非結節候補領域に含めるべきでないスピクラ領域も含まれる。なお、非突起候補領域は、図9の突起候補領域と同様である。
非結節候補領域が特定されると結節領域抽出部22は、非結節候補領域のうち長さDs以下を有する領域を除去することにより、非結節領域を生成する(ステップSJ7)。長さDsは、各領域がスピクラ領域か否かを判定するための基準である。以下、長さDsを血管判定距離Dsと呼ぶことにする。ステップSJ7の処理を具体的に説明する。まず、非結節候補領域を構成する各領域の長さが算出される。長さは、各領域を近似して生成された図形の長軸や対角線等である。そして、各領域のうち、血管判定距離Ds(例えば20mm)以下を有する領域はスピクラ領域であると、血管判定距離Ds以上を有する領域は血管や気管支等の非結節領域であると判定される。そして、スピクラ領域は、非突起候補領域から除去される。非結節候補領域からスピクラ領域が除去されることにより、非結節領域が生成される。
非結節領域が生成されると結節領域抽出部22は、非結節領域を突起候補領域から除去することにより、小突起領域を生成する(ステップSJ8)。生成される小突起領域は、小さな突起だけでなく、スピクラをも含む。
小突起領域が生成されると結節領域抽出部22は、ダイレーション距離Dmin以下の距離に関する領域と小突起領域との和領域である結節マスク領域を生成する(ステップSJ9)。
以上でスピクラの判定処理が組み込まれた結節マスク領域の生成処理は終了する。なお、スピクラの判定方法は上記方法だけに留まらない。例えば、ダイレーション距離Dmaxを、ダイレーション距離Dmax=エロージョン距離De+血管判定距離Dsに決定することで、図9の結節マスク領域の生成処理と同様の処理で、スピクラ領域を結節マスク領域に含めることができる。なお、本方法では、非結節候補領域を構成する各領域の長さが実際に20mm以内か否かであるかは、厳密には判断されない。しかし、各領域が結節からほぼ直角に伸びる場合には、突起構造の長さで判断した場合とほぼ同等の結果が得られる。
(結節領域の修正処理)
上記の結節領域の抽出処理は、どのような結節に対しても常に小突起領域と非結節領域とを区別できるわけではない。そこで結節領域の修正処理が結節領域の抽出処理に組み込まれている。
まず、表示部28は、結節領域が強調されたCT画像を所定のレイアウトで表示する。そして制御部10は、入力部30を介した修正点の入力を受付ける。ユーザは、入力部30を介して修正箇所を点指定する。
図14は、修正点を指定するための画面の一例を示す図である。一旦結節領域が抽出されると、表示部28は、結節領域が強調されたCT画像I1と、各種処理の開始指示や体積の表示、パラメータの設定等を行なうための操作画面I2とを表示する。操作画面I2には、結節マージン領域の幅の設定・表示欄D1や、血管判定距離Dsの設定・表示欄D2、体積の表示欄D3が表示される。また、操作画面I2には、結節領域の抽出処理の開始ボタンBA、修正メニューの呼び出しボタンBB、体積算出処理の開始ボタンBCが表示される。
ユーザにより入力部30を介して修正メニューの呼び出しボタンBBが押されると、CT画像I1上に修正メニューMNが表示される。修正メニューMNは、修正処理に関する種々のボタンを表示する。具体的には、修正メニューMNは、AddボタンB1、DeleteボタンB2、LimitボタンBCを含む。AddボタンB1は、突起を結節領域に加えるための修正点を指定するためのボタンである。AddボタンB1が選択された状態で画面上に指定された修正点を結節内点と呼ぶことにする。DeleteボタンB2は、突起を結節領域から除去するための修正点を指定するためのボタンである。DeleteボタンB2が選択された状態で画面上に指定された修正点を結節外点と呼ぶことにする。LimitボタンB3は、突起の切断位置を修正するための修正点を指定するためのボタンである。LimitボタンB3が選択された状態で画面上に指定された修正点を結節境界点と呼ぶことにする。指定された修正点の種類を示すコードと座標値とは、互いに関連付けてリスト形式で記憶部12に記憶される。
修正点の指定が終了し、抽出開始ボタンBAが選択されると、修正点の種類に応じた修正処理が開始される。
以下、結節内点、結節外点、結節境界点が指定された場合の修正処理をそれぞれ説明する。結節内点と結節外点とに関する修正処理は、ほぼ同様の内容なのでまとめて説明し、その後、結節境界点に関する修正処理について説明する。
[結節内点及び結節外点]
図15は、結節内点と結節外点とに関する結節マスク領域の生成処理の流れを示す図である。図15に示すように、ステップSK1〜ステップSK7は、図9の結節マスク領域の生成処理のステップSF1〜ステップSF7と同様なので説明を省略する。
ユーザにより入力部30を介して結節内点又は結節外点が指定され、抽出開始ボタンが押されたことを契機として結節領域抽出部22は、結節内点又は結節外点に関する突起修正処理Aを開始する(ステップSK8)。
図16は、ステップSK8において結節領域抽出部22により行なわれる、突起修正処理Aの流れを示す図である。図16に示すように、抽出開始ボタンが押されると結節領域抽出部22は、記憶部12に記憶されている処理対象とする修正点の種類のコードを参照して、処理対象の修正点が結節内点なのか否かを判定する(ステップSK8−1)。
修正点が結節内点であると判定した場合(ステップSK8−1:YES)、結節領域抽出部22は、結節内点から領域拡張処理を行い、結節内点に連結する領域を特定する(ステップSK8−2)。特定された領域を、内領域と呼ぶことにする。内領域が特定されると結節領域抽出部22は、内領域を小突起領域に含める(ステップSK8−3)。具体的には、内領域と小突起領域との論理和を演算することにより、内領域を小突起領域に含める。
ステップSK8―2において修正点が結節内点ではないと判定した場合(ステップSK8−2:NO)、結節領域抽出部22は、修正点が結節外点か否かを判定する(ステップSK8−4)。結節外点であると判定した場合(ステップSK8−4:YES)、結節領域抽出部22は、結節外点から領域拡張処理を行い、結節外点に連結する領域を特定する(ステップSK8−5)。ステップSK8−4において特定される領域を、外領域と呼ぶことにする。外領域が特定されると結節領域抽出部22は、外領域を小突起領域から除去する(ステップSK8−6)。具体的には、外領域に関するボリュームデータを構成する全ボクセルの画素値を反転させたボリュームデータを生成し、反転ボリュームデータと小突起領域に関するボリュームデータとの論理積を演算することにより、突起領域から外領域を除去する。
ステップSK8―4おいて修正点が結節外点ではないと判定した場合、結節領域抽出部22は、ステップSK8―7に進む。
ステップSK8−3又はステップSK8−6が行なわれた場合、又はステップSK8―4において結節外点ではないと判定した場合、結節領域抽出部22は、記憶部12に記憶されている修正点のリストを参照し、未処理の修正点があるか否かを判定する(ステップSK8−7)。未処理の修正点があると判定された場合(ステップSK8−7:YES)、結節領域抽出部22は、ステップSK8−1へ進む。
以下、結節内点と結節外点とに関する結節領域の修正処理を具体的に説明する。図17に示すように、突起候補領域KRのうち、突起修正処理A前において小突起領域に含まれていない領域R1の一点に結節内点が、突起修正処理A前において小突起領域に含まれている領域R2の一点に結節外点が指定されたとする。まず、ステップSK8―2において、結節内点を含む領域R1は、内領域として特定される。そしてステップSK8―3において、図18に示すように内領域R1は、非結節領域から除去され、小突起領域に含められる。従って、突起修正処理A前において非結節領域として削除されていた領域R1を、小突起領域に含めることができる。一方、ステップSK8―5において、結節外点を含む領域R2は、図17に示すように、外領域として特定される。そしてステップSK8―6において、外領域R2は、図18に示すように、小突起領域から除去され、非結節領域に含められる。従って、突起修正処理A前において小突起領域に含められていた領域R2を小突起領域から除去することができる。
一方、未処理の修正点がないと判定した場合(ステップSK8−7:NO)、結節領域抽出部22は、突起修正処理Aを終了する。
図15に示すように突起修正処理Aが終了すると、結節領域抽出部22は、距離Dmin以下の距離に関する領域と突起修正処理A後の小突起領域との和領域(修正後の結節マスク領域)を生成する(ステップSK9)。生成された修正後の結節マスク領域を結節候補領域に適用することにより、結節領域抽出部22は、突起候補領域のうち結節内点に連結する内領域を結節領域に含め、突起候補領域のうち結節外点に連結する外領域を結節領域から除去することができる。
上記のように、ユーザが入力部30を介して結節内点や結節外点を指定することにより、ユーザの思い通りに突起修正処理A前において小突起領域と判定されていた領域を結節領域から除去したり、非結節領域であると判定されていた領域を結節領域に含めたりすることができる。
[結節境界点]
結節境界点は、突起領域の切断位置を指定するための修正点である。まず、図19を参照しながら、結節境界点の臨床的な意義について説明する。図19は、太長い血管や気管支等に由来する非結節領域HR´が接続する結節領域NRを示す図である。図19に示すように、血管や気管支が太長い場合、エロージョン処理によってもこの血管や気管支の形状が残ってしまう。そのため、核領域CR´は、この太長い血管や気管支に由来する突起形状を有してしまう。この様に、核領域CR´が太長い血管や気管支に由来する突起形状を有してしまうと、本来削除されるべき血管や気管支を削除することができない。このような場合、太長い血管や気管支上の任意の位置に結節境界点を指定することで、指定された位置に応じて核領域CR´を修正し、指定された結節境界点に同一(又は略同一)の位置で血管や気管支を切断することが可能となる。
また、本当は小突起領域ではないのに小突起領域と誤判定された場合等、当該突起領域を途中位置から切断する必要がある場合もある。このような場合、小突起領域上の任意の位置に結節境界点を指定することで、指定された結節境界点の位置で小突起領域を切断することも可能となる。
図20は、結節境界点が指定された場合における、核領域の設定処理の流れを示す図である。図20に示すように、ステップSL1〜ステップSL4までは、第1実施形態に係る設定処理のステップSE1〜ステップSE4と同様なので説明を省略する。
核領域決定部20は、核候補領域から、指定された結節境界点からエロージョン距離De内に含まれる領域を除去する(ステップSL5)。この除去処理によって生成される領域を、除去処理後の核候補領域と呼ぶことにする。
除去処理後の核候補領域の生成後、核領域決定部20は、除去処理後の核候補領域のうち、ステップSL2において決定されたシード点に連結しない領域を除去して、シード点に連結する領域を修正後の核領域に決定する(ステップSL6)。
以下、図21と図22とを参照しながら、ステップSL5とステップSL6とについて説明する。なお図21と図22とは、簡単のためステップSFの処理を2次元的に表現しているが、実際には、ステップSFは、3次元的に処理される。図21に示すように、第1の結節境界点KP1は、エロージョン距離Deでのエロージョン処理によっても除去されないほどの太さと長さとを有する非結節領域HR´に指定されている。第2の結節境界点KP2は、小突起領域TR´の途中に指定されているとする。核候補領域CCRは、太長い血管に由来する突起領域を有している。結節境界点KP1を中心とした半径De以内には、核候補領域CCRの突起の一部分が含まれている。また、結節境界点KP2を中心とした半径De以内には、核候補領域CCRに達していない。
図22は、除去処理後の核候補領域ZCR1,ZCR2を示す図である。図22に示すように、半径De以内の領域を除去すると、核候補領域CCRの突起領域の少なくとも一部分は、除去される。除去されることにより、核候補領域が、第1の除去処理後の核各候補領域ZCR1と第2の除去処理後の核各候補領域ZCR2とに分離されるとする。第1の除去処理後の核各候補領域ZCR1は、ステップSL2において決定されたシード点SPを含むので、ステップSL6において修正後の核領域に設定される。一方、第2の除去処理後の核各候補領域ZCR2は、シード点SPを含まないので、ステップSL6において除去される。
以上で、結節境界点が指定された場合における、核領域の設定処理は終了する。核領域の設定処理後、制御部10は、結節領域抽出部22に、突起修正処理Bが組み込まれた結節マスク領域の生成処理を行なわせる。
図23は、結節内点、結節外点、及び結節境界点に関する結節マスク領域の生成処理の流れを示す図である。図23に示すように、結節領域抽出部22は、穴埋め後結節候補領域に関するボリュームデータを距離変換する(ステップSM1)。ステップSM1における距離変換は、穴埋め後結節候補領域を構成する各ボクセルに対し、修正後の核領域からの距離値を割り付ける処理である。ステップSM1における距離変換処理により、各ボクセルに対して修正後の核領域から核領域外への距離が割り付けられた距離データCが発生される。
距離変換処理の後、結節領域抽出部22は、距離データCに基づいてダイレーション距離Dminを決定する(ステップSM2)。
図24は、穴埋め後結節候補領域ARと、修正後の核領域ACRと、ダイレーション距離Dminとの位置関係を示す図である。図24に示すように、修正後の核領域ACRは、太長い血管に由来する突起領域を有していない。修正後の核領域ACRからのダイレーション距離Dminは、太長い血管の根元付近を通過することがわかる。上述のように、距離Dminは、距離Deと同じか少し長い程度である。従って、結節境界点KP1は、修正後の核領域ACRから距離Dmin以内の距離にある。
エロージョン距離Dminが決定されると結節領域抽出部22は、エロージョン距離Dmin以上の距離に関する領域と穴埋め後結節候補領域との論理積を演算し、積領域を生成する(ステップSM3)。生成される積領域は、図25に示すような、修正後の突起候補領域AKRである。
突起候補領域が生成されると結節領域抽出部22は、ダイレーション距離Dmaxを決定する(ステップSM4)。
ダイレーション距離Dmaxが決定されると結節領域抽出部22は、ダイレーション距離Dmax以上の距離に関する領域をシード領域に設定する(ステップSM5)。
シード領域が設定されると結節領域抽出部22は、修正後の突起候補領域のうちシード領域に連結する領域を、修正後の非結節領域として特定する(ステップSM6)。図25の場合、太長い血管に由来する修正語の突起領域AKR1が、修正後の非結節領域として特定される。
修正後の非突起候補領域が特定されると結節領域抽出部22は、修正後の突起候補領域から修正後の非結節領域を除去し、修正後の小突起領域を生成する(ステップSM7)。
図26は、ステップSM7において生成される修正後の小突起領域ATRを示す図である。図26に示すように、ダイレーション距離Dminを境界として、太長い血管に由来する修正後の非結節領域が除去されている。しかし、結節境界点KP2がダイレーション距離Dminよりも長い距離にあるので、結節境界点KPが指定された修正後の小突起領域ATR2は、まだ切断されていない。
修正後の小突起領域を結節境界点で切断するために、結節領域抽出部22は、突起修正処理Bを行なう(ステップSM8)。図27は、突起修正処理Bの流れを示す図である。図27に示すように、ステップSM8―1〜ステップSM8―6までは、図16に記載の突起修正処理のステップSK8―1〜ステップSK8―6と同様なので説明を省略する。
ステップSM8―4において修正点が結節外点ではないと判定した場合、結節領域抽出部22は、記憶部12に記憶されている処理対象とする修正点の種類のコードを参照して、修正点が結節境界点であるか否かを判定する(ステップSM8―7)。
修正点が結節境界点であると判定した場合(ステップSM8―7:YES)、結節領域抽出部22は、修正後の小突起候補領域のうち、結節境界点に連結する領域を特定する。(ステップSM8―8)。特定される領域を、境界領域と呼ぶことにする。
境界領域が特定されると、結節領域抽出部22は、特定された境界領域のうち、結節境界点での距離以上の距離に関する領域を特定する(ステップSM8―9)。特定された領域を、境界外領域と呼ぶことにする。例えば、結節境界点に関するボクセルに割り付けられた距離値が5mmであるとすると、境界領域を構成するボクセルのうち、5mm以上の距離値が割り付けられたボクセルが特定される。また、距離値5mmが割り付けられたボクセルで構成される面は、切断面となる。
境界外領域が特定されると、結節領域抽出部22は、境界外領域を小突起領域から削除する(ステップSM8―10)。具体的には、境界外領域に関するボリュームデータを構成する全ボクセルの画素値を反転させたボリュームデータを生成し、反転ボリュームデータと修正後の小突起領域に関するボリュームデータとの論理積を演算することにより、修正後の小突起領域から境界外領域を除去する。修正後の核領域から等距離にある切断面で、小突起領域が切断される。
ステップSM8―3において内領域が小突起領域に含められた場合、ステップSM8―6において外領域が小突起領域から除去された場合、ステップSM8―10において境界外領域が修正後の小突起領域から除去された場合、又はステップSM8―7において修正点が結節境界点ではないと判定された場合、結節領域抽出部22は、記憶部12に記憶されている修正点のリストを参照し、未処理の修正点があるか否かを判定する(ステップSM8−11)。
未処理の修正点があると判定された場合(ステップSM8−11:YES)、結節領域抽出部22は、ステップSM8−1へ進む。未処理の修正点がないと判定された場合(ステップSM8−11:YES)、結節領域抽出部22は、突起修正処理Bを終了する。
図23に示すように、突起修正処理Bが終了すると、結節領域抽出部22は、ダイレーション距離Dmin以下の距離に関する領域と突起修正処理B後の小突起領域との和領域(修正後の結節マスク領域)を生成する(ステップSM9)。
図28は、ステップSM9において生成される修正後の結節マスク領域AMRを示す図である。図28に示すように、結節境界点KP2の位置で、修正後の結節マスク領域AMRの突起が切断されている。また、結節境界点KP1に略同一の位置で、太長い血管に由来する非結節領域が除去されている。
生成された修正後の結節マスク領域を結節候補領域に適用することにより、結節領域抽出部22は、修正後の突起候補領域のうち、指定された結節境界点と核領域との距離以上核領域から離れている領域を、結節領域から除去することができる。このように、結節境界点を指定することで、太い血管に由来する非結節領域を結節領域から分離することができる。すなわち、ユーザが入力部30を介して結節境界点を指定することにより、任意の位置で結節領域の突起を切断することができる。
(処理対象領域の修正処理)
ステップSBにおいて決定された処理対象領域が結節の大きさに対して小さい場合、抽出した結節領域が処理対象領域に収まらない。処理対象領域の修正処理は、結節領域の抽出処理の終了後、生成された結節領域が処理対象領域に収まっているか否かを判定し、収まらない場合に処理対象領域を修正するものである。
図29は、制御部10の制御により実行される、処理対象領域の修正処理の流れを示す図である。図29に示すように、制御部10は、各部を制御することにより、所定サイズの処理対象領域で結節領域の抽出処理を行なわせる(ステップSB1)。所定サイズは、一辺30mmであるとする。
結節領域が生成されると、制御部10は、処理対象領域のサイズが予め設定された上限値(例えば一辺100mm)以上であるか否かを処理対象領域決定部14に判定させる(ステップSB2)。
上限値以下であると判定された場合(ステップSB2:NO)、制御部10は、結節マスク領域が処理対象領域の端面に達しているか否かを処理対象領域に判定させる(ステップSB3)。具体的には、処理対象領域の端面を構成する複数のボクセルの何れかに、前景領域に関するボクセル(値“1”を有するボクセル)があるか否かを判定する。端面を構成するボクセルに、前景領域に関するボクセルがある場合、処理対象領域決定部14は、結節マスク領域が処理対象領域の端面に達していると判定する。一方、端面を構成するボクセルに、前景領域に関するボクセルがない場合、処理対象領域決定部14は、結節マスク領域が処理対象領域の端面に達していないと判定する。
結節マスク領域が処理対象領域の端面に達していない判定された場合(ステップSB3:NO)、処理対象領域決定部14は、血管判定距離Dsより短い突起領域が処理対象領域の端面に達しているか否かを判定する(ステップSB4)。
血管判定距離Ds(例えば20mm)より短い突起領域が処理対象領域の端面に達していると判定された場合(ステップSB4:YES)、又は結節マスク領域が処理対象領域の端面に達している判定された場合(ステップSB3:YES)、制御部10は、処理対象領域決定部14に、所定のサイズだけ処理対象領域を拡大させる(ステップSB5)。所定のサイズは、例えば10mmである。この場合、処理対象領域の6つの面の全ての方向に対して5mmずつ拡大する。また、結節マスク領域が達している端面の方向に対してのみ5mmだけ拡大させてもよい。なお、所定のサイズは、予め設定されていても、ユーザにより入力部30を介して設定させるとしてもよい。
処理対象領域が所定のサイズだけ拡大されると、制御部10は、各部を制御して、拡大された処理対象領域で再び結節領域の抽出処理を行なわせる。
一方、処理対象領域のサイズが100mm以上の場合(ステップSB2:YES),又は血管判定距離Ds(例えば20mm)より短い突起領域が処理対象領域の端面に達していないと判定された場合(ステップSB4:NO)、制御部10は、処理領域の修正処理を終了する。
最初から大き目の処理対象領域(例えば一辺100mm)に設定すれば、結節領域が処理対象領域に収まらなくなるという問題は発生しない。しかし、本実施形態のように、最初は小さいサイズで結節領域の抽出処理を行なうことで、高速に処理を実行することができる。
本実施形態は、結節の(一般に)複数の突起候補領域を求め、核領域からダイレーション距離Dmaxに基づいて、それら複数の突起候補領域のうちの非結節領域を特定し、ダイレーション距離Dmaxより短いダイレーション距離Dminに基づいて、非結節領域を切断するため、小さな突起が除去されないという性質を有する。従って従来法よりエロージョン距離Dminを長くでき、より太い血管を結節領域から分離でき、且つ、小さな突起が除去されず結節形状の変形を少ないという特徴を有する。従って、結節領域の抽出精度が向上し、また、結節領域の抽出精度の向上に伴い結節領域の体積値の算出精度も向上する。
本実施形態によれば、従来の方法に比して、短時間に、太い血管を分離でき、結節領域の一部の小さな突起を切断せずに、小さな結節領域を除去せずに、結節領域を抽出することができる。かくして、短時間、且つ高精度に結節領域を抽出可能な画像処理装置を提供することが可能となる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を除去してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1…画像処理装置、10…制御部、12…記憶部、14…処理対象領域決定部、16…結節候補領域抽出部、18…穴埋め部、20…核領域決定部、22…結節領域抽出部、24…体積算出部、26…画像発生部、28…表示部、30…入力部。