JP7275669B2 - マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム - Google Patents

マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム Download PDF

Info

Publication number
JP7275669B2
JP7275669B2 JP2019042820A JP2019042820A JP7275669B2 JP 7275669 B2 JP7275669 B2 JP 7275669B2 JP 2019042820 A JP2019042820 A JP 2019042820A JP 2019042820 A JP2019042820 A JP 2019042820A JP 7275669 B2 JP7275669 B2 JP 7275669B2
Authority
JP
Japan
Prior art keywords
mask
calculated
calculating
area
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019042820A
Other languages
English (en)
Other versions
JP2020142003A (ja
Inventor
敏雄 茂出木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2019042820A priority Critical patent/JP7275669B2/ja
Publication of JP2020142003A publication Critical patent/JP2020142003A/ja
Application granted granted Critical
Publication of JP7275669B2 publication Critical patent/JP7275669B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Image Generation (AREA)

Description

本開示は、マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラムに関する。
医用画像診断において、特定の人体組織の観察に適した3次元再構成像等を得たい場面がある。例えば、胸部や頭部にある内臓や脳等の所定の人体組織の観察を行いたい場合に、内臓や脳等は骨に囲まれており、骨領域はむしろ診断の妨げになる。CT画像から生成される3次元再構成像等では一般に骨が鮮明に描写され、内臓や血管は隠れてしまうことがあるため、可視化にあたっては切断を行うなど工夫が必要となることがある。
たとえば、領域拡張法(リージョングローイング法)を用いて非観察対象としたい骨領域を抽出した3次元マスクを作成し、3次元マスクを参照しながらマスク処理により非観察対象としたい骨領域を除去したボリュームレンダリング像を生成する方法が開示されている(特許文献2、3参照)。領域拡張法とは、非観察対象領域の画素を指定し、その画素を開始点(拡張開始点)として、近傍画素を次々と抽出する方法である。
特開2009-240569号公報 特許4087517号公報 特許5257958号公報
しかしながら、領域拡張法を用いた3次元マスクの作成は、ユーザによる複数の拡張開始点の指示が必須で、拡張の打ち切り段階もユーザが指示する必要があるため、自動化が難しく、ユーザごとに結果にバラつきが発生するという問題がある。また領域拡張法に限らず、3次元マスクの作成は、ユーザのスキルや経験が必要であり、その作成に時間や手間がかかる。
本開示の実施形態は、このような点を鑑みてなされたものであり、所望の領域を可視化するためのマスクデータを容易に作成することが可能な、マスク生成装置等を提供することを目的とする。
本開示の一実施形態によると、複数の断層画像を取得する画像取得手段と、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、を備えるマスク生成装置が提供される。
本開示の一実施形態によると、複数の断層画像を取得する画像取得手段と、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、を備え、前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域を算出する、マスク生成装置が提供される。
本開示の一実施形態によると、複数の断層画像を取得する画像取得手段と、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、を備え、前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域の内部に定義される第2の矩形領域を算出する、マスク生成装置が提供される。
本開示の一実施形態によると、複数の断層画像を取得する画像取得手段と、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、断層画像毎に、前記被写体領域算出手段により算出された被写体領域の縦方向のサイズと横方向のサイズの比率に応じた補正方法により該被写体領域を補正する被写体領域補正手段と、を備えるマスク生成装置が提供される。
本開示の一実施形態によると、複数の断層画像を取得する画像取得手段と、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、前記断層画像の各画素をボクセル空間に配置して構成される3次元ボクセルと前記マスクデータに基づいて3次元再構成像を生成する3次元再構成像生成手段と、を備える3次元再構成像生成装置が提供される。
本開示の一実施形態によると、コンピュータが、複数の断層画像を取得する画像取得ステップと、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出ステップと、断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出ステップと、断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出ステップと、断層画像毎に、断層画像の各画素に対して重み値算出ステップにより算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成ステップと、を実行するマスク生成方法が提供される。
本開示の一実施形態によると、コンピュータを、複数の断層画像を取得する画像取得手段、断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段、断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段、断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段、として機能させるプログラムが提供される。
本開示により、所望の領域を可視化するためのマスクデータを容易に作成することができる。
マスク生成装置1の機能構成を示す図 マスク生成装置1のハードウェア構成を示す図 マスク生成装置1の動作を示すフローチャート 描画重みテーブル作成処理の流れを示すフローチャート 矩形領域41、矩形領域42、被写体候補領域50を説明する図 被写体領域算出処理の流れを示すフローチャート 被写体領域算出処理の概要を示す図 第2重心の算出について説明する図 第3重心の算出について説明する図 算出された矩形領域42を示す図 (a)領域内部の信号値が比較的大きい場合の矩形領域42、(b)領域内部の信号値が比較的小さい場合の矩形領域42 被写体候補領域50との面積比率に基づいて矩形領域42を補正する内容を示す図 面積比率に基づく補正を上胸部に適用した場合を示す図 矩形領域42の縦横比率に基づいて矩形領域42を補正(縮小補正)する内容を示す図 被写体領域補正処理の流れを示すフローチャート 重み値Sv(x、y、z)の2次元分布パターンを示す図 マスクデータ生成処理の流れを示すフローチャート マスクデータ生成処理の流れを示すフローチャート 描画重みテーブル作成処理およびマスクデータ作成処理を並行して実行する概要を示す図 描画重みテーブル作成処理およびマスクデータ作成処理を並行して実行させる仕組みを示す図 3次元再構成像生成装置2が実行する再構成像生成処理の概要を示す図 3次元再構成像生成装置2の機能構成を示す図 3次元再構成像生成装置2のハードウェア構成を示す図 3次元再構成像生成装置2の動作を示すフローチャート ボリュームレンダリング画像を生成する処理の全体の流れを示すフローチャート 有効ボクセル領域Vrを示す図 ボリュームレンダリング画像を生成する具体的な処理の流れを示すフローチャート レイキャスティング処理の流れを示すフローチャート 有効ボクセル領域Vrと視線ベクトルとの交点を算出する様子を示す図 有効ボクセル領域Vrと視線ベクトルとの交点を算出する様子を示す図 起点座標探索処理の流れを示すフローチャート ボクセルα値取得処理(補間なし)の流れを示すフローチャート ボクセルα値取得処理(補間あり)の流れを示すフローチャート MIP画像を生成する処理の全体の流れを示すフローチャート 有効ボクセル領域Vrを示す図 MIP画像を生成する具体的な処理の流れを示すフローチャート レイキャスティング処理の流れを示すフローチャート 起点座標探索処理の流れを示すフローチャート ボクセル信号値取得処理(補間なし)の流れを示すフローチャート ボクセル信号値取得処理(補間あり)の流れを示すフローチャート MPR画像を生成する処理の流れを示すフローチャート MPR画像(体軸断面、冠状断面、矢状断面)について説明する図 胸腹部のボリュームレンダリング画像の表示例 胸腹部のMIP画像の表示例 胸腹部のMPR画像(体軸断面、冠状断面、矢状断面)の表示例 胸腹部のボリュームレンダリング画像の比較表示例
以下図面に基づいて、本開示の実施の形態を詳細に説明する。
(1.マスク生成装置1の機能構成)
図1は、マスク生成装置1の機能構成を示す図である。図に示すように、マスク生成装置1は、画像取得部21、描画重みテーブル作成部22、マスクデータ生成部23を備える。
画像取得部21は、CT装置により撮影された断層画像群Doを取得する。断層画像群Doは、被検体(人体)を頭尾軸に沿って所定の間隔で連続的に撮影した複数の断層画像(CT画像)である。各断層画像はDICOM形式の2次元の画像データである。DICOM形式は、1ファイルにヘッダ部と画像データ部を含む医療画像で一般的に用いられる画像フォーマットであり、画像撮影時のパラメータや診断情報を保存しておくことができる。
1つの断層画像は、例えば、512×512ピクセルの画像(CT画像)である。断層画像の各画素には、信号値vが付与されており、CT画像の場合、信号値vはCT値である。本実施の形態では、信号値v(CT値)は16ビット(-32768≦v≦32767)のデータとする(但し、信号値vのビット数は特に限定されない)。
CT値は、水を基準として表現した組織のX線減弱係数であり、CT値により組織や病変の種類等が判断できるようになっている(単位はHU(Hounsfield Unit))。CT値は、水と空気のX線減弱係数で標準化されており、水のCT値は0、空気のCT値を-1000である。また、脂肪のCT値は-120~-100程度であり、通常組織のCT値は0~120程度であり、骨のCT値は1000前後を示す。
断層画像群Doは、XYの2次元データである断層画像をZ軸方向に積層したものであり、XYZの座標軸で規定されるボクセル空間Rに配置可能なボクセルデータ(3次元ボクセル)として表現可能である。例えば、断層画像群Do(3次元ボクセル)は、以下のように定義される。なお本開示において、X軸は人体の左右軸、Y軸は人体の背腹軸(前後軸)、Z軸は人体の頭尾軸(上下軸)に相当するものとする。XY軸は、例えば、CT装置での撮影時に設定される。また、本開示において、X軸方向を横方向、Y軸方向を縦方向と呼ぶ場合がある。
(式1)
-32768≦Do(x、y、z)≦32767
0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1
解像度:Rxy、解像度Rz
(式1)において、Sxは断層画像の横方向の画素数(ボクセル数)、Syは断層画像の縦方向の画素数(ボクセル数)、Szはスライス枚数(ボクセル数)を表し、スキャン方向に所定の間隔で配置される。Rxyは横方向及び縦方向の断層画像の解像度であり、横方向と縦方向の解像度は通常同一で(DICOM規格上は異なった解像度を指定できるが、異なった解像度でスキャンするモダリティは現存しない)、画素の間隔(Wxy)の逆数、すなわち単位距離あたりの画素数を示す。Rzはスライスの解像度であり、断層画像のスライス間隔(Wz)(例えば、0.5mmや1mm)の逆数、すなわち単位距離あたりのスライス枚数を表す。
断層画像群Doの信号値は、必要に応じて8ビットに階調圧縮される場合がある。8ビットに階調圧縮された断層画像群Do(x、y、z)は以下のように定義される。
(式2)
0≦Do(x、y、z)≦255
0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1
描画重みテーブル作成部22は、断層画像Do(z)毎に、断層画像Do(z)の各画素(x、y、z)を描画対象とする重み値を格納した描画重みテーブルSvを作成する。描画重みテーブルSvは以下のように定義される。
(式3)
0≦Sv(x、y、z)≦1
0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1
描画重みテーブル作成部22は、図1に示すように、被写体領域算出部31、被写体領域補正部32、被写体形状算出部33、重み値算出部34から構成される。
被写体領域算出部31は、断層画像Do(z)毎に、断層画像Do(z)の各画素の信号値に基づいて被写体領域を算出する。
被写体領域補正部32は、胸部CT画像の場合に、被写体領域算出部31により算出された被写体領域を補正する。
被写体形状算出部33は、断層画像Do(z)毎に、被写体領域算出部31により算出された被写体領域または被写体領域補正部32により補正された被写体領域の外郭を所定の幾何形状(被写体形状)で近似し、当該幾何形状を規定するパラメータ(幾何パラメータP(z))を算出する。
重み値算出部34は、断層画像Do(z)毎に、被写体形状算出部33により算出された幾何パラメータP(z)に基づいて、断層画像Do(z)の各画素(x、y、z)を描画対象とする重み値Sv(x、y、z)を算出し、重み値Sv(x、y、z)を格納した3次元の描画重みテーブルSvを作成する。
なお、重み値Sv(x、y、z)は3次元のデータ配列であり、そのままデータテーブル(描画重みテーブル)として扱えるため、重み値と描画重みテーブルは実質的に同一である。このため、重み値と描画重みテーブルは同一の符号「Sv」で表す。
マスクデータ生成部23は、描画重みテーブル作成部22により作成された描画重みテーブルSvに基づいて、断層画像群Doの各画素(x、y、z)の重み値を所定の閾値で二値化したマスク値を算出し、各画素(x、y、z)に対応するマスク値を保持する3次元のマスクデータMaskを生成する。マスクデータMaskは以下のように定義される。
(式4)
Mask(x、y、z)= 0(非描画)または1(描画)
0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1
(2.マスク生成装置1のハードウェア構成)
図2は、本実施の形態におけるマスク生成装置1のハードウェア構成を示すブロック図である。図に示すように、マスク生成装置1は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される汎用のコンピュータで実現される。但し、これに限ることなく、用途、目的に応じて様々な構成を採ることが可能である。
制御部11は、単一プロセッサ、或いはマルチコアCPUで構成されるプロセッサ又はプロセッサが複数個で構成されるマルチプロセッサ(以降、いずれも単に「CPU」と表記し、CPUが有するコアをCPUコアと表記する)、ROM(Read Only Memory)、RAM(Random Access Memory)、フレームメモリ(Frame Memory)等によって構成される。CPUは、記憶部12、ROM、記録媒体等に格納されるレンダリングプログラムをRAM、フレームメモリ上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、マスク生成装置1が行う後述する処理を実現する。なお、本開示では、複数のCPUコアを用いた処理を後述するが、複数のCPUコアには物理的に複数のCPUコア(区別して説明する場合には、物理コアと表記する)だけでなく、論理的に複数のCPUコア(区別して説明する場合には、論理コアと表記する)も含まれる。
ROMは、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。RAM、フレームメモリは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
記憶部12は、HDD(Hard Disk Drive)等であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(Operating System)等が格納される。プログラムに関しては、OSに相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAM、フレームメモリに移され、CPUに読み出されて各種の手段として実行される。
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(-ROM、-R、-RW等)、DVDドライブ(-ROM、-R、-RW等)等のメディア入出力装置を有する。通信制御部14は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。入力部15を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。
表示部16は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。なお、入力部15及び表示部16は、タッチパネルディスプレイのように、一体となっていてもよい。
周辺機器I/F(Interface)部17は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器I/F部17を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USB(Universal Serial Bus)やIEEE1394やRS-232C等によって構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
(3.マスク生成装置1の動作)
図3のフローチャートを参照しながら、マスク生成装置1の動作について説明する。
まず、マスク生成装置1の制御部11は、CT装置により撮影された断層画像群Doを取得する(ステップS1)。
続いて、制御部11は、断層画像Do(z)毎に、断層画像Do(z)の各画素(x、y、z)を描画対象とする重み値Sv(x、y、z)を格納した描画重みテーブルSvを作成する(ステップS2)。描画重みテーブルSvを作成する処理については後述する(「4.描画重みテーブルの作成」参照)。
そして、制御部11は、ステップS2において作成された描画重みテーブルSvを参照して、断層画像群Doの各画素(x、y、z)の重み値Sv(x、y、z)を所定の閾値で二値化したマスク値Mask(x、y、z)を算出し、各画素(x、y、z)に対応するマスク値を保持する3次元のマスクデータMaskを生成する(ステップS3)。マスクデータMaskを生成する処理については後述する(「5.マスクデータの生成」参照)。
(4.描画重みテーブルの作成)
図4~図16を参照しながら、図3のステップS2において実行される描画重みテーブルSvを作成する処理を説明する。
図4は、描画重みテーブルSvを作成する処理の流れを示すフローチャートである。
<被写体領域算出処理>
制御部11は、まず、断層画像Do(z)毎に、断層画像Do(z)の各画素の信号値に基づいて、被写体領域として、矩形領域41(第1の矩形領域)または矩形領域42(第2の矩形領域)を算出する(ステップS21)。
図5に示すように、矩形領域41(第1の矩形領域)とは、被写体候補領域50の最外側を囲う矩形領域である。被写体候補領域50とは、断層画像Do(z)のうち信号値が所定の閾値(例えば、空気でない信号値以上)より大きい画素領域である。なお、被写体領域として矩形領域41を算出する方法は、本発明者が特願2018-103767に既に提案しているため、ここでは、主に、被写体領域として矩形領域42(第2の矩形領域)を算出する方法を説明する。
矩形領域42(第2の矩形領域)とは、図5に示すように、矩形領域41の内部に定義される矩形領域である。矩形領域41は、信号値が所定の閾値より大きい全ての画素を含むため、図5に示すように、人体50a以外の寝台50bやヘッドレストなどの不要領域が含まれる場合がある。そこで、本開示では、被写体候補領域50の信号値分布を考慮して、矩形領域41の内部に定義される矩形領域42を算出することで、寝台やヘッドレストなどの不要領域が含まれないように被写体領域を抽出する。
図6~図14を参照しながら、図4のステップ21において実行される被写体領域(矩形領域42)を算出する処理を具体的に説明する。
図6は、被写体領域(矩形領域42)を算出する処理の流れを示すフローチャートである。なお、断層画像Do(z)の各画素の信号値が16ビットの場合は、あらかじめ、以下のように8ビットの信号値に変換しておく。
(式5)
D8(x、y、z)={Do(x、y、z)+700}・255/1724
ただし、D8(x、y、z)<0の場合はD8(x、y、z)=0、D8(x、y、z)>255の場合はD8(x、y、z)=255とする。
まず、制御部11は、被写体候補領域50の画素の信号値で重み付けした重心座標を、矩形領域42の中心座標として算出する(ステップS31、図7(a))。
具体的には、制御部11は、算出対象の矩形領域42の中心座標を(C(x)、Cy(z))、重みの総和をWsとし、Cx(z)=Cy(z)=Ws=0に初期化し、断層画像D8(x、y、z)の各画素(x、y)(0≦x≦Sx-1、0≦y≦Sy-1)に対して、D8(x、y、z)>Vmin(例えば、Vmin=10)を満たす場合、被写体候補領域50の画素であるとし、以下のようにCx(z)、Cy(z)、Wsを更新する。
(式6)
w={D8(x、y、z)-Vmin}として、
Cx(z)←Cx(z)+x・w
Cy(z)←Cy(z)+y・w
Ws←Ws+w
制御部11は、0≦x≦Sx-1、0≦y≦Sy-1の範囲のSx×Sy個の画素に対して上記処理を実行したのち、Ws>1の場合、
(式7)
Cx(z)=Cx(z)/Ws
Cy(z)=Cy(z)/Ws
とする。
以上のように、被写体候補領域50の画素の信号値で重み付けした重心座標を求め、この重心座標を矩形領域42の中心座標(Cx(z)、Cy(z))として算出する。
続いて、制御部11は、算出された中心座標(Cx(z)、Cy(z))を起点に上下左右の4方向に矩形領域41(第1の矩形領域)の範囲で信号値が所定の閾値より大きい画素(被写体候補領域50の画素)の信号値で重み付けした重心(以下、「第2重心」と呼ぶ)を算出する(ステップS32、図7(b))。
すなわち、図8(a)(b)に示すように、制御部11は、中心座標(Cx(z)、Cy(z))(被写体候補領域50の重心)を起点に被写体候補領域50をX軸方向に2分割し、分割された各被写体候補領域50における画素の信号値で重み付けした重心(第2重心)のX座標Gx1、Gx2(Gx1<Gx2)を算出する。
同様に、図8(c)(d)に示すように、制御部11は、中心座標(Cx(z)、Cy(z))(被写体候補領域50の重心)を起点に被写体候補領域50をY軸方向に2分割し、分割された各被写体候補領域50における画素の信号値で重み付けした重心(第2重心)のY座標Gy1、Gy2(Gy1<Gy2)を算出する。
第2重心を求める具体的な処理は以下の通りである。
制御部11は、まず、各第2重心座標に対する重みの総和をWx1、Wx2、Wy1、Wy2とし、Gx1=Gx2=Gy1=Gy2=Wx1=Wx2=Wy1=Wy2=0に初期化する。
そして、制御部11は、断層画像D8(x、y、z)の各画素(x、y)(0≦x≦Sx-1、0≦y≦Sy-1)に対して、D8(x、y、z)>Vmin(例えば、Vmin=10)を満たす場合、被写体候補領域50の画素であるとし、以下のようにGx1、Gx2、Gy1、Gy2、Wx1、Wx2、Wy1、Wy2を更新する。
(式8)
w={D8(x、y、z)-Vmin}として、
x<Cx(z)の場合、Gx1←Gx1+x・w、Wx1←Wx1+w
x≧Cx(z)の場合、Gx2←Gx2+x・w、Wx2←Wx2+w
y<Cy(z)の場合、Gy1←Gy1+y・w、Wy1←Wy1+w
y≧Cy(z)の場合、Gy2←Gy2+y・w、Wy2←Wy2+w
制御部11は、0≦x≦Sx-1、0≦y≦Sy-1の範囲のSx×Sy個の画素に対して上記処理を実行したのち、
(式9)
Gx1=Gx1/Wx1
Gx2=Gx2/Wx2
Gy1=Gy1/Wy1
Gy2=Gy2/Wy2
とし、分割された各被写体候補領域50における第2重心座標Gx1、Gx2(Gx1<Gx2)、Gy1、Gy2(Gy1<Gy2)を求める。
続いて、制御部11は、ステップS32において算出された第2重心座標を起点に更に上下左右の4方向に矩形領域41(第1の矩形領域)の範囲で信号値が所定の閾値より大きい画素(被写体候補領域50の画素)の信号値で重み付けした重心(以下、「第3重心」と呼ぶ)を算出する(ステップS33、図7(c))。
すなわち、図9(a)(b)に示すように、制御部11は、第2重心Gx1、Gx2を起点に被写体候補領域50をX軸方向に3分割し、左右端の2つの被写体候補領域50における画素の信号値で重み付けした重心(第3重心)のX座標Gtx1、Gtx2(Gtx1<Gtx2)を算出する。
同様に、図9(c)(d)に示すように、制御部11は、第2重心Gy1、Gy2を起点に被写体候補領域50をY軸方向に3分割し、上下端の2つの被写体候補領域50における画素の信号値で重み付けした重心(第3重心)のY座標Gty1、Gty2(Gty1<Gty2)を算出する。
第3重心を求める具体的な処理は以下の通りである。
制御部11は、まず、各第3重心座標に対する重みの総和をWx1、Wx2、Wy1、Wy2とし、Gtx1=Gtx2=Gty1=Gty2=Wx1=Wx2=Wy1=Wy2=0に初期化する。
そして、制御部11は、断層画像D8(x、y、z)の各画素(x、y)(0≦x≦Sx-1、0≦y≦Sy-1)に対して、D8(x、y、z)>Vmin(例えば、Vmin=10)を満たす場合、被写体候補領域50の画素であるとし、以下のようにGtx1、Gtx2、Gty1、Gty2、Wx1、Wx2、Wy1、Wy2を更新する。
(式10)
w={D8(x、y、z)-Vmin}として、
x<Gx1の場合、Gtx1←Gtx1+x・w、Wx1←Wx1+w
x>Gx2の場合、Gtx2←Gtx2+x・w、Wx2←Wx2+w
y<Gy1の場合、Gty1←Gty1+y・w、Wy1←Wy1+w
y>Gy2の場合、Gty2←Gty2+y・w、Wy2←Wy2+w
制御部11は、0≦x≦Sx-1、0≦y≦Sy-1の範囲のSx×Sy個の画素に対して上記処理を実行したのち、
(式11)
Gtx1=Gtx1/Wx1
Gtx2=Gtx2/Wx2
Gty1=Gty1/Wy1
Gty2=Gty2/Wy2
とし、分割された各被写体候補領域50における第3重心座標Gtx1、Gtx2(Gtx1<Gtx2)、Gty1、Gty2(Gty1<Gty2)を求める。
そして、制御部11は、ステップS33において算出された第3重心座標に基づいて、以下のように、矩形領域42の横方向のサイズW(z)、縦方向のサイズH(z)を算出する(ステップS34、図7(d))。
(式12)
横方向のサイズ:W(z)=Gtx2-Gtx1
縦方向のサイズ:H(z)=Gty2-Gty1
また、制御部11は、以下のように、中心座標(Cx(z)、Cy(z))を起点として横方向のサイズと縦方向のサイズを2種類算出する。
(式13)
第1の横方向のサイズ:W1(z)=Cx(z)-Gtx1
第2の横方向のサイズ:W2(z)=Gtx2-Cx(z)
第1の縦方向のサイズ:H1(z)=Cy(z)-Gty1
第2の縦方向のサイズ:H2(z)=Gty2-Cy(z)
図10は、算出された矩形領域42を示す図である。図に示すように、矩形領域42の横方向のサイズW(z)は、右方向の第3重心Gtx2から左方向の第3重心Gtx1までの距離に相当し、矩形領域42の縦方向のサイズH(z)は、下方向の第3重心Gty2から上方向の第3重心Gty1までの距離に相当する。
また、第1の横方向のサイズW1(z)は、左方向の第3重心Gtx1から矩形領域42の中心座標までの距離に相当し、第2の横方向のサイズW2(z)は、右方向の第3重心Gtx2から矩形領域42の中心座標までの距離に相当する。第1の縦方向のサイズH1(z)は、上方向の第3重心Gty1から矩形領域42の中心座標までの距離に相当し、第2の縦方向のサイズH2(z)は、下方向の第3重心Gty2から矩形領域42の中心座標までの距離に相当する。
以上の処理により、被写体領域として、中心座標(Cx(z)、Cy(z))、横方向のサイズW(z)(第1の横方向のサイズW1(z)、第2の横方向のサイズW2(z))、縦方向のサイズH(z)(第1の縦方向のサイズH1(z)、第2の縦方向のサイズH2(z))により規定される矩形領域42が算出される。
なお、ステップS34において、制御部11は、ステップS32において算出された第2重心に基づいて矩形領域42の横方向のサイズW(z)(第1の横方向のサイズW1(z)、第2の横方向のサイズW2(z))と縦方向のサイズH(z)(第1の縦方向のサイズH1(z)、第2の縦方向のサイズH2(z))を算出してもよい。
また、制御部11は、ステップS33において算出された第3重心を起点に更に上下左右の4方向に第4重心を算出してもよい。この場合、制御部11は、第4重心に基づいて矩形領域42の横方向のサイズW(z)(第1の横方向のサイズW1(z)、第2の横方向のサイズW2(z))と縦方向のサイズH(z)(第1の縦方向のサイズH1(z)、第2の縦方向のサイズH2(z))を算出する。
<被写体領域補正処理>
ところで、胸部CTの場合、矩形領域42の縦横サイズを中心点から上下左右方向の第2重心や第3重心で算出する方法をとると、骨領域内の臓器の信号値分布によっては、矩形領域42が骨領域を除去し骨領域内の臓器等を可視化するのに適したサイズとならない場合がある。
例えば、図11(a)のように領域内部の信号値が比較的大きい場合(例えば、腹部肝臓領域の場合)、算出される重心(第2重心、第3重心)が中心に寄りやすくなるため、矩形領域42が小さめに算出される。すなわち、矩形領域42が骨領域より内側に定義される場合がある。このような矩形領域42に基づいてマスクデータを作成すると、本体描画対象である内臓領域が除去される場合がある。
また、図11(b)のように領域内部の信号値が比較的小さい場合(例えば、胸部肺領域の場合)、算出される重心が外側に寄りやすくなるため、矩形領域42が大きめに算出される。すなわち、矩形領域42が骨領域より外側に定義される場合がある。このような矩形領域42に基づいてマスクデータを作成すると、非描画対象である骨領域が精度よく除去できない場合がある。
そこで、上記問題を解決するため、図12に示すように、算出された矩形領域42の横方向および縦方向のサイズに対して、被写体候補領域50と矩形領域42との面積比を倍率として乗算することで、矩形領域42のサイズを補正する。
これにより、図11(a)のように領域内部の信号値が比較的大きい場合(例えば、腹部肝臓領域の場合)には矩形領域42が拡大補正され、図11(b)のように領域内部の信号値が比較的小さい場合(例えば、胸部肺領域の場合)には矩形領域42が縮小補正され、矩形領域42が骨領域を除去し骨領域内の臓器等を可視化するのに適したサイズに補正される。
ただし、上記補正を施すと元来不要な上胸部の矩形領域42(被写体領域)が拡大補正されてしまうという別の問題が生じる。
図13は、上記補正を上胸部に適用した場合を示す。図に示すように、上胸部は骨領域に囲まれた形態ではなく、高信号の骨領域が単独で分布している。そのため、矩形領域42に対する被写体候補領域50の面積比率が腹部並みに大きくなってしまい、腹部と同様に拡大補正されてしまう。しかしながら、上胸部は非描画対象である骨領域が大半を占めるため、上胸部領域において矩形領域42(被写体領域)が拡大されることは望ましくない。
ところで、上胸部の骨領域は横方向に伸びているため、矩形領域42が扁平になる特徴がある。そこで、本開示では、図14に示すように、矩形領域42の縦横比率(縦方向のサイズH(z)/横方向のサイズW(z))を算出し、この値が所定の閾値(例えば、0.6)より小さければ上胸部であると識別し、矩形領域42の横方向および縦方向のサイズに対して、矩形領域42と被写体候補領域50との面積比率を乗算する代わりに、縦横比率を乗算して補正(縮小補正)する。一方、矩形領域42の縦横比率が所定の閾値(例えば、0.6)以上であれば胸部または腹部であると判断し、矩形領域42の横方向および縦方向のサイズに対して、矩形領域42と被写体候補領域50との面積比率を乗算して補正する。
このように、本開示では、矩形領域42の縦横比率(縦方向のサイズ/横方向のサイズ)に基づいて被写体領域の部位(上胸部/胸部または腹部)を判断し、部位に応じた補正方法により矩形領域42を補正する。
図15は、ステップS22の被写体領域の補正処理の流れを示すフローチャートである。
制御部11は、まず、以下のように、矩形領域42の縦横比率Rvhを算出する(ステップS41)。
(式14)
縦横比率Rvh=H(z)/W(z)
縦横比率に対する閾値をSrvh(例えば、0.62)とし、Rvh<Srvhの場合(ステップS42;No)、制御部11は、上胸部であると判断し、以下のように矩形領域42を補正(縮小補正)する(ステップS43、図14の補正)。
(式15)
横方向のサイズ:W(z)=W(z)・Rvh
縦方向のサイズ:H(z)=H(z)・Rvh
(式16)
第1の横方向のサイズ:W1(z)=W1(z)・Rvh
第2の横方向のサイズ:W2(z)=W2(z)・Rvh
第1の縦方向のサイズ:H1(z)=H1(z)・Rvh
第2の縦方向のサイズ:H2(z)=H2(z)・Rvh
一方、Rvh≧Srvhの場合(ステップS42;Yes)、制御部11は、
胸部または腹部であると判断し、まず、断層画像D8(x、y、z)の各画素(x、y)(0≦x≦Sx-1、0≦y≦Sy-1)に対して、D8(x、y、z)>Vmin(例えば、Vmin=10)を満たす画素数をカウントし、カウント値Cobjを被写体候補領域50の面積として算出する(ステップS44)。
続いて、制御部11は、矩形領域42との面積比率Robjを
(式17)
Robj=Cobj/(H(z)・W(z))
により算出し、横方向、縦方向の倍率Rox、RoyをRox=Roy=Robjとする(ステップS45)。
変倍率の上限をMox、Moyに設定し、Rox>Moxの場合はRox=Mox、Roy>Moyの場合はRoy=Moyとし、制御部11は、以下のように矩形領域42を補正する(ステップS46、図12の補正)。
(式18)
横方向のサイズ:W(z)=W(z)・Rox
縦方向のサイズ:H(z)=H(z)・Roy
(式19)
第1の横方向のサイズ:W1(z)=W1(z)・Rox
第2の横方向のサイズ:W2(z)=W2(z)・Rox
第1の縦方向のサイズ:H1(z)=H1(z)・Roy
第2の縦方向のサイズ:H2(z)=H2(z)・Roy
<被写体形状算出処理>
続いて、制御部11は、断層画像Do(z)毎に、ステップS21において算出された被写体領域(矩形領域42)、またはステップS22において補正された被写体領域(矩形領域42)の外郭を所定の幾何形状(被写体形状)で近似し、当該幾何形状を規定するパラメータ(幾何パラメータP(z))を算出する(ステップS23)。
本開示では、以下の各領域(4象限)において異なる径が設定できる特殊な楕円(以下、「変形楕円」とも呼ぶ)で近似するものとし、幾何パラメータP(z)として変形楕円を構成する各領域(4象限)の楕円を規定するパラメータ(楕円パラメータP1(z)~P4(z)))を算出する。
(領域1)x<Cx(z)かつy<Cy(z)
(領域2)x≧Cx(z)かつy<Cy(z)
(領域3)x<Cx(z)かつy≧Cy(z)
(領域4)x≧Cx(z)かつy≧Cy(z)
(式20)
(領域1における楕円パラメータP1(z))
楕円の中心座標Cx(z)、Cy(z)
楕円の横方向の2分割サイズrx1=W1(z)・a1(横径)
楕円の縦方向の2分割サイズry1=H1(z)・b1(縦径)
(領域2における楕円パラメータP2(z))
楕円の中心座標Cx(z)、Cy(z)
楕円の横方向の2分割サイズrx2=W2(z)・a2(横径)
楕円の縦方向の2分割サイズry1=H1(z)・b1(縦径)
(領域3における楕円パラメータP3(z))
楕円の中心座標Cx(z)、Cy(z)
楕円の横方向の2分割サイズrx1=W1(z)・a1(横径)
楕円の縦方向の2分割サイズry2=H2(z)・b2(縦径)
(領域4における楕円パラメータP4(z))
楕円の中心座標Cx(z)、Cy(z)
楕円の横方向の2分割サイズrx2=W2(z)・a2(横径)
楕円の縦方向の2分割サイズry2=H2(z)・b2(縦径)
a1、a2、b1、b2は、楕円の縦横径W1(z)、W2(z)、H1(z)、H2(z)の各々に対応する補正係数(実数値で補正しない場合は1.0)であり、左方向(a1、W1(z))、右方向(a2、W2(z))、正面方向(b1、H1(z))、背面方向(b2、H2(z))の4方向別に設定する。
例えば、以下のように設定される。
・胸部CTの場合:a1=a2=0.95、b1=1.05、b2=0.55
・頭部CTの場合:a1=a2=1.15、b1=1.2、b2=1.25
<重み値算出処理>
そして、制御部11は、断層画像Do(z)毎に、ステップS23において算出された変形楕円の幾何パラメータP(z)(楕円パラメータP1(z)~P4(z))に基づいて各画素(x、y、z)を描画対象とする重み値Sv(x、y、z)を算出し、描画重みテーブルSvを作成する(ステップS24)。
例えば、z番目の断層画像Do(z)の各画素(x、y、z)の重み値Sv(x、y、z)は、以下のように算出される。
(式21)
Sv(x、y、z)=Svxy(x、y、z)・Svz(z)
(0≦Sv(x、y、z)、Svxy(x、y、z)、Svz(z)≦1)
Svxy=1-k・r(x、y、z)
(領域1)x<Cx(z)かつy<Cy(z)の場合:
r(x、y、z)={(x-Cx(z))/rx1}+{(y-Cy(z))/ry1}
(領域2)x≧Cx(z)かつy<Cy(z)の場合:
r(x、y、z)={(x-Cx(z))/rx2}+{(y-Cy(z))/ry1}
(領域3)x<Cx(z)かつy≧Cy(z)の場合:
r(x、y、z)={(x-Cx(z))/rx1}+{(y-Cy(z))/ry2}
(領域4)x≧Cx(z)かつy≧Cy(z)の場合:
r(x、y、z)={(x-Cx(z))/rx2}+{(y-Cy(z))/ry2}
Svz(z)=1.0-kz・{(z-Sz/2)/rz}
rz=Sz・c/2
kはXY平面、kzはZ方向の各々減衰係数で、胸部CTの場合はk=1.0、kz=0.0、頭部CTの場合はk=kz=1.0に設定する。
cは頭部CTの場合に設定されるZ方向幅Sz/2に対応する補正係数(実数値で補正しない場合は1.0)であり、例えば、c=0.9である。
図16は、式21により算出される重み値Sv(x、y、z)の2次元分布パターンを示す図である。図に示すように、変形楕円の中心(Cx(z)、Cy(z))の重み値Svは1(最大)となり、変形楕円内部は中心から遠ざかるにつれ重み値Svが小さくなる。具体的には、変形楕円内部は、変形楕円を構成する各楕円の横径、縦径の比率および中心座標が同一となる各同心楕円上の重み値Svが、各同心楕円の横径、縦径が大きいほど小さくなる(径の2乗に反比例して小さくなる)。変形楕円外部の重み値Svは一律に0とする。
また、頭部CTの場合は、Svz(z)によって、断層画像Do(z)のスライス位置が中央から末端に位置するにつれ(Sz/2とスライス順位zとの差が大きくなるにつれ)、重み値Sv(x、y、z)が一律に減衰する(変形楕円の中心であってもSv(x、y、z)は1未満の値となる)。具体的には、断層画像のスライス順位をzとすると、(z-Sz/2)(Sz/2)の2乗に反比例して、重み値Sv(x、y、z)が一律に減衰する
制御部11は、全ての断層画像Do(z)について、重み値Sv(x、y、z)(0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1)を算出し、算出された重み値Sv(x、y、z)を格納する3次元の描画重みテーブルSvを作成する。
以上、図4~図16を参照しながら、描画重みテーブルSvを作成する処理について説明した。
(5.マスクデータの生成)
図17のフローチャートを参照しながら、図3のステップS3において実行されるマスクデータMaskを生成する処理を説明する。
図17の処理は全ての画素(x、y、z)に対して実行される。
制御部11は、各画素(x、y、z)の重み値Sv(x、y、z)を描画重みテーブルSvから取得し、重み値Sv(x、y、z)・255>閾値Th(例えば、Th=10)を満たす画素(x、y、z)については(ステップS51;Yes)、当該画素(x、y、z)に対応するマスク値を1.0に設定し(Mask(x、y、z)=1.0、ステップS52)、重み値Sv(x、y、z)・255>10を満たさない画素(x、y、z)については(ステップS51;No)、当該画素(x、y、z)に対応するマスク値を0に設定する(Mask(x、y、z)=0、ステップS53)。以上のように、各画素(x、y、z)の重み値Sv(x、y、z)を所定の閾値で二値化し、各画素(x、y、z)のマスク値Mask(x、y、z)を保持するマスクデータMaskを生成する。
図18は、マスクデータMaskを生成する処理の別例である。
図18の処理は全ての画素(x、y、z)に対して実行される。
制御部11は、まず、各画素の8ビットの信号値D8(x、y、z)に描画重みテーブルSvから取得した重み値Sv(x、y、z)を乗算して信号値を補正する(D8’ (x、y、z)=D8(x、y、z)・Sv(x、y、z)、ステップS61)。
そして、制御部11は、補正された信号値D8’(x、y、z)がD8’(x、y、z)>閾値Th(例えば、Th=10)を満たす画素(x、y、z)については(ステップS62;Yes)、当該画素(x、y、z)に対応するマスク値を1.0に設定し(Mask(x、y、z)=1.0、ステップS63)、D8’(x、y、z)>閾値Thを満たさない画素(x、y、z)については(ステップS62;No)、当該画素(x、y、z)に対応するマスク値を0に設定する(Mask(x、y、z)=0、ステップS64)。
(6.描画重みテーブル作成処理とマスクデータ生成処理の並行化)
前述した図3のステップS2およびステップS3の処理(描画重みテーブル作成処理およびマスクデータ作成処理)は、図19に示すように、断層画像群Doの処理領域をZ軸方向に等分割(図の例では4分割)したうえで、各処理領域(Do1~Do4)ごとに並行して実行することが望ましい。これにより、高速にマスクデータMaskを生成することができる。
図20は、描画重みテーブル作成処理およびマスクデータ作成処理を並行して実行させる仕組みの例を示す。図20の例では、マスク生成装置1(コンピュータ)に搭載されたマザーボード(図下)は、4つのCPU(物理コア)を備え、かつ、各CPUが2つの論理コアを有する構成(マルチコアCPU)とする。すなわち、マスク生成装置1は、実質8論理コア(スレッド#1~#8)を備えている。はじめに、マスク生成装置1に格納されているマスク生成プログラムが起動すると、Windowsマルチタスク・オペレーティングシステムのジョブスケジューラによりCPUコア#1のスレッド#1に割り当てられて実行される。続いて、マスク生成プログラムは、処理領域Do1に係る描画重みテーブル作成処理およびマスクデータ作成処理(図の並行処理スレッド#1)、処理領域Do2に係る描画重みテーブル作成処理およびマスクデータ作成処理(図の並行処理スレッド#2)、処理領域Do3に係る描画重みテーブル作成処理およびマスクデータ作成処理(図の並行処理スレッド#3)、処理領域Do4に係る描画重みテーブル作成処理およびマスクデータ作成処理(図の並行処理スレッド#4)の各スレッドを起動し、Windowsマルチタスク・オペレーティングシステムのジョブスケジューラに登録する。
Windowsマルチタスク・オペレーティングシステムでは、コアの空き状況等によって、登録された各並行処理スレッド#1~#4を、8論理コア(スレッド#1~#8)のいずれかに割り当て、各並行処理スレッド#1~#4を並行して実行する。図20の例では、並行処理スレッド#1、並行処理スレッド#2および並行処理スレッド#3は、ジョブスケジューラにより物理コアが空いているCPUコア#2のスレッド#3、CPUコア#3のスレッド#5、CPUコア#4のスレッド#7に各々割り当てられる。残る並行処理スレッド#4は、物理コアは空いていないがCPUコア#1の論理スレッド#2に割り当てられている。CPUコア#1の論理スレッド#1ではレンダリングプログラム本体が使用中であるが、マスク生成プログラム本体は4つの並行処理スレッドの起動を行って、これらの終了待ち状態になっているため、CPUコア#1の論理スレッド#2に割り当てられている並行処理スレッド#4が主に実行することになる。
以上、マスク生成装置1の動作について説明した。マスク生成装置1は、CT装置により撮影された断層画像を取得し(図3のステップS1)、断層画像Do(z)毎に各画素(x、y)の信号値に基づいて被写体領域(矩形領域42)を算出し(図4のステップS21、(式7)(式12)(式13)参照)、算出された被写体領域(矩形領域42)の外郭を所定の幾何形状(変形楕円)で近似し、当該幾何形状(変形楕円)を規定する幾何パラメータP(z)(4象限の楕円パラメータP1(z)~P4(z))を算出する(図4のステップS23、(式20)参照)。続いて、断層画像Do(z)毎に、幾何パラメータP(z)に基づいて断層画像の各画素(x、y)を描画対象とする重み値Sv(x、y、z)を算出する(図4のステップS24、(式21)参照)。そして、各画素(x、y、z)の重み値Sv(x、y、z)を所定の閾値で二値化したマスク値を算出し、各画素(x、y、z)のマスク値Mask(x、y、z)を保持するマスクデータMaskを生成する(図3のステップS3)。
これにより、被写体領域の外郭を近似した幾何形状に基づいて所望の領域を可視化するためのマスクデータを容易に作成することが可能となる。
また、被写体候補領域50の信号値分布を考慮して被写体領域(矩形領域42)を算出することで(図6参照)、人体以外の寝台やヘッドレストなどの不要領域を不可視とするマスクデータを生成することができる。
また、胸部CTにおいては、被写体領域(矩形領域42)の縦横比率に基づいて部位(上胸部/胸部または腹部)を判断し、部位に応じた補正方法により被写体領域(矩形領域42)を補正することで(図15参照)、被写体領域を高精度に算出することができる。
さらに、被写体領域(矩形領域42)の外郭を、胸骨側と椎骨側で楕円の径を変えることが可能な変形楕円で近似することで(図16参照)、肋骨、胸骨を含む骨領域が的確に除去され、肺、心臓、血管、肝臓、腎臓などの診断上重要な内臓領域等が良好に可視化されるマスクデータを生成することができる。
なお、本開示では各画素(x、y、z)を描画対象とする重み値Sv(x、y、z)を格納する描画重みテーブルSvを作成することとしたが、描画重みテーブルSvの作成は必須ではない。すなわち、図4のステップS24((式21)参照)で算出された重み値Sv(x、y、z)に対して都度、図17または図18の処理によりマスク値Mask(x、y、z)を計算するようにしてもよい。この場合、描画重みテーブルSvのデータ領域をメモリ上に確保する必要がない。
更に、(式21)で示される重み値Sv(x、y、z)の算出自体も必須ではない。図17に示す実施例の場合、Sv(x、y、z)・255>Thを満たす場合、マスク値Mask(x、y、z)=1となる。胸部CTにおいては、Svxy(x、y、z)=1-k・r(x、y、z)>Th/255を満たす場合、マスク値Mask(x、y、z)=1となる。これは、ボクセル座標(x、y、z)が図16に示される複数の同心の変形楕円のいずれかの単一の変形楕円の内部に含まれる場合、マスク値Mask(x、y、z)=1となると解釈できる。即ち、胸部CTにおいては、マスク値Mask(x、y、z)は図16に示されるいずれかの単一の変形楕円の内部(マスク値:1)か外部(マスク値:0)かを定義したものであり、ボクセル座標(x、y、z)の単一の変形楕円に対する内外判定処理によりマスク値Mask(x、y、z)を算出することが可能である。頭部CTにおいても、Sv(x、y、z)=Svxy(x、y、z)・Svz(z)で定義される単一の変形楕円体に対する内外判定処理によりマスク値Mask(x、y、z)を算出することは可能である。ただし、特に頭部CTの場合、内外判定処理によりマスク値Mask(x、y、z)を算出する方法より、(式21)に基づいて描画重みテーブルSvを作成し、Thで二値化してマスク値Mask(x、y、z)を算出する前述の方法の方が計算負荷は少ない。
また、本開示では、図4のステップS23において、被写体領域(矩形領域42)の外郭を変形楕円(図16参照)で近似する場合を説明したが、近似する幾何形状は変形楕円に限定されない。例えば、本発明者が特願2018-103767において既に提案しているように、被写体領域(矩形領域42)の外郭を単一の楕円で近似してもよいし、特願2018-124125において既に提案しているように、被写体領域(矩形領域42)の外郭を複数の楕円で近似してもよい。複数の楕円で近似する場合も、ボクセル座標(x、y、z)の複数の楕円に対する内外判定処理を行い、判定結果のANDまたはOR演算を行うことによりマスク値Mask(x、y、z)を算出することが可能である。
また、図4のステップS21において、被写体領域として矩形領域42(第2の矩形領域、図5参照)を算出したが、矩形領域41(第1の矩形領域、図5参照)を算出してもよい。この場合、図4のステップS22における被写体領域の補正は行わず、図4のステップS23では、例えば、被写体領域の外郭を単一の楕円(既提案の特願2018-103767参照)や複数の楕円(既提案の特願2018-124125参照)で近似する。
[マスクデータMaskの適用例]
以降、生成されたマスクデータMaskの適用例として、マスクデータMaskを用いて3次元再構成像を生成する処理を説明する。
(7.3次元再構成像生成処理の概要)
図21は、3次元再構成像を生成する3次元再構成像生成装置2が実行する再構成像生成処理の概要を示す図である。図に示すように、3次元再構成像生成装置2は、複数の断層画像(図の例は、512×512ピクセルの370枚の胸部CT画像)に基づいてマスクデータMaskを用いた再構成像生成処理を実行し、所定の視点から被検体を観察したボリュームレンダリング画像、MIP(Maximum Intensity Projection)画像、MPR(Multi-Planar
Reconstruction)画像などの3次元再構成像を生成する。
(8.3次元再構成像生成装置2の機能構成)
図22は、3次元再構成像生成装置2の機能構成を示す図である。図に示すように、3次元再構成像生成装置2は、画像取得部21、描画重みテーブル作成部22、マスクデータ生成部23、クリッピング領域設定部24、有効ボクセル領域算出部25、3次元再構成像生成部26、3次元再構成像表示部27を備える。画像取得部21、描画重みテーブル作成部22(被写体領域算出部31、被写体領域補正部32、被写体形状算出部33、重み値算出部34)、マスクデータ生成部23は、図1のマスク生成装置1の機能構成と同様であるため、説明を省略する。
クリッピング領域設定部24は、被写体のクリッピング領域ROI(関心領域)を設定する。本開示では、クリッピングROIは直方体とし、以下のように、X方向ROI(X方向の開区間)、Y方向ROI(Y方向の開区間)、Z方向ROI(Z方向の開区間)によって定義する。
(式22)
X軸方向ROI:Xs-Xe
Y軸方向ROI:Ys-Ye
Z軸方向ROI:Zs-Ze
尚、クリッピング領域を設定しない場合は、Xs=0、Xe=Sx-1、Ys=0、Ye=Sy-1、Zs=0、Ze=Sz-1となる。
有効ボクセル領域算出部25は、ボクセル値が描画対象のボクセルを規定するように予め定められた条件を満たすボクセル(以下、「有効ボクセル」と表記する場合がある)を全て含み、かつ有効ボクセルに外接する直方体を有効ボクセル領域Vrとして算出する。有効ボクセル領域Vrは、以下のように、X軸方向ROI、Y軸方向ROI、Z軸方向ROIによって定義される。ここで「ボクセル値」とは、各ボクセルに対応づけられる数値情報であり、モダリティで測定された信号値(CT値)や、信号値をカラーマップCmapに通して得られる不透明度や色値、などを含む。
(式23)
X軸方向ROI:Xis-Xie
Y軸方向ROI:Yis-Yie
Z軸方向ROI:Zis-Zie
有効ボクセル領域Vrを算出することによって、ボリュームレンダリング画像やMIP画像を生成する処理(レイキャスティング処理)が、有効ボクセル領域Vr内のボクセルのみを参照して実行されるため、計算負荷を大幅に抑えることができ、境界が直方体のためレイキャスティング処理における起点座標を直線(仮想光線)との交点に基づいて迅速に探索できる。
3次元再構成像生成部26は、マスクデータMaskを参照しながら、断層画像群Doから3次元再構成像を生成する。3次元再構成像生成部26は、図22に示すように、ボリュームレンダリング画像生成部51、MIP画像生成部52、MPR画像生成部53から構成される。
ボリュームレンダリング画像生成部51は、後述するレイキャスティング処理において、マスクデータMaskに基づいて断層画像群Doの各ボクセルの不透明度に対するマスク値(透明/不透明)を設定したうえで(後述する図33のステップS144)、カラーマップ設定部510により設定されたカラーマップCmapを断層画像群Doの各ボクセルに適用し(後述する図33のステップS145)、ボリュームレンダリング画像ImageVRを生成する。
カラーマップCmapは、信号値vと色値(具体的にはRGB値)及び不透明度(α値)との対応関係を定義したものであり、信号値vを24ビットの色(RGB値)及び8ビットの不透明度(α値)に変換する関数(実体的には2次元のデータテーブル)として表現される。例えば、16ビットの断層画像群Do((式1)参照)に適用されるカラーマップCmapは次のように定義される。
(式24)
0≦Cmap(v、n)≦255
-32768≦v≦32767
n=0(R)、1(G)、2(B)、3(α)
また、8ビットの断層画像群Do((式2)参照)に適用されるカラーマップCmap(v、n)は次のように定義される。
(式25)
0≦Cmap(v、n)≦255
0≦v≦255
n=0(R)、1(G)、2(B)、3(α)
(式24)、(式25)に示すカラーマップCmap(v、n)(0≦n≦3)のうち、特にカラーマップCmap(v、n)(0≦n≦2)は、信号値vを色値(RGB値)に変換する関数に相当する。
また、(式24)、(式25)に示すカラーマップCmap(v、n)(0≦n≦3)のうち、特にカラーマップCmap(v、3)は、信号値vを不透明度に変換する関数に相当し、一般的に「オパシティカーブ」と呼ばれる。
カラーマップCmap(v、3)(オパシティカーブ)は、例えば、通常組織(16ビットの信号値v=0~120程度)の不透明度が255に設定(不透明度=255は不透明(光がすべて反射)であることを示す)され、骨領域(16ビットの信号値v=1000前後)の不透明度が1~254の中間値に設定(不透明度=1~254は半透明(入射光の一部が反射され、その他は透過)であることを示す)され、その他の組織等の部位を不透明度が0に設定(不透明度=0は透明(入射光の全てが透過)であることを示す)される。
生成されるボリュームレンダリング画像ImageVRは、フルカラー(24ビット)の3次元再構成像(Size×Sizeの画像)であり、以下のように定義される。
(式26)
0≦ImageVR(x、y、n)≦255
0≦x≦Size-1、0≦y≦Size-1
n=0(R)、1(G)、2(B)
MIP画像生成部52は、後述するレイキャスティング処理において、マスクデータMaskに基づいて断層画像群Doの各ボクセルの信号値に対するマスク値を設定したうえで(後述する図40のステップS224)、断層画像群Doの各ボクセルに信号値を取得し(後述する図40のステップS225)、MIP画像ImageMIPを生成する。
生成されるMIP画像ImageMIPは、モノクロ(16ビットまたは8ビット)の3次元再構成像(Size×Sizeの画像)であり、以下のように定義される。MIP画像ImageMIPを生成する段階では、階調は元のDICOM画像の信号値のままモノクロ(16ビット)で計算する方法が一般的であり、ImageMIP(x、y)は-32768≦ImageMIP(x、y)≦32767の値をもつ場合があるが、表示される段階では以下のようにモノクロ(8ビット)に変換される。
(式27)
0≦ImageMIP(x、y)≦255
0≦x≦Size-1、0≦y≦Size-1
MPR画像生成部53は、断層画像群Doに基づいて任意断面のMPR画像ImageMPRを生成するともに、MPR画像ImageMPRにマスクデータMaskに基づいて生成されたマスク画像を合成する。
3次元再構成像表示部27は、3次元再構成像生成部26(ボリュームレンダリング画像生成部51、MIP画像生成部52、MPR画像生成部53)により生成された3次元再構成像を表示画面(表示部16)に表示する。
(9.3次元再構成像生成装置2のハードウェア構成)
図23は、3次元再構成像生成装置2のハードウェア構成を示す図である。図に示すように、3次元再構成像生成装置2は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される汎用のコンピュータで実現される。各構成は図2と同様であるため、記載を省略する。
(10.3次元再構成像生成装置2の動作)
図24のフローチャートを参照しながら、3次元再構成像生成装置2の全体の動作について説明する。
まず、3次元再構成像生成装置2の制御部11は、CT装置により撮影された16ビットの断層画像群Do((式1)参照)を取得する(ステップ71)。この際、制御部11は、必要に応じて、16ビットの断層画像群Doを8ビットの断層画像群Do((式2)参照)に階調圧縮してもよい。
(1)断層画像群DoのSz/2番目の中間スライスDo(z/2)における全ての画素の最小値Dmin、最大値Dmaxを算出する。なおDminとDmaxは全てのスライスより最小値と最大値を求める方法をとっても良いが、本実施の形態のように中間スライスだけで決定する方法をとることで、大容量の16ビットの断層画像群Doをメモリ上に保持する必要がなくなる。
(2)下限値Lmin=(Dmax-Dmin)・γ+Dmin、上限値Lmax=(Dmax-Dmin)・(1-γ)+Dminを設定する。ここで、γは階調圧縮画像のコントラスト調整幅で、0に近いほどコントラストが増大する(但し、輝度が小さくなる)。通常はγ=0.1に設定する。
(3)断層画像群Doを以下の計算式で8ビットの断層画像群Do((式2)参照)に変換する(下限値Lmin~上限値Lmaxの範囲で256段階に圧縮する)。
(式28)
Do(x、y、z)
=(Do(x、y、z)-Lmin)・255/(Lmax-Lmin)
但し、Do(x、y、z)>255の場合はDo(x、y、z)=255、Do(x、y、z)<0の場合はDo(x、y、z)=0に飽和させる。
このように階調圧縮をすることで、断層画像群を保持するためのメモリ容量を半分に抑えることができる。たとえ信号値の階調が16ビットあっても、カラーマップCmapにより、変換される色値(RGB値)及び不透明度(α値)の階調はディスプレイの階調に合わせて8ビットに制限されるため、階調圧縮に伴う画質劣化は殆ど生じない。
続いて、制御部11は、断層画像Do(z)毎に、断層画像Do(z)の各画素(x、y、z)を描画対象とする重み値Sv(x、y、z)を格納した描画重みテーブルSvを作成し(ステップS72)、作成された描画重みテーブルSvを参照して、断層画像群Doの各画素(x、y、z)の重み値Sv(x、y、z)を所定の閾値で二値化したマスク値Mask(x、y、z)を算出し、各画素(x、y、z)に対応するマスク値Mask(x、y、z)を保持する3次元のマスクデータMaskを生成する(ステップS73)。ステップS72、ステップS73の処理は、図3のステップS2、ステップS3と同様である。
そして、制御部11は、ステップS73において生成されたマスクデータMaskを参照しながら、断層画像群Doから3次元再構成像を生成し(ステップS74)、生成した3次元再構成像を表示する(ステップS75)。
以降、ステップS74において、ボリュームレンダリング画像、MIP画像、およびMPR画像を生成する例を順に説明する。
(11.ボリュームレンダリング画像の生成)
図25~図33を参照しながら、ボリュームレンダリング画像を生成する処理を説明する。
図25は、ボリュームレンダリング画像を生成する処理の全体の流れを示すフローチャートである。
制御部11は、ユーザからカラーマップCmapの設定を受け付ける(ステップS81)。ここで、断層画像群Doの信号値が16ビットの場合((式1)参照)は、16ビット対応のカラーマップCmap((式24)参照)を設定し、断層画像群Doの信号値が8ビットに圧縮されている場合((式2)参照)は、8ビット対応のカラーマップCmap((式25)参照)を設定する。
カラーマップCmapの設定方法は特に限定されず、例えば、制御部11は、予め用意されている複数のカラーマップCmapの中から、断層画像群Doに適用するカラーマップCmapをユーザに選択させることで設定することができる。また、制御部11は、前回レンダリング時に使用したカラーマップCmapを記憶部12から読込み、断層画像群Doに適用するカラーマップCmapとして設定しても良い。
また、制御部11は、カラーマップ設定画面(不図示)においてユーザが作成したカラーマップCmapを設定しても良い。この場合、制御部11は、カラーマップ設定画面において、代表的な信号値v(例えば、10箇所程度の特徴的な信号値)と当該信号値vに対する色値(RGB値)及び不透明度(α値)をユーザに設定させ、ユーザが設定した代表的な信号値vと色値及び不透明度との対応関係に基づいて所定範囲の信号値vを色値及び不透明度に変換するカラーマップCmapを自動生成する。
続いて、制御部11は、必要に応じて、ユーザからクリッピング領域ROI((式22)参照)の設定を受け付ける(ステップS82)。
続いて、制御部11は、有効ボクセル領域Vrを算出する(ステップS83)。具体的には、図26に示すように、制御部11は、不透明度が0でない値(α>0)をもつボクセル(不透明ボクセル)を有効ボクセルとし、これらの有効ボクセルを全て含み、かつ有効ボクセルに外接する直方体を有効ボクセル領域Vrとして算出する。クリッピング領域ROIやマスクデータMaskが設定されている場合は、制御部11は、クリッピングROIやマスクデータMaskにより規定された描画範囲内において、不透明度が0でない値(α>0)をもつボクセル(不透明ボクセル)を有効ボクセルとし、これらの有効ボクセルを全て含み、かつ有効ボクセルに外接する直方体を有効ボクセル領域Vrとして算出する。
そして、制御部11は、ステップS71(図24)において取得した断層画像群Do(3次元ボクセル)、ステップS73(図24)において生成されたマスクデータMask、ステップS81(図25)において設定されたカラーマップCmap、ステップS82(図25)において設定されたクリッピング領域ROI、ステップS83(図25)において算出された有効ボクセル領域Vrを参照して、ボリュームレンダリング画像ImageVRを生成する(ステップS83)。
特に本開示では、制御部11は、レイキャスティング処理において、マスクデータMaskに基づいて断層画像群Doの各ボクセルの不透明度に対するマスク値を設定したうえで(後述する図33のステップS144)、断層画像群Doの各ボクセルにカラーマップCmap(オパシティカーブ)を適用し(後述する図33のステップS145)、ボリュームレンダリング画像ImageVRを生成する。これにより、被写体形状(幾何形状)に基づいて生成したマスクデータMaskの描画・非描画情報が反映されたボリュームレンダリング画像が生成される。
図27は、ステップS84において実行される、ボリュームレンダリング画像ImageVRを生成する具体的な処理の流れを示す。
まず、制御部11は、座標変換パラメータを設定する(ステップS91)。本開示では、後述するレイキャスティング処理(ステップS93、図28)で、視点座標系の各3次元座標毎にボクセルを参照するため、逐次座標変換を行う方法をとる。そのため、制御部11は、以下のように、各座標変換処理に共通する座標変換パラメータを事前に設定・算出しておく。
<座標変換パラメータ>
回転パラメータ行列R:
R=[R11 R12 R13;
R21 R22 R23;
R31 R32 R33]
(ボクセル座標系から視点座標系への座標変換を行うための3×3の行列の逆行列、GUI側はボクセル座標系から視点座標系への座標変換を指示するが、レンダリング側は視点座標系からボクセル座標系に座標変換を行う。)
XYZ軸方向のオフセット:
Xoff、Yoff、Zoff(2次元画面上で指定するため、通常Zoff=0)
クリッピング領域:
X軸方向ROI:Xs-Xe
Y軸方向ROI:Ys-Ye
Z軸方向ROI:Zs-Ze
有効ボクセル領域(外接直方体領域):
X軸方向ROI:Xis-Xie
Y軸方向ROI:Yis-Yie
Z軸方向ROI:Zis―Zie
拡大縮小倍率Scale(XYZ軸方向で同一)
X軸方向変倍率:Scx、Y軸方向変倍率:Scy、Z軸方向変倍率Scz
座標変換サブサンプル・オフセット:X軸方向dx、Y軸方向dy、Z軸方向dz
生成するボリュームレンダリング画像のサイズ:Size(XY軸方向で同一)
仮想光線のサブサンプリング倍率:Sray(通常は1で、値が1より大きいと粗くなり、1未満だと高精細になる。ボリュームレンダリング画像を生成する場合はSray=1、MIP画像を生成する場合はSray=2などに設定する。)
制御部11は、上記した回転パラメータ行列Rに対して、初期値として単位行列を設定する。すなわち、R11=1、R12=0、R13=0、R21=0、R22=1、R23=0、R31=0、R32=0、R33=1と設定する。
そして、GUIの指示に従い、X軸中心回転Rx、Y軸中心回転Ry、Z軸中心回転Rz(角度単位:ラジアン)のいずれかを逐次指定し、以下のように、各々回転行列Aを生成して回転パラメータ行列Rに右から乗算して、回転パラメータ行列Rを更新する。これにより、GUIの指示により生成されるボクセル座標系から視点座標系への回転行列の逆行列が算出される。
回転行列Aを
A=[A11 A12 A13;
A21 A22 A23;
A31 A32 A33]
とすると、
X軸中心回転Rxの場合の回転行列Aの各要素は、
A11=1、A12=0、A13=0
A21=0、A22=cosRx、A23=sinRx
A31=0、A32=sinRx、A33=cosRx
Y軸中心回転Ryの場合の回転行列Aの各要素は、
A11=cosRy、A12=0、A13=sinRy
A21=0、A22=1、A23=0
A31=-sinRy、A32=0、A33=cosRy
Z軸中心回転Rzの場合の回転行列Aの各要素は、
A11=cosRz、A12=sinRz、A13=0
A21=-sinRz、A22=cosRz、A23=0
A31=0、A32=0、A33=1
となる。
回転パラメータ行列Rは、R←R×Aと更新される。
以上で定義された座標変換パラメータに基づく座標変換処理は、レイキャスティング処理(ステップS93、図28)の各処理の中で逐次実行される。
続いて、制御部11は、処理回数l=0、サブサンプル・オフセット値をdx=dy=dz=0に初期化する(ステップS92)。
そして、制御部11は、レイキャスティング処理(各座標(x、y)毎に色値を算出する処理)を実行する(ステップS93)。
<レイキャスティング処理>
図28のフローチャートを参照して、レイキャスティング処理について説明する。
制御部11は、まず、生成する24ビット(RGB)のボリュームレンダリング画像ImageVR(x、y、n)の初期値を全て0に設定する(ImageVR(x、y、n)=0、n=0(R)、1(G)、2(B))。そして、サブサンプル回数Lとして、各2次元座標(x、y)(0≦x≦Size-1、0≦y≦Size-1)に対して、以下の処理を実行する。
制御部11は、背景色bg(n)(n=0(R)、1(G)、2(B)、0≦bg(n)≦255)を設定し、x=0、y=0とする(ステップS101)。
続いて、制御部11は、仮想光強度Trans=1.0、累積輝度値Energy(n)=0.0(0≦n≦2)に初期化する(ステップS102)。
続いて、制御部11は、有効ボクセル領域Vrと仮想光線との交点のZ座標(Zc)を算出する(ステップS103)。有効ボクセル領域Vrと仮想光線との交点のZ座標(Zc)を算出する処理については後述する(「11-1.交点算出処理」参照)。
続いて、制御部11は、ZstをZst=Zcに設定し(ステップS104)、Zstから先頭の有効ボクセル(不透明ボクセル)のZ座標z(仮想光線の照射を開始する起点座標)を探索する(ステップS105)。すなわち、ステップS103において算出された交点から視線方向に向かってレイキャスティング計算を開始する起点座標を探索する。起点座標zを探索する処理については後述する(「11-2.起点座標探索処理」参照)。
z<0の場合、ステップS111へ移行する。
一方、z≧0の場合、制御部11は、3次元座標(x、y、z)を座標変換してボクセルα値(Vα)を取得し、Alpha=Vα/255を求める(ステップS106)。ボクセルα値(Vα)を取得する処理については後述する(「11-4.ボクセルα値、RGB値の取得(補間あり)」参照)。
一方、ステップS106において算出したAlphaがAlpha<0(有効ボクセル領域Vrを通過)、またはAlpha=0かつz=0の場合、ステップS111へ移行し、画素(x、y)におけるRGB画素値を決定する。これにより、有効ボクセル領域Vrを逸脱(通過)している場合(Alpha<0)は、その先に描画対象のボクセルは存在しないため、レイキャスティング処理を早期に打ち切り、冗長な処理を省略する。
一方、ステップS106において算出したAlphaがAlpha>0の場合、制御部11は、3次元座標(x、y、z)を座標変換してボクセルRGB値Vc(n)を取得する(ステップS108)。ボクセルRGB値(Vc(n))を取得する処理については後述する(「11-4.ボクセルα値、RGB値の取得(補間あり)」参照)。
続いて、制御部11は、仮想光線サブサンプルに基づくα値を、
Alpha’=1-(1-Alpha)1/Sray
と補正し、
累積輝度を、
Energy(n)=Energy(n)+Trans/Alpha・Vc(n)/255
透過光強度を、
Trans=Trans・(1.0-Alpha)
と更新する(ステップS109)。
Trans<0.001の場合、ステップS111へ移行し、画素(x、y)におけるRGB画素値を決定する。Trans≧0.001の場合、制御部11は、z=z-1に更新し(ステップS110)、z≧0の場合、ステップS106に戻り、z<0の場合、ステップS111へ移行し、画素(x、y)におけるRGB画素値を決定する。
ステップS111において、制御部11は、画素(x、y)におけるRGB画素値を次のように決定する。
(式29)
ImageVR(x、y、n)=ImageVR(x、y、n)+k・Energy(n)・Light(n)/L
ここで、kは強度倍率であり、初期値はk=1.0に設定されている。
続いて、制御部11は、x←x+1に更新し(ステップS112)、x<Sizeの場合、ステップS102に戻り、次の画素xのRGB値を決定する処理(ステップS102~S111)を実行する。x≧Sizeの場合、y←y+1に更新し(ステップS113)、y≦Sizeの場合、x=0としたうえで、ステップS102に戻り、y行目の画素(x、y)のRGB値を決定する処理(ステップS102~S111)を繰り返す。y>Sizeの場合、制御部11は、処理を終了する。
すなわち、全画素のRGB値が算出されるまで(ステップS112;x≧Size、かつ、ステップS113;y>Size)、ステップS102~S111の処理を繰り返す。
図27のフローチャートに戻る。
制御部11は、処理回数をl←l+1に更新し、サブサンプル・オフセット値をdx←dx+1/L、dy←dy+1/L、dz←dz+1/Lに更新する(ステップS94)。制御部11は、処理回数lがl>L-1を満たすまで(ステップS94;l>L-1)、ステップS93のレイキャスティング処理を繰り返す。レイキャスティング処理が終了すると、制御部11は、生成したボリュームレンダリング画像ImageVRを出力する(ステップS95)。
(11-1.交点算出処理)
図28のステップS103において実行される有効ボクセル領域Vrと仮想光線との交点のZ座標(Zc)を算出する処理について説明する。
制御部11は、以下の処理手順で、レイキャスティング処理の算出対象画素(x、y)に対して、視点座標系において、z=Zo(=Size/Sray-1)からz=0の範囲で、視点z=Zoに最も近い有効ボクセル領域Vr([Xis、Xie]、[Yis、Yie]、[Zis、Zie])との交点Zcを算出する。
(1)視線ベクトル(仮想光線ベクトル)の算出
制御部11は、図29に示すように、視点座標系における視点座標(x、y、Zo)および下限座標(x、y、0)に対して各々座標変換を行い、ボクセル座標系における視点座標(x1、y1、z1)および下限座標(x2、y2、z2)を求め、視線ベクトル(vx、vy、vz)の各要素を次のように算出する。
vx=x2-x1
vy=y2-y1
vz=z2-z1
(2)視線ベクトルと有効ボクセル領域Vrとの交点の算出
制御部11は、tx=ty=tz=10と初期化し、
1)|vx|≧1の場合、tx1=(Xis-x1)/vx、tx2=(Xie-x1)/vxを算出し、いずれか小さい方をtxに設定する。
2)|vy|≧1の場合、ty1=(Yis-y1)/vy、ty2=(Yie-y1)/vyを算出し、いずれか小さい方をtyに設定する。
3)|vz|≧1の場合、tz1=(Zis-z1)/vz、tz2=(Zie-z1)/vzを算出し、いずれか小さい方をtzに設定する。
これにより、図29(右図)に示すように、ボクセル座標系における交点座標が求まる。具体的には、交点座標は(vx・t+x1,vy・t+y1,vz・t+z1)で与えられ(tは(2)で算出されたtx、ty、tzのいずれかの値)、図29の例ではz=Zisおよびz=Zieの2面に交点が存在し、z=Zieにおける交点座標は(vx・tz+x1,vy・tz+y1,vz・tz+z1)と算出できる。交点座標は、視線ベクトルと有効ボクセル領域Vr(直方体)を構成する6面との交点(通常、交点は2点以上存在する)のうち、視点に最も近い交点である。
(3)視点座標系における交点Zcの決定
制御部11は、視点座標系における交点座標ZcをZc=-1と初期化し、
1)tx≦1の場合
Y=vy・tx+y1、Z=vz・tx+z1を算出する。
Yis≦Y≦YieかつZis≦Z≦Zieの場合(ボクセル座標系における交点が有効ボクセル領域Vr内に存在する場合)、対応する視点座標系における交点Z2=Zo・(1-tx)を算出し、Z2>ZcならばZc=Z2に置換する。
2)ty≦1の場合
X=vx・ty+x1、Z=vz・ty+z1を算出する。
Xis≦X≦XieかつZis≦Z≦Zieの場合(ボクセル座標系における交点が有効ボクセル領域Vr内に存在する場合)、対応する視点座標系における交点Z2=Zo・(1-ty)を算出し、Z2>ZcならばZc=Z2に置換する。
3)tz≦1の場合
X=vx・tz+x1、Y=vy・tz+y1を算出する。
Xis≦X≦XieかつYis≦Y≦Yieの場合(ボクセル座標系における交点が有効ボクセル領域Vr内に存在する場合)、対応する視点座標系における交点Z2=Zo・(1-tz)を算出し、Z2>ZcならばZc=Z2に置換する。
これにより、図29(左図)に示すように、視点座標系における視点に最も近い交点座標(x、y、Zc)が求まる。
(4)視点より手前に算出される交点の補正
tx、ty、tzは負値をとる場合があり、その場合は交点が視点より手前になる。制御部11は、Zc>Zoの場合、Zc=Zoに補正する。すなわち、図30のように、視点座標系における交点座標が視点より手前(不可視領域)に算出された場合、当該交点座標を視点位置に補正する。
(11-2.起点座標探索処理)
図31のフローチャートを参照して、図28のステップS105において実行される、起点座標zを探索する処理について説明する。
まず、制御部11は、zをz=Zst(=交点座標Zc)に初期化し、探索対象画素(x、y)を入力する(ステップS121)。続いて、制御部11は、3次元座標(x、y、z)に対して座標変換を行い、ボクセルのα値を取得する(ステップS122)。ボクセルのα値を取得する処理は後述する(「11-3.ボクセルα値を取得(補間なし)」参照)。
ステップS122において取得したボクセルのα値がα=0の場合(ボクセルが透明の場合)、制御部11は、z←z-m(例えばm=4)に更新する(ステップS123)。mは探索時のZ軸方向のスキップ幅であり、mが大きいほど高速に探索できるが、スキップ幅が大きすぎると起点座標の探索精度が悪化する場合がある。
ステップS123において更新したzがz<0の場合(ボクセル空間外の場合)、制御部11は、z=-1(起点座標が存在しないことを示す値)を返し(ステップS124)、処理を終了する。z≧0の場合、制御部11は、ステップS122に戻る。
ステップS122において取得したボクセルのα値がα<0の場合(有効ボクセル領域Vrを通過した場合)は、制御部11は、z=-1(起点座標が存在しないことを示す値)を返し(ステップS124)、処理を終了する。
ステップS122において取得したボクセルのα値がα>0の場合(ボクセルが不透明の場合)、以下のように、Z軸の+方向(視線逆方向)に戻って正確な起点座標を探索する。
制御部11は、まず、iをi=0に初期化し(ステップS125)、i←i+1に更新する(ステップS126)。
i≧mまたはz+i≧Zstの場合、制御部11は、z=z+i-1を返し(ステップS128)、処理を終了する。
i<mかつz+i<Zstの場合、3次元座標(x、y、z+i)に対して座標変換を行い、ボクセルのα値を取得する(ステップS127)。ボクセルのα値を取得する処理は後述する(「11-3.ボクセルα値を取得(補間なし)」参照)。
ステップS127において取得したボクセルのα値がα=0の場合(ボクセルが透明の場合)、制御部11は、z=z+i-1を返し(ステップS128)、処理を終了する。
ステップS127において取得したボクセルのα値がα>0の場合(ボクセルが不透明の場合)、ステップS126に戻り、ステップS126~S127の処理を繰り返す。
以上のように、先頭の不透明ボクセルのZ座標z(仮想光線の照射を開始する起点座標)を所定のステップ幅で探索することで(ステップS122、S123)、起点座標を高速に特定できる。また、不透明ボクセルが探索された場合、当該ボクセルの位置とステップ幅だけ視線逆方向(Z軸の+方向)に戻った位置との間に存在する可能性がある不透明ボクセルを再探索することで(ステップS126、S127)、起点座標を正確に特定することができる。
(11-3.ボクセルα値を取得(補間なし))
図32のフローチャートを参照して、起点座標探索処理(図31)のステップS122およびステップS127において実行される、ボクセルのα値を取得する処理について説明する。
まず、制御部11は、与えられた視点座標系の3次元座標値(x、y、z)(整数値)に対して座標変換を行い、対応するボクセルの実数の座標値(xr、yr、zr)を算出する(ステップS131)。ここで座標変換とは、視点座標系をボクセル座標系に変換する処理であり、GUI側の変換処理とは逆になる。GUI側では関心領域ROIによるクリッピング、スケーリング、Z軸方向変倍処理、オフセット(XYZ軸方向同時)、回転、透視変換の順に行うものと仮定し、制御部11は、与えられた視点座標系の3次元座標値(x、y、z)(整数値)に対応するボクセルの実数の座標値(xr、yr、zr)を以下のように算出する。
まず、制御部11は、視点座標系の座標値(x、y、z)(整数値)を次のように実数値(xx、yy、zz)に変換する。視点座標系はSize(X軸方向のサイズ)×Size(Y軸方向のサイズ)×Size/Sray(Z軸方向のサイズ)の直方体で、Sx×Sy×Szの断層画像群Doとは独立して定義される。通常Sx=Sy=512であればSize=512となる。視点座標系のZ軸方向は仮想光線サブサンプル1/Sray倍に伸縮されていることを考慮して、はじめに以下のようにオフセット処理(XYZ軸方向同時)を行う。
(式30)
xx=x-Size/2+dx+Xoff
yy=y-Size/2+dy+Yoff
zz=z・Sray-Size/2+dz+Zoff
続いて、制御部11は、以下のように、回転パラメータ行列Rを用いて回転処理(座標変換)を行う。
(式31)
xx’=R11・xx+R12・yy+R13・zz
yy’=R21・xx+R22・yy+R23・zz
zz’=R31・xx+R32・yy+R33・zz
回転処理後の(xx’、yy’、zz’)を(xx、yy、zz)とする。
そして、制御部11は、スケーリング、XYZ軸方向変倍処理を同時に行い、以下のように、ボクセルの座標値(xr、yr、zr)(実数値)を算出する。
(式32)
xr=xx/Scale/Scx+Sx/2
yr=yy/Scale/Scy+Sy/2
zr=zz/Scale/Scz+Sz/2
続いて、制御部11は、算出したボクセルの座標値(xr、yr、zr)(実数値)に対して、各値に0.5を加算して、以下のように、小数点以下を切り捨て整数化した座標値(xi、yi、zi)(四捨五入した整数値)に変換する(ステップS132)。
(式33)
xi=INT[xr+0.5]
yi=INT[yr+0.5]
zi=INT[zr+0.5]
そして、制御部11は、有効ボクセル領域Vr、マスクデータMaskを考慮して、以下のようにボクセルα値を取得する(ステップS133)。
(式34)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外の場合)
α=-1
2)上記1)を満たさない場合
α=Cmap(Do(xi、yi、zi)、3)・Mask(xi、yi、zi)
(11-4.ボクセルα値、RGB値の取得(補間あり))
レイキャスティング処理(図28)のステップS106、S108において実行される、ボクセルα値(Vα)、ボクセルRGB値を取得する処理を説明する。
(11-4-1.ボクセルα値の取得)
図33は、ボクセルα値を取得する処理を示すフローチャートである。
まず、制御部11は、図32のステップ131と同様の方法で、視点座標系の3次元座標値(x、y、z)(整数値)に対して座標変換を行い、ボクセルの実数の座標値(xr、yr、zr)を算出する(ステップS141)。
続いて、制御部11は、算出したボクセルの座標値(xr、yr、zr)(実数値)を、小数点以下を切り捨て整数化した座標値(xi、yi、zi)(整数値)に変換する(ステップS142)。ここで、切り捨てた小数点以下の端数を(wx、wy、wz)(0≦wx、wy、wz<1)とする(すなわち、xr=xi+wx、yr=yi+wy、zr=zi+wz)。
そして、制御部11は、有効ボクセル領域Vrを考慮して、視点座標系の3次元座標値(x、y、z)(整数値)に対応する補間対象のボクセルの信号値を断層画像群Doに基づいて以下のように抽出する(ステップS143)。
(式35)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
D000=-32769(無効の値)
2)上記1)の条件を満たさない場合において、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(中央ボクセルを抽出)
D000=Do(xi、yi、zi)
3)上記1)2)の条件を満たさない場合(8近傍ボクセルの信号値を抽出)
D000=Do(xi、yi、zi)
D100=Do(xi+1、yi、zi)
D010=Do(xi、yi+1、zi)
D110=Do(xi+1、yi+1、zi)
D001=Do(xi、yi、zi+1)
D101=Do(xi+1、yi、zi+1)
D011=Do(xi、yi+1、zi+1)
D111=Do(xi+1、yi+1、zi+1)
続いて、制御部11は、マスクデータMaskに基づいて、抽出した補間対象の各ボクセルのα値(不透明度)に対するマスク値S000~S111(0または1)を以下のように設定する(ステップS144)。すなわち、各ボクセルのα値(不透明度)を計算に用いるか否かを設定する。
(式36)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
S000=0
2)上記1)の条件を満たさない場合において、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(中央ボクセルのマスク値を設定)
S000=Mask(xi、yi、zi)
3)上記1)2)の条件を満たさない場合(8近傍ボクセルのマスク値を設定)
S000=Mask(xi、yi、zi)
S100=Mask(xi+1、yi、zi)
S010=Mask(xi、yi+1、zi)
S110=Mask(xi+1、yi+1、zi)
S001=Mask(xi、yi、zi+1)
S101=Mask(xi+1、yi、zi+1)
S011=Mask(xi、yi+1、zi+1)
S111=Mask(xi+1、yi+1、zi+1)
そして、制御部11は、抽出した補間対象ボクセルの信号値に基づいて、視点座標系の3次元座標値(x、y、z)(整数値)に対応するボクセルのα値Vαを以下のように取得する(ステップS145)。
(式37)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
Vα=-1
2)上記1)の条件を満たさず、xi=Xis、xi=Xie、yi=Yis、yi=Yie、zi=Zis、又はzi=Zieのいずれかを満たす場合(有効ボクセル領域Vrの境界面)
Vα=0
3)上記1)2)の条件を満たさず、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(補間しない)
Vα=Cmap(D000、3)・S000
4)上記1)2)3)の条件を満たさない場合(補間する)
Vα=(1-wz)(1-wy)(1-wx)・Cmap(D000、3)・S000+(1-wz)(1-wy)・wx・Cmap(D100、3)・S100+(1-wz)・wy・(1-wx)・Cmap(D010、3)・S010+(1-wz)・wy・wx・Cmap(D110、3)・S110+wz・(1-wy)(1-wx)・Cmap(D001、3)・S001+wz・(1-wy)・wx・Cmap(D101、3)・S101+wz・wy・(1-wx)・Cmap(D011、3)・S011+wz・wy・wx・Cmap(D111、3)・S111
(11-4-2.ボクセルRGB値の取得)
制御部11は、ステップS143において抽出した補間対象ボクセルの信号値に基づいて、視点座標系の3次元座標値(x、y、z)(整数値)に対応するボクセルRGB値(Vc(n))(0≦n≦2)を以下のように取得する。なお、RGB値を取得する場合には、S000、S100、・・・、S111を乗算するマスク処理を行わない。これにより、マスク境界面でのモアレの発生を抑制する。
(式38)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
Vc(n)=0 (0≦n≦2)
2)上記1)の条件を満たさず、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(補間しない)
Vc(n)=Cmap(D000、n) (0≦n≦2)
3)上記1)2)の条件を満たさない場合(補間する)
Vc(n)=(1-wz)(1-wy)(1-wx)・Cmap(D000、n)+(1-wz)(1-wy)・wx・Cmap(D100、n)+(1-wz)・wy・(1-wx)・Cmap(D010、n)+(1-wz)・wy・wx・Cmap(D110、n)+wz・(1-wy)(1-wx)・Cmap(D001、n)+wz・(1-wy)・wx・Cmap(D101、n)+wz・wy・(1-wx)・Cmap(D011、n)+wz・wy・wx・Cmap(D111、n) (0≦n≦2)
(11-5.陰影計算)
制御部11は、必要に応じて、次のように陰影計算を行ってもよい。
まず、光源ベクトル(Lx、Ly、Lz)(単位ベクトル)を設定する。例えば、(Lx、Ly、Lz)=(0.57735、0.57735、0.57735)と設定する。また、環境光成分Ab(0≦Ab≦1、例えばAb=0.2)を設定する。
続いて、制御部11は、次のように、座標変換により算出された3次元座標(xi、yi、zi)における6近傍ボクセルの不透明度V100、V200、V010、V020、V001、V002を取得する。但し、xi+1>XieのときV100=0、xi-1<XisのときV200=0、yi+1>YieのときV010=0、yi-1<YisのときV020=0、zi+1<ZisのときV001=0、zi-1<ZisのときV002=0とする。すなわち、隣接するボクセルがクリッピング範囲の場合は不透明度を0として扱う。
(式39)
V100=Cmap(Do(xi+1、yi、zi)、3)・Mask(xi+1、yi、zi)
V200=Cmap(Do(xi-1、yi、zi)、3)・Mask(xi-1、yi、zi)
V010=Cmap(Do(xi、yi+1、zi)、3)・Mask(xi、yi+1、zi)
V020=Cmap(Do(xi、yi-1、zi)、3)・Mask(xi、yi-1、zi)
V001=Cmap(Do(xi、yi、zi+1)、3)・Mask(xi、yi、zi+1)
V002=Cmap(Do(xi、yi、zi-1)、3)・Mask(xi、yi、zi-1)
続いて、制御部11は、座標変換により算出された3次元座標(xi、yi、zi)における勾配ベクトル(Gx、Gy、Gz)を、以下の式で算出する。
(式40)
Gx=(V100-V200)・Scx
Gy=(V010-V020)・Scy
Gz=(V001-V002)・Scz
G={Gx+Gy+Gz1/2
続いて、G≧1の場合、制御部11は、輝度値(陰影値)S(0≦S≦1)として拡散反射成分を算出し、
(式41)
S=(1-Ab)|Gx・Lx+Gy・Ly+Gz・Lz|/G+Ab
を与える。G<1の場合(αが変化しない場合)、制御部11は、輝度値(陰影値)Sとして、S=0を与える。
そして、制御部11は、
(式42)
Vc’(n)=S・Vc(n)
とし、算出されたRGB値Vc(n)(0≦n≦2)の成分を改変する。
以上、図25~図33を参照しながら、ボリュームレンダリング画像を生成する処理を説明した。マスクデータMaskに基づいて断層画像群Doの各ボクセルの不透明度に対するマスク値を設定したうえで、断層画像群Doの各ボクセルにカラーマップCmap(オパシティカーブ)を適用して、ボクセルα値を取得(補間計算)することで、マスクデータMaskの描画・非描画情報が反映されたボリュームレンダリング画像を生成することができる。
(12.MIP画像の生成)
次に、図34~図40を参照しながら、MIP画像を生成する処理を説明する。
図34は、MIP画像を生成する処理の全体の流れを示すフローチャートである。
まず、制御部11は、必要に応じて、ユーザからクリッピング領域ROI((式22)参照)の設定を受け付ける(ステップS161)。
続いて、制御部11は、有効ボクセル領域Vrを算出する(ステップS162)。具体的には、図35に示すように、制御部11は、信号値が所定の閾値以上(例えば、空気でない信号値以上)であるボクセルを有効ボクセルとし、これらの有効ボクセルを全て含み、かつ有効ボクセルに外接する直方体を有効ボクセル領域Vrとして算出する。クリッピング領域ROIやマスクデータMaskが設定されている場合は、制御部11は、クリッピングROIやマスクデータMaskにより規定された描画範囲内において、信号値が所定の閾値以上(例えば、空気でない信号値以上)であるボクセルを有効ボクセルとし、これらの有効ボクセルを全て含み、かつ有効ボクセルに外接する直方体を有効ボクセル領域Vrとして算出する。
そして、制御部11は、ステップS71(図24)において取得した断層画像群Do(3次元ボクセル)、ステップS73(図24)において生成されたマスクデータMask、ステップS161(図34)において設定されたクリッピング領域ROI、ステップS162(図34)において算出された有効ボクセル領域Vrを参照して、MIP画像ImageMIPを生成する(ステップS163)。
特に本開示では、制御部11は、レイキャスティング処理において、マスクデータMaskに基づいて断層画像群Doの各ボクセルの信号値に対するマスク値を設定したうえで(後述する図40のステップS224)、断層画像群Doの各ボクセルの信号値を取得(補間計算)し(後述する図40のステップS225)、MIP画像ImageMIPを生成する。これにより、被写体形状(幾何形状)に基づいて生成したマスクデータMaskの描画・非描画情報が反映されたMIP画像が生成される。
図36は、ステップS163において実行される、MIP画像ImageMIPを生成する具体的な処理の流れを示す。
まず、制御部11は、座標変換パラメータを設定する(ステップS171)。座標変換パラメータの設定は、前記した図27のステップS91と同様である。
続いて、制御部11は、レイキャスティング処理(各座標(x、y)毎に代表信号値を算出する処理)を実行する(ステップS172)。
<レイキャスティング処理>
図37のフローチャートを参照して、レイキャスティング処理について説明する。生成するMIP画像ImageMIP(x、y)は断層画像群Doの階調に基づいてモノクロ8ビットまたは16ビットの値をもつが、図24のステップS71において断層画像群Doに対する階調圧縮処理を施さない場合が多く、その場合はモノクロ16ビットになる。以下、モノクロ(16ビット)のMIP画像ImageMIP(x、y)を生成する場合について説明する。
制御部11は、まず、生成するモノクロ(16ビット)のMIP画像ImageMIP(x、y)の初期値を全て0に設定する(ImageMIP(x、y)=0)。また、代表信号値算出モードmode(0:MIP、1:MinIP、2:RaySum)を設定し、各2次元座標(x、y)(0≦x≦Size-1、0≦y≦Size-1)に対して、以下の処理を実行する。
制御部11は、x=0、y=0と設定し(ステップS181)、有効ボクセル領域Vrと仮想光線との交点のZ座標(Zc)を算出する(ステップS182)。交点のZ座標を算出する処理は、前記した図28のステップS103の処理と同様である(「11-1.交点算出処理」参照)。
続いて、制御部11は、代表信号値算出モードmodeに応じて、代表信号値Vmとカウンタcntを以下のように初期化し、Zst=Zcとする(ステップS183)。
(式43)
mode=0(MIP):Vm=-32768(最小値を設定)
mode=1(MinIP):Vm=32767(最大値を設定)
mode=2(RaySum):Vm=0、cnt=0
続いて、制御部11は、Zstから後続する先頭の有効ボクセル(信号値が所定の閾値以上のボクセル)のZ座標z(起点座標)を探索する(ステップS184)。すなわち、ステップS182において算出された交点から視線方向に向かってレイキャスティング計算を開始する起点座標を探索する。起点座標を探索する処理については後述する(「12-1.起点座標探索処理」、図38参照)。
z<0の場合、ステップS189へ移行する。
一方、z≧0の場合、制御部11は、3次元座標(x、y、z)を座標変換してボクセル信号値Vsを取得する(ステップS185)。ボクセル信号値Vsを取得する処理については後述する(「12-3.ボクセル信号値Vsを取得(補間あり)」参照)。
ステップS185において取得したボクセル信号値VsがVs=-32769の場合(有効ボクセル領域Vrを通過した場合)、ステップS189へ移行する。これにより、有効ボクセル領域Vrを通過している場合(Vs=-32769)は、その先に描画対象のボクセルは存在しないため、レイキャスティング処理を早期に打ち切り、冗長な処理を省略する。
ステップS185において取得したボクセル信号値VsがVs<-32769の場合(無効値の場合)、Zst=z-1としたうえで(ステップS186)、ステップS184に戻り、起点座標を再度探索する。
ステップS185において取得したボクセル信号値VsがVs≧-32768の場合(有効値の場合)、制御部11は、代表信号値算出モードmodeに応じて、以下のように代表信号値Vmを算出する(ステップS187)。
(式44)
mode=0(MIP mode):
Vs>VmならばVm=Vs
mode=1(MinIP mode):
Vs<VmならばVm=Vs
mode=2(RaySum mode):
Vm←Vm+Vs、cnt←cnt+1
z=z-1に更新し(ステップS188)、z≧0の場合、ステップS185に戻り、z<0の場合、ステップS189へ移行する。
ステップ189において、mode=0、1の場合(ステップS189;mode<2)には、制御部11は、ステップS187で得られた代表信号値Vmを画素値として記録する(ImageMIP(x、y)=Vm、ステップS191)。一方、mode=2(RaySum mode)の場合(ステップS189;mode=2)には、制御部11は、Vm←Vm/cntのように信号値の平均を計算したうえで(ステップS190)、代表信号値Vmを画素値として記録する(ImageMIP(x、y)=Vm、ステップS191)。
続いて、制御部11は、x←x+1に更新し(ステップS192)、x<Sizeの場合、ステップS182に戻り、次の画素xの代表信号値Vmを求める処理(ステップS182~S191)を実行する。x≧Sizeの場合、y←y+1に更新し(ステップS193)、y≦Sizeの場合、x=0としたうえで、ステップS182に戻り、y行目の画素(x、y)の代表信号値Vmを求める処理(ステップS182~S191)を繰り返す。y>Sizeの場合、制御部11は、処理を終了する。
すなわち、画素領域の全画素の代表信号値Vmが得られるまで(ステップS192;x≧Size、かつ、ステップS193;y>Size)、ステップS182~S191の処理を繰り返す。
図36のフローチャートに戻る。
制御部11は、ステップS172において生成したMIP画像ImageMIPを出力する(ステップS173)。
(12-1.起点座標探索処理)
図38のフローチャートを参照して、図37のステップS184において実行される、起点座標を探索する処理について説明する。
まず、制御部11は、zをz=Zstと初期化し、探索対象画素(x、y)を入力する(ステップS201)。続いて、制御部11は、3次元座標(x、y、z)に対して座標変換を行い、ボクセル信号値Vsを取得する(ステップS202)。ボクセル信号値Vsを取得する処理は後述する(「12-2.ボクセル信号値Vsを取得(補間なし)」参照)。
ステップS202において取得したボクセル信号値VsがVs=-32769の場合(有効ボクセル領域Vrを通過した場合)、制御部11は、z=-1(起点座標が存在しないことを示す値)を返し(ステップS204)、処理を終了する。
一方、ステップS202において取得したボクセル信号値Vs<-32769の場合(無効値の場合)は、制御部11は、z←z-1に更新する(ステップS203)。
ステップS203において更新したzがz<0の場合、制御部11は、z=-1(起点座標が存在しないことを示す値)を返し(ステップS204)、処理を終了する。z≧0の場合、制御部11は、ステップS202に戻る。
一方、ステップS202において取得したボクセル信号値VsがVs≧-32768の場合(有効ボクセルの場合)、制御部11は、zを起点座標として出力する。
(12-2.ボクセル信号値Vsを取得(補間なし))
図39のフローチャートを参照して、起点座標探索処理(図38)のステップS202において実行される、ボクセル信号値Vsを取得する処理について説明する。
まず、制御部11は、図32のステップS131と同様の方法で、視点座標系の3次元座標値(x、y、z)(整数値)に対して座標変換を行い、ボクセルの実数の座標値(xr、yr、zr)を算出し(ステップS211)、図32のステップS132と同様の方法で、算出したボクセルの実数の座標値(xr、yr、zr)(実数値)を整数の座標値(xi、yi、zi)に変換する(ステップS212)。
そして、制御部11は、有効ボクセル領域Vr、マスクデータMaskを考慮して、以下のようにボクセル信号値Vsを取得する(ステップS213)。
(式45)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外の場合)
Vs=-32769
2)上記1)を満たさず、Mask(x、y、z)=0の場合(無効値)
Vs=-99999
3)上記1)2)を満たさない場合(有効値)
Vs=Do(xi、yi、zi)
(12-3.ボクセル信号値Vsの取得(補間あり))
図40のフローチャートを参照して、レイキャスティング処理(図37)のステップS185において実行される、ボクセル信号値Vsを取得する処理を説明する。
まず、制御部11は、図33のステップS141と同様の方法で、視点座標系の3次元座標値(x、y、z)(整数値)に対して座標変換を行い、ボクセルの実数の座標値(xr、yr、zr)を算出し(ステップS221)、図33のステップS142と同様の方法で、算出したボクセルの実数の座標値(xr、yr、zr)(実数値)を、小数点以下を切り捨て整数化した座標値(xi、yi、zi)に変換する(ステップS222)。切り捨てた小数点以下の端数を(wx、wy、wz)(0≦wx、wy、wz<1)とする(すなわち、xr=xi+wx、yr=yi+wy、zr=zi+wz)。
続いて、制御部11は、以下のように、視点座標系の3次元座標値(x、y、z)(整数値)に対応する補間対象のボクセルの信号値D000、D100、D010、D001、D101、D011、D111を抽出する(ステップS223)。
(式46)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
D000=-32769(無効の値)
2)上記1)の条件を満たさない場合において、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(中央ボクセルを抽出)
D000=Do(xi、yi、zi)
3)上記1)2)の条件を満たさない場合(8近傍ボクセルの信号値を抽出)
D000=Do(xi、yi、zi)
D100=Do(xi+1、yi、zi)
D010=Do(xi、yi+1、zi)
D110=Do(xi+1、yi+1、zi)
D001=Do(xi、yi、zi+1)
D101=Do(xi+1、yi、zi+1)
D011=Do(xi、yi+1、zi+1)
D111=Do(xi+1、yi+1、zi+1)
続いて、制御部11は、マスクデータMaskに基づいて、抽出した補間対象の各ボクセルの信号値に対するマスク値S000~S111(0または1)を以下のように設定する(ステップS224)。すなわち、各ボクセルの信号値を計算に用いるか否かを設定する。
(式47)
1)1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
S000=0
2)上記1)の条件を満たさない場合において、xi+1>Xie、yi+1>Yie、又はzi+1>Zieのいずれかを満たす場合(中央ボクセルのマスク値を設定)
S000=Mask(xi、yi、zi)
3)上記1)2)の条件を満たさない場合(8近傍ボクセルのマスク値を設定)
S000=Mask(xi、yi、zi)
S100=Mask(xi+1、yi、zi)
S010=Mask(xi、yi+1、zi)
S110=Mask(xi+1、yi+1、zi)
S001=Mask(xi、yi、zi+1)
S101=Mask(xi+1、yi、zi+1)
S011=Mask(xi、yi+1、zi+1)
S111=Mask(xi+1、yi+1、zi+1)
そして、制御部11は、抽出した補間対象ボクセルの信号値に基づいて、視点座標系の3次元座標値(x、y、z)(整数値)に対応するボクセル信号値Vsを以下のように取得する(ステップS225)。
(式48)
1)xi<Xis、xi>Xie、yi<Yis、yi>Yie、zi<Zis、又はzi>Zieのいずれかを満たす場合(有効ボクセル領域Vr外)
Vs=-32769
2)上記1)の条件を満たさず、S000=0の場合(無効値)
Vs=-99999
3)上記1)2)を満たさない場合において、
xi+1>Xie、yi+1>Yie、またはzi+1>Zieのいずれかを満たすか、或いはS000、S100、S010、S110、S001、S101、S011、S111のいずれかが0の場合(補間しない)
Vs=D000
4)上記1)2)3)の条件を満たさない場合(補間する)
Vs=(1-wz)(1-wy)(1-wx)・D000+(1-wz)(1-wy)・wx・D100+(1-wz)・wy・(1-wx)・D010+(1-wz)・wy・wx・D110+wz・(1-wy)(1-wx)・D001+wz・(1-wy)・wx・D100+wz・wy・(1-wx)・D011+wz・wy・wx・D111
以上、モノクロ(16ビット)のMIP画像ImageMIP(x、y)を生成する場合について説明したが、制御部11は、生成されたMIP画像ImageMIP(x、y)を8ビットに変換したうえで、表示する。具体的には、DICOM規格のWindow Width(ウィンドウ幅:WW)、Window Level(ウィンドウレベル:WL)を設定し、上限値Lmax=WL+WW/2、下限値Lmin=WL-WW/2に変換し、以下のようにMIP画像ImageMIP(x、y)を8ビットに変換する。
ImageMIP‘(x、y)=(ImageMIP(x、y)-Lmin)・255/(Lmax-Lmin)
ImageMIP‘(x、y)<0の場合、ImageMIP‘(x、y)=0とする。
ImageMIP‘(x、y)>255の場合、ImageMIP‘(x、y)=255とする。
以上、図34~図40を参照しながら、MIP画像を生成する処理を説明した。マスクデータMaskに基づいて断層画像群Doの各ボクセルの信号値に対するマスク値を設定したうえで(図40のステップS224)、断層画像群Doの各ボクセルの信号値を取得(補間計算)することで(図40のステップS225)、マスクデータMaskの描画・非描画情報が反映されたMIP画像を生成することができる。
(13.MPR画像の生成)
次に、図41、図42を参照しながら、MPR画像を生成する処理を説明する。
図41は、MPR画像を生成する処理の流れを示すフローチャートである。
まず、断層画像群Doの信号値が16ビットの場合((式1)参照)には、制御部11は、断層画像群Doを8ビットに変換する(ステップS241)。具体的には、制御部11は、断層画像群Do(-32768≦Do(x、y、z)≦32767、0≦x≦Sx-1、0≦y≦Sy-1、0≦z≦Sz-1;3方向の変倍率(Scx、Scy、Scz))に対して、DICOM規格のWindow Width(ウィンドウ幅:WW)、Window Level(ウィンドウレベル:WL)を設定し、上限値Lmax=WL+WW/2、下限値Lmin=WL-WW/2に変換し、以下のように断層画像群Doを8ビットに変換する。
(式49)
Do(x、y、z)=(Do(x、y、z)-Lmin)・255/(Lmax-Lmin)
Do(x、y、z)<0の場合、Do(x、y、z)=0とする。
Do(x、y、z)>255の場合、Do(x、y、z)=255とする。
続いて、制御部11は、8ビットの断層画像群Doに基づいて、任意断面のMPR画像ImageMPRを生成する(ステップS242)。例えば、図42に示すように、XY平面に平行な体軸断面(アキシャル(Axial)断面)の場合、指定されたスライス位置zにおけるXY平面上のボクセルに対して(Scx、Scy)変倍を加えながら各画素(x、y)を取得して2次元画像を再構成する。XZ平面に平行な冠状断面(コロナル(Coronal)断面)の場合、指定されたスライス位置yにおけるXZ平面上のボクセルに対して(Scx、Scz)変倍を加えながら各画素(x、z)を取得して2次元画像を再構成する。ZY平面に平行な矢状断面(サジタル(Sagittal)断面)の場合、指定されたスライス位置xにおけるZY平面上のボクセルに対して(Scz、Scy)変倍を加えながら各画素(z、y)を取得して2次元画像を再構成する。このようにして3方向のMPR画像を生成する。
また、XYZ空間を斜めに切断した斜断面(オブリーク(Oblique)断面)のMPR画像を生成する場合は、3方向のMPR画像のいずれかを2次元上で回転させながら3次元空間における回転を指示し、生成される回転行列に基づいて前記8ビットの断層画像群Doに対して3次元空間で回転を加えた上で、各2次元画像の再構成を行う。更に、スラブ厚を指定して体軸断面(アキシャル(Axial)断面)のMPR像を生成する場合は、指定されたスライス位置zの近傍で指定された厚み(スライス枚数)だけスライス位置を微小に移動させて、XY平面上のボクセルに対して(Scx、Scy)変倍を加えながら各画素(x、y)を複数通り取得して、各画素が複数個の信号値の代表信号値で構成される2次元画像を再構成する。複数個の信号値から代表信号値を算出する方法として、前述のMIP像を生成する場合と同様に、最大値(MIP)、最小値(MinIP)、平均値(RaySum)のいずれかを設定できる。
そして、制御部11は、ステップS242において生成されたMPR画像ImageMPRにマスクデータMaskに基づいて生成されたマスク画像を合成(重畳)して出力する(ステップS243)。例えば、制御部11は、MPR画像ImageMPRに合成(重畳)するマスク画像として、Mask(x、y、z)=0(非描画対象)の画素またはMask(x、y、z)=1(描画対象)の画素を所定の色で塗りつぶした画像、或いはMask(x、y、z)=0(非描画対象)の画素とMask(x、y、z)=1(描画対象)の画素を異なる色で色分けした画像を生成し、MPR画像に合成する。
以上、図41、図42を参照しながら、MPR画像を生成する処理を説明した。なお、上記の例では、MPR画像にマスクデータMaskに基づいて生成したマスク画像を合成するようにしたが、ボリュームレンダリング画像やMIP画像の場合と同様に、マスクデータMaskにより規定される描画対象の画素のみを表示したMPR画像を生成してもよい。
以上、マスクデータMaskの適用例として、マスクデータMaskを用いて3次元再構成像(ボリュームレンダリング画像/MIP画像/MPR画像)を生成する例を説明した。
(14.3次元再構成像の表示例)
最後に、本開示の3次元再構成像生成装置2により生成された3次元再構成像(ボリュームレンダリング画像、MIP画像、MPR画像)の表示例を示す。
図43は、本開示の3次元再構成像生成装置2により生成された胸腹部のボリュームレンダリング画像の表示例を示す図である。
図43(a)は正面から観察したボリュームレンダリング画像であり、図43(b)は左側面から観察したボリュームレンダリング画像である。
肋骨、胸骨を含む全ての骨領域が十分に除去され、肺・心臓・血管・肝臓・腎臓などの診断上重要な内臓領域等が鮮明に可視化されていることが分かる。
図44は、本開示の3次元再構成像生成装置2により生成された胸腹部のMIP画像の表示例を示す図である。
図44(a)は正面から観察したMIP画像であり、図45(b)は左側面から観察したMIP画像である。
図43のボリュームレンダリング画像と同様に、肋骨、胸骨を含む全ての骨領域が十分に除去され、肺・心臓・血管・肝臓・腎臓などの診断上重要な内臓領域等が鮮明に可視化されていることが確認できる。
図45は、本開示の3次元再構成像生成装置2により生成された胸腹部のMPR画像の表示例を示す図である。図に示すように、Axial(体軸断面)、Coronal(冠状断面)、Sagittal(矢状断面)の各断面についてマスク画像が合成(重畳)されたMPR画像が表示される。図のマスク画像は、非描画対象を「赤色」(図はグレースケール画像のため「グレー」で表示されている)で塗りつぶした画像である。このように、マスク画像がMPR画像に合成表示されるので、ユーザは断層画像中の描画・非描画領域を容易に把握することができる。
比較例として、図46に、本発明者が既に提案している特願2018-124125における不透明度の制御手法を用いて生成した胸腹部のボリュームレンダリング画像の表示例を示しておく。図44(a)は正面から観察したボリュームレンダリング画像であり、図44(b)は左側面から観察したボリュームレンダリング画像である。特願2018-124125は、被写体領域の外郭を幾何形状で近似し、当該幾何形状を規定するパラメータから各画素の補正倍率を求め、ボリュームレンダリング(レイキャスティング処理)の過程で、各画素の信号値をオパシティカーブに通して得られる各画素の不透明度に対して前記補正倍率を乗算することで、不透明度を制御する方法である。
本開示の方法により得られるボリュームレンダリング画像(図43)のほうが、骨領域が十分に除去され、骨領域の内側の内臓領域等が鮮明に可視化されていることが確認できる。
特願2018-124125の方法は、ユーザが設定するオパシティカーブに補正を施すため、オパシティカーブが変更されると、CT画像の変更と同様に骨除去の形態が変わり、パラメータ調整をやり直す必要があった。また、オパシティカーブが変更されると、観察対象の臓器の不透明度に補正倍率が乗算され、ユーザの意図とは異なって臓器が半透明(不鮮明)になることがあり、このように半透明になるとレイキャスティング法では処理負担の増大につながるという問題があった。
これに対し、本開示の方法では、ボリュームレンダリングの過程で不透明度を制御する方法をとらず、重み値(特願2018-124125の補正倍率に相当する値)に基づいて直接マスクデータを生成し、一般的なマスク参照によるレンダリング処理を実行するので、オパシティカーブが変更されることによるパラメータ調整の必要はなくなり、また、ユーザの意図とは異なって臓器が半透明(不鮮明)になることがなくなり、さらに、ボリュームレンダリングの過程で補正倍率を乗算する必要がないため処理負担も軽減される。
また、特願2018-124125の方法は、カラーマップ(オパシティカーブ)に補正を施すため、カラーマップを使用しないMIP画像やMPR画像には適用できなかった。一方、本開示の方法では、前記したように、ボリュームレンダリングの過程で不透明度を制御する方法をとらず、重み値(特願2018-124125の補正倍率に相当する値)に基づいて直接マスクデータを生成し、一般的なマスク参照による3次元再構成像生成処理を実行するため、カラーマップを使用しないMIP画像やMPR画像の生成処理にも適用可能となる。
また、特願2018-124125の方法では、信号値が所定の閾値より大きい全ての画素領域に基づいて被写体領域(図5の矩形領域41)を算出していたため、被写体領域に寝台・ヘッドレストなどが含まれる場合があった。これに対し、本開示の方法では、信号値分布を考慮して被写体領域(図5の矩形領域42)を算出するので、寝台・ヘッドレストなどを含まない領域を被写体領域として高精度に抽出することができる。
また特願2018-124125の方法では、3つの楕円で被写体領域の外郭を近似するが、椎骨を除去するための中央の楕円の径が小さめに設定されるため、近傍の大動脈などが同時に削られやすいという問題があった。また、設定パラメータが増え、パラメータ調整に手間がかかり、種々のCT画像に適合させるのが困難な場合があった。これに対し、本開示の方法では、被写体領域の外郭を、胸骨側と椎骨側で楕円の径を変えることが可能な1つの変形楕円で近似することで、設定パラメータ数が抑えられるとともに、肋骨、胸骨を含む全ての骨領域を自動除去し、肺、心臓、血管、肝臓、腎臓などの診断上重要な内臓領域等を高精度に自動抽出することが可能となる。
以上、添付図面を参照しながら、本開示に係る好適な実施形態について説明したが、本開示はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。
なお、断層画像から被写体領域を算出する処理を実行する被写体領域算出装置を構成することもできる。この被写体領域算出装置は、図1の画像取得部21、被写体領域算出部31、被写体領域補正部32を備え、図2と同様のハードウェア構成で実現される。そして、被写体領域算出装置の制御部が、図3のステップS1、図4のステップS21、ステップS22の処理を実行することで、断層画像から被写体領域を算出する。
1・・・・・・マスク作成装置
2・・・・・・3次元再構成像生成装置
21・・・・・画像取得部
22・・・・・描画重みテーブル作成部
23・・・・・マスクデータ生成部
24・・・・・クリッピング領域設定部
25・・・・・有効ボクセル領域算出部
26・・・・・3次元再構成像生成部
27・・・・・3次元再構成像表示部
31・・・・・被写体領域算出部
32・・・・・被写体領域補正部
33・・・・・被写体形状算出部
34・・・・・重み値算出部
41・・・・・矩形領域(第1の矩形領域)
42・・・・・矩形領域(第2の矩形領域)
50・・・・・被写体候補領域
51・・・・・ボリュームレンダリング画像生成部
52・・・・・MIP画像生成部
53・・・・・MPR画像生成部
510・・・・カラーマップ設定部

Claims (23)

  1. 複数の断層画像を取得する画像取得手段と、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、
    断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、
    断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、
    を備えるマスク生成装置。
  2. 前記重み値算出手段は、前記重み値を、前記幾何形状の中心が最大となり、前記幾何形状の外部が最小となり、前記幾何形状の内部は前記中心から遠ざかるにつれ小さくなるように算出する、
    請求項に記載のマスク生成装置。
  3. 前記重み値算出手段は、断層画像のスライス位置が中央から末端に位置するほど当該断層画像に対応する前記重み値が小さくなるように補正する、
    請求項に記載のマスク生成装置。
  4. 前記マスクデータ生成手段は、断層画像毎に、前記重み値により重み付けされた各画素の信号値を所定の閾値で二値化したマスク値を算出し、各画素のマスク値を保持するマスクデータを生成する、
    請求項に記載のマスク生成装置。
  5. 複数の断層画像を取得する画像取得手段と、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、
    断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、を備え
    前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域を算出する、
    マスク生成装置。
  6. 複数の断層画像を取得する画像取得手段と、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、
    断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、を備え
    前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域の内部に定義される第2の矩形領域を算出する、
    マスク生成装置。
  7. 前記被写体領域算出手段は、前記第2の矩形領域の中心座標が、前記第1の矩形領域内の信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標となるように、前記第2の矩形領域を算出する、
    請求項に記載のマスク生成装置。
  8. 前記被写体領域算出手段は、
    前記第2の矩形領域の中心座標を起点に上下左右の4方向に前記第1の矩形領域の範囲で信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標である第2重心を4箇所算出し、
    算出された左方向の第2重心と右方向の第2重心に基づいて前記第2の矩形領域の横方向のサイズを算出し、
    算出された上方向の第2重心と下方向の第2重心に基づいて前記第2の矩形領域の縦方向のサイズを算出する、
    請求項に記載のマスク生成装置。
  9. 前記被写体領域算出手段は、
    前記算出した4個の第2重心を起点に更に上下左右の4方向に前記第1の矩形領域の範囲で信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標である第3重心を4箇所算出し、
    算出された左方向の第3重心と右方向の第3重心に基づいて前記第2の矩形領域の横方向のサイズを算出し、
    算出された上方向の第3重心と下方向の第3重心に基づいて前記第2の矩形領域の縦方向のサイズを算出する、
    請求項に記載のマスク生成装置。
  10. 前記被写体領域算出手段は、
    算出された左方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第1の横方向サイズを算出し、
    算出された右方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第2の横方向サイズを算出し、
    算出された上方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第1の縦方向サイズを算出し、
    算出された下方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第2の縦方向サイズを算出する、
    請求項または請求項に記載のマスク生成装置。
  11. 前記断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、を更に備え、
    前記マスクデータ生成手段は、前記断層画像毎に、各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成し、
    前記幾何形状は、中心座標、横方向のサイズ、および縦方向のサイズによって規定される幾何形状であり、
    前記被写体形状算出手段は、
    前記幾何形状の中心座標として、前記第1または前記第2の矩形領域の中心座標を算出し、
    前記幾何形状の横方向のサイズとして、前記第1または前記第2の矩形領域の横方向のサイズを算出し、
    前記幾何形状の縦方向のサイズとして、前記第1または前記第2の矩形領域の縦方向のサイズを算出し、
    前記重み値算出手段は、算出した前記幾何形状の中心座標、横方向のサイズ、および縦方向のサイズに基づいて、前記重み値を算出する
    求項から請求項のいずれかに記載のマスク生成装置。
  12. 前記被写体形状算出手段は、算出した前記幾何形状の横方向のサイズおよび縦方向のサイズに所定の横方向のサイズに対する倍率および縦方向のサイズに対する倍率を乗算して前記横方向のサイズおよび前記縦方向のサイズを補正する、
    請求項11に記載のマスク生成装置。
  13. 前記断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、を更に備え、
    前記マスクデータ生成手段は、前記断層画像毎に、各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成し、
    前記幾何形状は、中心座標、中心座標から左端までの距離である第1の横方向のサイズ、中心座標から右端までの距離である第2の横方向のサイズ、中心座標から上端までの距離である第1の縦方向のサイズ、および中心座標から下端までの距離である第2の縦方向のサイズによって規定される幾何形状であり、
    前記被写体形状算出手段は、
    前記幾何形状の中心座標として、前記第2の矩形領域の中心座標を算出し、
    前記幾何形状の第1の横方向のサイズとして、前記第2の矩形領域の第1の横方向のサイズを算出し、
    前記幾何形状の第2の横方向のサイズとして、前記第2の矩形領域の第2の横方向のサイズを算出し、
    前記幾何形状の第1の縦方向のサイズとして、前記第2の矩形領域の第1の縦方向のサイズを算出し、
    前記幾何形状の第2の縦方向のサイズとして、前記第2の矩形領域の第2の縦方向のサイズを算出し、
    前記重み値算出手段は、算出した前記幾何形状の中心座標、第1の横方向サイズ、第2の横方向サイズ、第1の縦方向サイズ、および第2の縦方向サイズに基づいて、前記重み値を算出する
    求項10に記載のマスク生成装置。
  14. 前記被写体形状算出手段は、
    算出した前記幾何形状の第1の横方向のサイズおよび第2の横方向のサイズに互いに異なる横方向のサイズに対する倍率を乗算して前記第1の横方向のサイズおよび前記第2の横方向のサイズを補正し、
    算出した前記幾何形状の第1の縦方向のサイズおよび第2の縦方向のサイズに互いに異なる縦方向のサイズに対する倍率を乗算して前記第1の縦方向のサイズおよび前記第2の縦方向のサイズを補正する、
    請求項13に記載のマスク生成装置。
  15. 複数の断層画像を取得する画像取得手段と、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、
    断層画像毎に、断層画像の各画素が前記幾何形状の内部か外部のいずれに含まれるかを定義したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、
    断層画像毎に、前記被写体領域算出手段により算出された被写体領域の縦方向のサイズと横方向のサイズの比率に応じた補正方法により該被写体領域を補正する被写体領域補正手段と、
    を備えるマスク生成装置。
  16. 前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域の内部に定義される第2の矩形領域を算出し、
    前記被写体領域補正手段は、前記被写体領域算出手段により算出された前記第2の矩形領域の縦方向のサイズを横方向のサイズで除算した縦横比率を算出し、
    算出された前記縦横比率が所定の閾値より小さい場合、前記被写体領域算出手段により算出された前記第2の矩形領域の横方向のサイズおよび縦方向のサイズの各々に前記縦横比率を乗算して補正し、
    算出された前記縦横比率が前記所定の閾値以上の場合、前記第1の矩形領域の内部で信号値が前記所定の閾値より大きい画素の個数を前記第2の矩形領域の面積で除算した面積比率を算出し、前記被写体領域算出手段により算出された前記第2の矩形領域の横方向のサイズおよび縦方向のサイズの各々に前記面積比率を乗算して補正する
    求項15に記載のマスク生成装置。
  17. 前記被写体領域算出手段は、前記被写体領域として、信号値が所定の閾値より大きい画素が存在する領域の最外側を囲う矩形領域である第1の矩形領域の内部に定義される第2の矩形領域を算出し、
    前記被写体領域算出手段は、前記第2の矩形領域の中心座標が、前記第1の矩形領域内の信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標となるように、前記第2の矩形領域を算出し、
    前記被写体領域算出手段は、
    前記第2の矩形領域の中心座標を起点に上下左右の4方向に前記第1の矩形領域の範囲で信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標である第2重心を4箇所算出し、
    算出された左方向の第2重心と右方向の第2重心に基づいて前記第2の矩形領域の横方向のサイズを算出し、
    算出された上方向の第2重心と下方向の第2重心に基づいて前記第2の矩形領域の縦方向のサイズを算出し、
    前記被写体領域算出手段は、
    前記算出した4個の第2重心を起点に更に上下左右の4方向に前記第1の矩形領域の範囲で信号値が前記所定の閾値より大きい画素の信号値で重み付けした重心座標である第3重心を4箇所算出し、
    算出された左方向の第3重心と右方向の第3重心に基づいて前記第2の矩形領域の横方向のサイズを算出し、
    算出された上方向の第3重心と下方向の第3重心に基づいて前記第2の矩形領域の縦方向のサイズを算出し、
    前記被写体領域算出手段は、
    算出された左方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第1の横方向サイズを算出し、
    算出された右方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第2の横方向サイズを算出し、
    算出された上方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第1の縦方向サイズを算出し、
    算出された下方向の第2重心または第3重心から前記第2の矩形領域の中心座標までの距離である第2の縦方向サイズを算出し、
    前記被写体領域補正手段は、前記被写体領域算出手段により算出された前記第2の矩形領域の縦方向のサイズを横方向のサイズで除算した縦横比率を算出し、
    算出された前記縦横比率が所定の閾値より小さい場合、前記被写体形状算出手段により算出された前記第2の矩形領域の第1の横方向のサイズ、第2の横方向のサイズ、第1の縦方向のサイズ、および第2の縦方向のサイズの各々に前記縦横比率を乗算して補正し、
    算出された前記縦横比率が前記所定の閾値以上の場合、前記第1の矩形領域の内部で信号値が前記所定の閾値より大きい画素の個数を前記第2の矩形領域の面積で除算した面積比率を算出し、前記被写体領域算出手段により算出された前記第2の矩形領域の第1の横方向のサイズ、第2の横方向のサイズ、第1の縦方向のサイズ、および第2の縦方向のサイズの各々に前記面積比率を乗算して補正する
    求項15に記載のマスク生成装置。
  18. 複数の断層画像を取得する画像取得手段と、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段と、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段と、
    断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段と、
    断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段と、
    前記断層画像の各画素をボクセル空間に配置して構成される3次元ボクセルと前記マスクデータに基づいて3次元再構成像を生成する3次元再構成像生成手段と、
    を備える3次元再構成像生成装置。
  19. 前記3次元再構成像生成手段は、前記マスクデータに基づいて各ボクセルの不透明度を計算に用いるか否かを設定する、
    請求項18に記載の3次元再構成像生成装置。
  20. 前記3次元再構成像生成手段は、前記マスクデータに基づいて各ボクセルの信号値を計算に用いるか否かを設定する、
    請求項18に記載の3次元再構成像生成装置。
  21. 前記3次元再構成像生成手段は、前記3次元再構成像として、前記断層画像に基づいて生成された3次元再構成像に前記マスクデータに基づいて生成されたマスク画像を合成した画像を生成する、
    請求項18に記載の3次元再構成像生成装置。
  22. コンピュータが、
    複数の断層画像を取得する画像取得ステップと、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出ステップと、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出ステップと、
    断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出ステップと、
    断層画像毎に、断層画像の各画素に対して重み値算出ステップにより算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成ステップと、
    を実行するマスク生成方法。
  23. コンピュータを、
    複数の断層画像を取得する画像取得手段、
    断層画像毎に、各画素の信号値に基づいて被写体領域を算出する被写体領域算出手段、
    断層画像毎に、算出された被写体領域の外郭を所定の幾何形状で近似し、当該幾何形状のパラメータを算出する被写体形状算出手段、
    断層画像毎に、前記幾何形状のパラメータに基づいて断層画像の各画素を描画対象とする重み値を算出する重み値算出手段、
    断層画像毎に、断層画像の各画素に対して重み値算出手段により算出された重み値を所定の閾値で二値化したマスク値を算出し、各画素に対するマスク値を保持するマスクデータを生成するマスクデータ生成手段、
    として機能させるプログラム。
JP2019042820A 2019-03-08 2019-03-08 マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム Active JP7275669B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019042820A JP7275669B2 (ja) 2019-03-08 2019-03-08 マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019042820A JP7275669B2 (ja) 2019-03-08 2019-03-08 マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020142003A JP2020142003A (ja) 2020-09-10
JP7275669B2 true JP7275669B2 (ja) 2023-05-18

Family

ID=72354997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019042820A Active JP7275669B2 (ja) 2019-03-08 2019-03-08 マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP7275669B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562512B2 (en) * 2020-12-09 2023-01-24 Raytheon Company System and method for generating and displaying contours
CN117079080B (zh) * 2023-10-11 2024-01-30 青岛美迪康数字工程有限公司 冠脉cta智能分割模型的训练优化方法、装置和设备
CN117576124B (zh) * 2024-01-15 2024-04-30 福建智康云医疗科技有限公司 一种基于人工智能的腹部ct图像肝脏分割方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007015365A1 (ja) 2005-08-01 2007-02-08 National University Corporation NARA Institute of Science and Technology 情報処理装置およびプログラム
JP2007135858A (ja) 2005-11-18 2007-06-07 Hitachi Medical Corp 画像処理装置
JP2009022307A (ja) 2007-07-17 2009-02-05 Hitachi Medical Corp 医用画像表示装置及びそのプログラム
WO2012073769A1 (ja) 2010-11-29 2012-06-07 株式会社 日立メディコ 画像処理装置及び画像処理方法
US20130281819A1 (en) 2011-11-02 2013-10-24 Seno Medical Instruments, Inc. Noise suppression in an optoacoustic system
JP2018157982A (ja) 2017-03-23 2018-10-11 株式会社日立製作所 超音波診断装置及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801645B1 (en) * 1999-06-23 2004-10-05 Icad, Inc. Computer aided detection of masses and clustered microcalcifications with single and multiple input image context classification strategies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007015365A1 (ja) 2005-08-01 2007-02-08 National University Corporation NARA Institute of Science and Technology 情報処理装置およびプログラム
JP2007135858A (ja) 2005-11-18 2007-06-07 Hitachi Medical Corp 画像処理装置
JP2009022307A (ja) 2007-07-17 2009-02-05 Hitachi Medical Corp 医用画像表示装置及びそのプログラム
WO2012073769A1 (ja) 2010-11-29 2012-06-07 株式会社 日立メディコ 画像処理装置及び画像処理方法
US20130281819A1 (en) 2011-11-02 2013-10-24 Seno Medical Instruments, Inc. Noise suppression in an optoacoustic system
JP2018157982A (ja) 2017-03-23 2018-10-11 株式会社日立製作所 超音波診断装置及びプログラム

Also Published As

Publication number Publication date
JP2020142003A (ja) 2020-09-10

Similar Documents

Publication Publication Date Title
JP7169986B2 (ja) オブジェクトグリッド増強を用いて高次元画像データから低次元画像データを合成するためのシステムおよび方法
US7529396B2 (en) Method, computer program product, and apparatus for designating region of interest
US7450749B2 (en) Image processing method for interacting with a 3-D surface represented in a 3-D image
US9472017B2 (en) Fast rendering of curved reformation of a 3D tubular structure
JP7275669B2 (ja) マスク生成装置、3次元再構成像生成装置、マスク生成方法、及びプログラム
EP3493161B1 (en) Transfer function determination in medical imaging
US7424140B2 (en) Method, computer program product, and apparatus for performing rendering
JP2007537770A (ja) 内視鏡画像内の管腔状構造のディスプレイ最適化のための動的なクロップボックス決定方法
JP7180123B2 (ja) 医用画像処理装置、医用画像処理方法、プログラム、及びデータ作成方法
JP7471814B2 (ja) 既知の伝達関数を用いた体積レンダリングの最適化
JP7247577B2 (ja) 3次元再構成像表示装置、3次元再構成像表示方法、プログラム、及び画像生成方法
JP6544472B1 (ja) レンダリング装置、レンダリング方法、及びプログラム
JP2012085833A (ja) 3次元医用画像データの画像処理システム、その画像処理方法及びプログラム
US7030874B2 (en) Method of following the three-dimensional deformation of a deformable organ
JP7003635B2 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
JP7155670B2 (ja) 医用画像処理装置、医用画像処理方法、プログラム、及びデータ作成方法
Kiss et al. GPU volume rendering in 3D echocardiography: real-time pre-processing and ray-casting
JP7095409B2 (ja) 医用画像処理装置、医用画像処理方法、プログラム、及びmpr像生成方法
US20110122134A1 (en) Image display of a tubular structure
JP7205189B2 (ja) レンダリング装置、レンダリング方法、及びプログラム
JP7223312B2 (ja) ボリュームレンダリング装置
JP7131080B2 (ja) ボリュームレンダリング装置
JP5245811B2 (ja) ボクセル配列可視化装置
US20230360314A1 (en) Technique for real-time rendering of medical images using virtual spherical light sources
JP7167699B2 (ja) ボリュームレンダリング装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230301

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230417

R150 Certificate of patent or registration of utility model

Ref document number: 7275669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150