JP2019207450A - ボリュームレンダリング装置 - Google Patents

ボリュームレンダリング装置 Download PDF

Info

Publication number
JP2019207450A
JP2019207450A JP2018101171A JP2018101171A JP2019207450A JP 2019207450 A JP2019207450 A JP 2019207450A JP 2018101171 A JP2018101171 A JP 2018101171A JP 2018101171 A JP2018101171 A JP 2018101171A JP 2019207450 A JP2019207450 A JP 2019207450A
Authority
JP
Japan
Prior art keywords
voxel
image
opacity
value
color component
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.)
Granted
Application number
JP2018101171A
Other languages
English (en)
Other versions
JP7131080B2 (ja
Inventor
茂出木 敏雄
Toshio Modegi
敏雄 茂出木
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 JP2018101171A priority Critical patent/JP7131080B2/ja
Publication of JP2019207450A publication Critical patent/JP2019207450A/ja
Application granted granted Critical
Publication of JP7131080B2 publication Critical patent/JP7131080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理を高速に行うことが可能なボリュームレンダリング装置を提供する。【解決手段】信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、カラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、不透明度ボクセル画像と色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段70を有する。【選択図】図2

Description

本開示は、二次元の断層画像を複数枚用いて、3次元的に可視化するためのボリュームレンダリング技術に関する。
従来、CT、MRI、PETなど医療画像診断機器(モダリティ)により所定のスライス間隔で連続的に撮像され、DICOM形式等でPACS(Picture Archiving and Communication Systems)等の医療情報システムに保管されている複数の断層画像を基に、臓器等を3次元的に可視化することが行われている。
3Dコンピュータグラフィックス分野においては、レンダリング像を256色などの限定色で生成し、ハードウェア実装のカラーマップ(カラー・ルックアップテーブル)を対話形式に変更してレンダリング像の色をリアルタイムに変更する手法が用いられている(特許文献1参照)。
また、カラーマップに依存しないVISボリューム(信号値、陰影輝度値、不透明度強度係数の3パラメータをもつボクセル)でレンダリングする方法も提案されている(特許文献2参照)。
特開平1−321577号公報 特許第2651787号公報
しかしながら、特許文献1に記載の技術では、変更できるのはRGB値のみであり、ボリュームレンダリングで重要な、不透明度を表現したα値を制御することは開示されていない。また、特許文献2に記載の技術では、信号値に対してカラーマップを適用して再レンダリングする場合に比べ、処理に要する時間が1割程度削減できるに留まる。
そこで、本開示は、複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理の演算負荷を抑制し、レンダリング像の生成処理の速度を向上させることが可能なボリュームレンダリング装置を提供することを課題とする。
本開示は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の2次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルにの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置を提供する。
また、本開示のボリュームレンダリング装置は、
前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値をに置き換えるスムージング処理を行うスムージング手段を更に備え、
前記レンダリング手段は、スムージング処理された不透明度ボクセル画像を用いてボリュームレンダリング像を生成することを特徴とする。
また、本開示では、
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の2次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、ボクセル値として不透明度及び色成分の値が定義された不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段と、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置を提供する。
また、本開示のボリュームレンダリング装置は、前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、スムージング処理された不透明度ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする。
また、本開示のボリュームレンダリング装置は、前記色成分ボクセル画像における最外側であって、当該色成分ボクセル画像に対応する不透明度ボクセル画像におけるボクセルの不透明度が0であるボクセルの色成分の値を、前記不透明度ボクセル画像における不透明度が0であるボクセルの近傍の不透明度が0でないボクセルに対応する前記色成分ボクセル画像におけるボクセルの色成分の平均値に置き換える色補正処理を行う色補正手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、色補正処理された色成分ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする。
また、本開示のボリュームレンダリング装置は、前記色成分ボクセル画像の各ボクセルの色成分の値を、当該ボクセルに対応する前記不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、当該ボクセルにおける勾配ベクトルを算出し、算出した勾配ベクトル及び所定の光源ベクトルに基づいて、陰影値を算出し、前記色成分の値に前記陰影値を乗算した値に置き換える陰影付加手段を更に備えることを特徴とする。
また、本開示のボリュームレンダリング装置は、前記陰影付加手段は、前記勾配ベクトルを算出するにあたり、前記不透明度ボクセル画像の当該ボクセルのX軸方向、Y軸方向、Z軸方向の各々2近傍のボクセルの不透明度の差分値を前記勾配ベクトルのX方向成分、Y方向成分、Z方向成分として算出し、あらかじめ定義されたZ軸方向変倍率に基づいて前記Z方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出することを特徴とする。
また、本開示のボリュームレンダリング装置は、前記不透明度ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、M画素おきに対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成するものであり、
前記色成分ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、M画素おきに対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成するものであることを特徴とする。
また、本開示のボリュームレンダリング装置は、
前記断層画像が16ビットの信号値をもつ画像の場合、前記複数の断層画像の全てまたは特定の断層画像を基に信号値の最大値Dmaxと最小値Dminを算出し、最大値Dmaxより(最大値Dmax−最小値Dmin)×γ(γは0.3未満の実数値)だけ減じた値を上限値Lmaxとし、最小値に(最大値Dmax−最小値Dmin)×γだけ加算した値を下限値Lminとするとき、信号値が上限値Lmaxを超える場合は255、下限値Lminを下回る場合は0、下限値Lminから上限値Lmaxの範囲を0から255に線形変換することにより、信号値を8ビットに変換した階調低下画像を作成する断層画像階調変換手段を更に設け、
前記ボクセル画像作成手段は、信号値に対して色成分の値と不透明度を対応付けて定義された階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、
前記色成分ボクセル画像作成手段は、前記階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成することを特徴とする。
また、本開示のボリュームレンダリング装置は、前記レンダリング手段は、
前記不透明度ボクセル画像を前記生成するボリュームレンダリング像に投影変換した座標系を視点座標系とすると、視点座標系において、前記ボリュームレンダリング像の各画素(x,y)よりZ軸方向に沿って、Z軸の上限値より下限値に向けて、視点座標系の各ボクセル座標(x,y,z)ごとに第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得しながら、不透明度が0でない不透明ボクセルを探索し、最初に見つかった不透明度が0でない不透明ボクセルの視点座標系におけるZ座標を、前記ボリュームレンダリング像の各画素(x,y)ごとに記録した探索制御マスクを作成する探索制御マスク作成手段と、
前記ボリュームレンダリング像の各画素(x,y)に対して、前記探索制御マスクよりZ座標を取得し、取得したZ座標よりZ軸の下限値に向けてZ軸方向に沿って、所定の光強度をもつ仮想光を照射する際、視点座標系の各ボクセル座標(x,y,z)ごとに第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得し、不透明度が0でないボクセルが見つかった場合、当該座標(x,y,z)に対して第2の座標変換を行って前記色成分ボクセル画像より(R,G,B)で構成される色成分を取得し、当該ボクセルの不透明度を基に前記光強度を減衰させるとともに、当該ボクセルの不透明度及び色成分並びに前記減衰させた光強度に基づいて累積輝度値を算出する処理を繰り返し、算出された累積輝度値を基に、前記ボリュームレンダリング像の当該画素(x,y)に対応する(R,G,B)で構成される画素値として与えるようにしているレイキャスティング手段と、を備えていることを特徴とする。
また、本開示のボリュームレンダリング装置は、前記探索制御マスク作成手段および前記レイキャスティング手段は、前記第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得する際、
所定の3次元座標系における回転を定義した3×3行列、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標(x,y,z)を、前記パラメータに基づいて前記不透明度ボクセル画像の座標系に変換を行って、前記不透明度ボクセル画像の実数値の座標(X,Y,Z)を算出し、
算出した実数値の座標(X,Y,Z)の近傍の複数の整数値の座標(x’,y’,z’)座標に対応する前記不透明度ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの不透明度に基づいて前記不透明度ボクセル画像より取得される不透明度として算出するようにしていることを特徴とする。
また、本開示のボリュームレンダリング装置は、前記レイキャスティング手段は、前記第2の座標変換を行って前記色成分ボクセル画像より色成分を取得する際、
所定の3次元座標系における回転を定義した3×3行列、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標(x,y,z)を、前記パラメータに基づいて前記色成分ボクセル画像の座標系に変換を行って、前記色成分ボクセル画像の実数値の座標(X,Y,Z)を算出し、
算出した実数値の座標(X,Y,Z)の近傍の複数の整数値の座標(x’,y’,z’)座標に対応する前記色成分ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの色成分に基づいて前記色成分ボクセル画像より取得される色成分として算出するようにしていることを特徴とする。
また、本開示のボリュームレンダリング装置は、
前記レンダリング手段は、
前記色成分ボクセル画像で構成される3Dテクスチャ画像を生成する3Dテクスチャ登録手段と、
前記3Dテクスチャ画像に対して所定の座標変換を行って変換後3Dテクスチャ画像を生成する座標変換手段と、
3次元空間のXY座標面上の四角形をZ軸方向に並べ、前記各四角形の4頂点の各3次元座標を前記変換後3Dテクスチャ画像の所定の4箇所の各3次元座標に対応付けた積層四角形を設定する積層四角形設定手段と、
所定の視点からZ軸方向に平行な視線上の前記積層四角形上のの3次元座標に対応する前記変換後3Dテクスチャ画像のボクセルの(R,G,B)で構成される色成分を当該ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られた色成分を、前記ボリュームレンダリング像の(R,G,B)で構成される画素値として与えるようにしている画素値算出手段と、
を備えていることを特徴とする。
また、本開示のボリュームレンダリング装置は、前記座標変換手段は、
所定の3次元座標系における回転を定義した4×4行列、視野角度、視点位置、クリッピング位置、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む所定の座標変換のパラメータを取得し、
前記3Dテクスチャ画像に対して、前記取得したパラメータを用いた前記所定の座標変換を行って前記変換後3Dテクスチャ画像を生成するようにしていることを特徴とする。
また、本開示のボリュームレンダリング装置は、前記座標変換手段および前記画素値算出手段は、汎用コンピュータのビデオカードに搭載されているGPUおよびフレームメモリを用いて実行するようにしていることを特徴とする。
また、本開示では、コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラムを提供する。
また、本開示では、コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラムを提供する。
また、本開示では、
対象物に対して所定の間隔で撮影された複数の2次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも、前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像および前記色成分ボクセル画像は、レンダリング手段によりのボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータを提供する。
また、本開示では、
対象物に対して所定の間隔で撮影された複数の2次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像は前記不透明度付色成分ボクセル画像を生成するために用いられ、前記不透明度付色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータを提供する。
本開示によれば、複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理を高速に行うことが可能となる。
本開示の一実施形態に係るボリュームレンダリング装置100のハードウェア構成図である。 本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。 本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。 本実施形態で用いるカラーマップを示す図である。 本開示の一実施形態に係るボリュームレンダリング装置10において作成されるボクセル画像の概念図である。 透明なボクセルの色成分の色補正処理の詳細を示すフローチャートである。 3Dテクスチャマッピングにおける対応付けを示す図である。 3Dテクスチャマッピング方式の処理を行う場合の、レンダリング手段70の構成を示す図である。 本実施形態のレンダリング手段70による投影画面設定の一例を示す説明図である。 3Dテクスチャマッピング方式によるレンダリング処理の詳細を示すフローチャートである。 レイキャスティング方式の処理を行う場合の、レンダリング手段70の構成を示す図である。 レイキャスティング方式によるレンダリング処理の詳細を示すフローチャートである。 座標変換の概念図である。 探索制御マスク作成手段77が探索制御マスクを作成する手順を説明する図である。 探索制御マスク作成手段77が各画素において起点座標を探索する手順を説明するフローチャートである。
以下、本開示の好適な実施形態について図面を参照して詳細に説明する。
<1.装置構成>
図1は、本開示の一実施形態に係るボリュームレンダリング装置100のハードウェア構成図である。本実施形態に係るボリュームレンダリング装置100は、汎用のコンピュータで実現することができ、図1に示すように、CPU(Central Processing Unit)1と、コンピュータのメインメモリであるRAM(Random Access Memory)2と、CPU1が実行するプログラムやデータを記憶するためのハードディスク、SSD(Solid State Drive),フラッシュメモリ等の大容量の記憶装置3と、キーボード、マウス等の指示入力I/F(インターフェース)4と、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力I/F(インターフェース)5と、液晶ディスプレイ等の表示デバイスである表示部6と、グラフィックスに特化した演算処理部であるGPU(Graphics Processing Unit)7と、表示部6に表示する画像を保持するフレームメモリ8と、を備え、互いにバスを介して接続されている。GPU7による演算結果はフレームメモリ8に書き込まれるため、GPU7とフレームメモリ8は、表示部6へのインタフェースを備えたビデオカードに搭載されて汎用のコンピュータにバス経由で装着されていることが多い。
図2は、本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。図2において、10は断層画像読込手段、15はカラーマップ読込手段、20はROIクリッピング設定手段、30はボクセル画像作成手段、40はスムージング手段、50は陰影付加手段、60は透明ボクセル色補間手段、70はレンダリング手段、80はレンダリング像出力手段である。
断層画像読込手段10は、CT、MRI、PETなどの医用画像診断機器により収集および蓄積されたPACSから、記憶媒体や入力部を経由して、複数の断層画像を読み込む手段である。断層画像は、対象物に対して所定の間隔で撮影されて得られたものであり、各画素に信号値が付与された2次元の断層画像である。カラーマップ読込手段15は、図示されていないカラーマップ作成手段により、あらかじめ作成されたカラーマップを記憶媒体や入力部から、カラーマップを読み込む手段である。ROIクリッピング設定手段20は、読み込んだ複数の断層画像のうち、ボクセル画像の作成対象を、関心領域であるROIとして設定する手段である。ボクセル画像作成手段30は、信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルに対して、色成分の値と不透明度を与えることにより不透明度ボクセル画像、色成分ボクセル画像および不透明度付色成分ボクセル画像を作成する手段である。本実施形態では、ボクセル画像作成手段30は、不透明度ボクセル画像作成手段31、色成分ボクセル画像作成手段32、および不透明度付色成分ボクセル画像作成手段33を有しており、不透明度ボクセル画像作成手段31は、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、色成分ボクセル画像作成手段32はボクセル値として色成分の値が定義された色成分ボクセル画像を作成する。不透明度付色成分ボクセル画像作成手段33はボクセル値として色成分の値および不透明度が定義された不透明度付色成分ボクセル画像を作成する。
スムージング手段40は、不透明度ボクセル画像を構成する各ボクセルの不透明度を、ボクセル及びそのボクセルの近傍のボクセルの不透明度の平均値に置き換えることにより、不透明度の平滑化を行う手段である。陰影付加手段50は、色成分ボクセル画像の各ボクセルの(R,G,B)で構成される色成分に対して、そのボクセルに対応する不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、そのボクセルにおける勾配ベクトルを算出し、算出した勾配ベクトルを用いて、陰影値を算出し、色成分(R,G,B)の各値に陰影値を乗算すした値に置き換える手段である。
色補正手段60は、色成分ボクセル画像における最外側であって、対応する不透明度ボクセル画像におけるボクセルの不透明度が0であるボクセル(透明ボクセル)の色成分に対して、当該ボクセルの近傍の不透明度が0でないボクセルに対応する色成分ボクセル画像におけるボクセルの色成分の平均値で置換するような色補正処理を行う色補正手段である。レンダリング手段70は、不透明度ボクセル画像および色成分ボクセル画像、または不透明度付色成分ボクセル画像を用いてカラーのボリュームレンダリング像を生成する手段である。レンダリング手段70は、3Dテクスチャマッピング方式とレイキャスティング方式の2通りのレンダリング処理に対応している。レンダリング像出力手段80は、ボリュームレンダリング像を所定の出力手段に所定の態様で出力する手段である。通常は、表示部6等に表示出力が行われる。
断層画像読込手段10およびカラーマップ読込手段15は、CPU1が補助しながら、主にデータ入出力I/F5において実現される。ROIクリッピング設定手段20は、CPU1が補助しながら、主に指示入力I/F4において実現される。ボクセル画像作成手段30、スムージング手段40、陰影付加手段50、色補正手段60は、CPU1が、記憶装置3に記憶されているプログラムを実行することにより実現される。レンダリング手段70については、3Dテクスチャマッピング方式の場合は、CPU1が補助しながら、主にGPU7においてプログラムを実行することにより実現される。また、レイキャスティング方式の場合は、レンダリング手段70は、CPU1がプログラムを実行することにより実現される。レンダリング像出力手段80は、CPU1が補助しながら、主にフレームメモリ8と表示部6において実現される。
図2に示した各構成手段は、現実には図1に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、CPU、GPU等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、GPUを搭載するタブレットなどの携帯端末や様々な装置に組み込まれたコンピュータも含む。
<2.処理動作>
次に、図1、図2に示したボリュームレンダリング装置の処理動作について説明する。図3は、本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。まず、断層画像読込手段10が、複数の断層画像を読み込む。DICOM形式の複数の断層画像を読み込んだら、ROIクリッピング設定手段20が、ROIクリッピング設定を行う(ステップS10)。ROIとはRegion of Interestの略であり、関心領域を意味する。ここでは、ボリュームレンダリング像およびボクセル画像の作成対象とする範囲を示す。ROIを設定することにより、3次元的に任意の位置で被写体を断裁したボリュームレンダリング像を生成することができ、体表や骨に隠れた臓器や臓器の内部を描出するのに用いられる。ステップS20以降の処理において、所定の範囲にボクセル画像作成対象が限定されるように、ステップS10においてROIを設定する。
読み込んだ各断層画像のX軸方向の左端に対応する座標をXso、X軸方向の右端に対応する座標をXeo、Y軸方向の上端に対応する座標をYso、Y軸方向の下端に対応する座標をYeo、第1スライスの断層画像に対応する座標をZso、最終スライスの断層画像に対応する座標をZeoとすると、Xso≦Xs<Xe≦Xeo、Yso≦Ys<Ye≦Yeo、Zso≦Zs<Ze≦Zeoを満たす[Xs,Xe]、[Ys,Ye]、[Zs,Ze]の直方体で定義される範囲をROIと定義し処理対象として特定する。ステップS10におけるROIクリッピング設定の結果、処理対象の画素数が(Xeo−Xso+1)×(Yeo−Yso+1)×(Zeo−Zso+1)画素から、(Xe−Xs+1)×(Ye−Ys+1)×(Ze−Zs+1)画素に削減されることになる。ROIクリッピング設定手段20によるステップS10のROIクリッピング設定を行うことにより、観察対象の臓器を露出させたボリュームレンダリング像が得られるという効果に加え、処理対象の画素が減って処理負荷を抑え応答性を向上させることができるという二重のメリットがあるため、設定される場合が多いが、必須の処理ではなく省略することも可能である。(観察対象の臓器を描出する方法として、3次元マスクを作成する方法もとられるが、ROIの設定に比べ操作が煩雑になり、処理負荷も増えるため、ROIクリッピング処理は必須に近い。)尚、ステップS10のROIクリッピング設定の段階では、ROIクリッピングを適用する範囲を定義するだけで、具体的なクリッピング処理は、ステップS20以降の各処理で実行される。各々の処理において、ボクセル画像のROI範囲に限定して演算が行われることにより処理負荷が軽減され、ステップS70のレンダリング処理でクリッピング(断裁)されたボリュームレンダリング像が生成される。
次に、ボクセル画像作成手段30が、ボクセル画像作成処理を行う(ステップS20)。ボクセル画像とは、断層画像の各画素が三次元空間にボクセルとして配置されたボクセル構造体である。ステップS20における具体的な処理としては、カラーマップ読込手段15から読み込んだカラーマップを用いて、クリッピング設定後の断層画像のROI範囲に含まれる各画素の信号値に対して対応する値を付与し、ボクセル画像を作成する。本実施形態では、ボクセル画像として、不透明度ボクセル画像、色成分ボクセル画像、不透明度付色成分ボクセル画像の3種を作成する。
図4は、本実施形態で用いるカラーマップを示す図である。図4において、信号値は、断層画像の各画素に記録された信号値であり、R、G、Bは、それぞれ赤、緑、青の色成分であり、αはそのボクセルの表示の程度を規定する不透明度である。図4は、断層画像の信号値が16ビットで記録され、−32768〜32767の値をとる場合のカラーマップである。(CT画像の場合は、水(water)成分を0として−2048から2048の範囲に正規化される場合が多い)。図4に示すように、カラーマップには、断層画像の各画素の信号値に対して、R、G、Bの各色成分と不透明度αが対応付けられている。このようなカラーマップを用いることにより、断層画像の各画素に対応するボクセル画像の各ボクセルに対して、その画素の信号値に対応するR、G、Bの各色成分と不透明度αをボクセル値として与えることによりフルカラーのボリュームレンダリング像を作成することができる。
図4に示したようなカラーマップを用いることにより、断層画像において所定の信号値を有する箇所を、任意の色成分、任意の不透明度で表現することができる。断層画像においては、臓器、器官等の部位に応じて信号値が異なるため、ボリュームレンダリング像において、カラーマップを定義することにより、信号値の相違に基づいて、人為的に、特定の臓器を色分けしたり、特定の器官を透明にして背後に隠れた臓器を露出させたりすることができる。特定の部位の不透明度αを最大値(α=255)に設定すれば、その部位だけが明瞭に表示され、その部位の奥に位置する部位は描出されない。逆に特定の部位の不透明度αを最小値(α=0)に設定すれば、その部位は不可視(透明)になり、その部位の奥に位置する部位が露出される。特定の部位の不透明度αを中間調(0<α<255)に設定すれば、その部位が半透明で表示され、その奥に位置する部位が透かし合成されて表示される。また、色成分R、G、Bとしては、目的とする部位を視認し易くするための任意の値を設定することができる。したがって、カラーマップは、観察対象の部位ごとに設定しておくことができ、同じ断層画像群に対しても、異なるカラーマップを使用することにより、異なるボリュームレンダリング像が得られることになる。すなわち、肺用のカラーマップを用いれば、肺の部分が目立ったボリュームレンダリング像が得られ、心臓用のカラーマップを用いれば、心臓の部分が目立ったボリュームレンダリング像が得られる。ただし、各臓器の信号値分布は互いにオーバーラップしていることもあるため、特定の臓器のみを描出するカラーマップを作成することはできないことが多い。例えば、心臓用のカラーマップでは肋骨・胸骨も同時に描出され、心臓はこれらの骨に隠れてしまうため、ROIクリッピングを設定して肋骨を仮想的に断裁するなどの工夫が必要になる。
本実施形態では、指示入力I/F4を介した操作により、使用中のカラーマップに変更を加えたり、異なるカラーマップを読み込むことが可能となっている。そして、ボリュームレンダリング装置は、変更されたカラーマップまたは新たに読み込まれたカラーマップを参照して、ボリュームレンダリング像を生成する。本実施形態のボリュームレンダリング装置は、ボリュームレンダリング像を高速で生成することが可能であるため、カラーマップの変更に対してリアルタイムにボリュームレンダリング像を更新できる。
ステップS20においては、ボクセル画像作成手段30が、複数の断層画像のXs<x<XeかつYs<y<YeかつZs<z<Zeの範囲に対応する各画素(x,y,z)における信号値を用いてカラーマップを参照し、信号値に対応する色成分であるR、G、Bと、不透明度αの値を取得し、その値を対応するボクセルの値とする。x≦XsまたはXe≦xまたはy≦YsまたはYe≦yまたはz≦ZsまたはZe≦zの範囲のボクセル(x,y,z)の値に対しては、一律にR=G=B=α=0を設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元のボクセル画像が得られる。これにより、本来、ボクセル画像の各ボクセルの値は、R、G、B、αの4つとなる。
本実施形態では、ボクセル画像作成手段30が、不透明度ボクセル画像作成手段31、色成分ボクセル画像作成手段32、不透明度付色成分ボクセル画像作成手段33を有し、ステップS20のボクセル画像作成処理において、不透明度ボクセル画像作成手段31が不透明度αのみを各ボクセルに記録した1ボクセル8ビット形式の不透明度ボクセル画像を作成し、色成分ボクセル画像作成手段32が、色成分R、G、Bを各画素に記録した1ボクセル24ビット形式の色成分ボクセル画像を作成する。また、後述する3Dテクスチャマッピング方式でボリュームレンダリングを行う場合、不透明度付色成分ボクセル画像作成手段33が色成分R、G、Bおよび不透明度αを各画素に記録した1ボクセル32ビット形式の不透明度付色成分ボクセル画像を作成する。その理由は、ボクセル画像をOpenGL(Open SourceのGraphics Libraryで、これに基づいてレンダリング処理を記述するとGPUを制御するプログラムコードが自動生成される)に3Dテクスチャ画像として登録するためにボクセル画像を1ボクセル32ビット形式で作成する必要があるためである。
具体的には、不透明度ボクセル画像作成手段31は、複数の断層画像のXs<x<XeかつYs<y<YeかつZs<z<Zeの範囲に対応する各画素(x,y,z)に対応する信号値を用いてカラーマップを参照し、信号値に対応するαの値を取得し、その値を対応するボクセルの値とする。x≦XsまたはXe≦xまたはy≦YsまたはYe≦yまたはz≦ZsまたはZe≦zの範囲のボクセル(x,y,z)には値として0を設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元の不透明度ボクセル画像が得られる。不透明度ボクセル画像の各ボクセルの値は、上述のようにαのみとなる。
また、色成分ボクセル画像作成手段32または不透明度付色成分ボクセル画像作成手段33は、断層画像のXs<x<XeかつYs<y<YeかつZs<z<Zeの範囲に対応する各画素(x,y,z)に対応する信号値を用いてカラーマップを参照し、信号値に対応するR、G、Bの色成分の値を取得し、それらの値を対応するボクセルの値とする。x≦XsまたはXe≦xまたはy≦YsまたはYe≦yまたはz≦ZsまたはZe≦zの範囲のボクセル(x,y,z)には値としてR=G=B=0を設定する。更に、不透明度付色成分ボクセル画像作成手段33は作成する不透明度付色成分ボクセル画像の全てのボクセルの不透明度に対して0に設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元の色成分ボクセル画像または不透明度付色成分ボクセル画像が得られる。色成分ボクセル画像の各ボクセルの値は、上述のようにR、G、Bの3つとなる。不透明度付色成分ボクセル画像の各ボクセルの値は、上述のようにR、G、B、αの4つとなる(ただし、αは初期状態では全て0に設定されている)。例えば、各成分をそれぞれ8ビットで記録した場合、不透明度ボクセル画像の1ボクセルは8ビットで記録され、色成分ボクセル画像の1ボクセルは24ビットで記録され、不透明度付色成分ボクセル画像の1ボクセルは32ビットで記録される。後述するが、1ボクセル8ビット形式の不透明度ボクセル画像と、1ボクセル24ビット形式の色成分ボクセル画像の組合せは、CPU1がレイキャスティング方式でレンダリング処理を行う場合に適しており、1ボクセル8ビット形式の不透明度ボクセル画像と、1ボクセル32ビット形式の不透明度付色成分ボクセル画像の組合せは、GPU7を用いた3Dテクスチャマッピング方式でレンダリング処理を行う場合に適している。
図5は、不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像の概念図である。図5(a)は、不透明度ボクセル画像を立方体で表現したものであり、図5(b)は、色成分ボクセル画像または不透明度付色成分ボクセル画像を立方体で表現したものである。図5においては、説明の便宜上、ボクセル数を6×6×6に設定している。図5に示すように、不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像は、三次元の各軸方向におけるボクセル数は等しく、両者のボクセルは互いに1対1で対応している。ただし、不透明度ボクセル画像は、1ボクセルに8ビット記録可能であるのに対して、色成分ボクセル画像は、1ボクセルに24ビット記録可能であり、不透明度付色成分ボクセル画像は、1ボクセルに32ビット記録可能である。この記録容量の差が図5においては、ボクセルの大きさとして表現されている。
図5に模式的に示した2つのボクセル画像は、実際には、RAM3等のメモリ上で各ボクセル画像ごとに記録される。したがって、図5(a)に示したように、小さな不透明度ボクセル画像は、メモリ上においても、小さい領域にまとまって記録されることになり、CPU1やGPU7によるアクセス速度が大幅に向上する。
レイキャスティング方式に対応したボクセルデータは、複数の2次元の断層画像の各画素に対応し、カラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体であり、各ボクセルの値として不透明度αが定義された不透明度ボクセル画像と、各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含むボクセル構造体のデータ構造を有している。
3Dテクスチャマッピング方式に対応したボクセルデータは、複数の2次元の断層画像の各画素に対応し、カラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体であり、各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有している。

ボクセル画像として、別体である不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像を作成することにより、不透明度を参照する際、不透明度ボクセル画像のみを参照すればよいことになる。このため、ボリュームレンダリング像の作成過程において、頻繁に行われる不透明度の参照、特に複数の近傍のボクセルの不透明度の参照に要するアクセス時間が大幅に削減される。その結果、ボリュームレンダリング像を高速に作成し、カラーマップの変更等に伴う再表示処理を高速に行うことに寄与する。
次に、スムージング手段40が、スムージング処理を行う(ステップS30)。具体的には、不透明度ボクセル画像のXs<x<XeかつYs<y<YeかつZs<z<Zeの範囲の各ボクセル(x,y,z)の不透明度αの値を、当該ボクセルと近傍のボクセルを用いて平滑化する。近傍のボクセルとしては、例えば、xyz軸の各方向に隣接する26ボクセルを用いることができる。したがって、ボクセル(x,y,z)に対しては、自身も含めてx−1〜x+1、y−1〜y+1、z−1〜z+1に属する27ボクセルを用いて平滑化することになる。平滑化の具体的な手法としては、様々な手法を用いることができるが、本実施形態では、27ボクセルの平均値を対象とするボクセルの値として与えることにより行う。
スムージング処理は、不透明度ボクセル画像のXs<x<XeかつYs<y<YeかつZs<z<Zeの範囲のボクセル(x,y,z)に対して行い、x≦XsまたはXe≦xまたはy≦YsまたはYe≦yまたはz≦ZsまたはZe≦zの範囲のボクセル(x,y,z)については、変更を行わず、元の不透明度α=0が記録されたままとなる。ステップS30において不透明度ボクセル画像の略全体においてスムージング処理を行うことにより、後にボリュームレンダリング像を表示した際に、モアレの発生を抑制することができる。
次に、陰影付加手段50が、陰影付加処理を行う(ステップS40)。これは、所定の照明環境に対応した陰影をボクセル画像に付加する処理で、具体的にはXs≦x≦XeかつYs≦y≦YeかつZs≦z≦Zeの範囲の不透明度ボクセル画像を参照しながら、Xs<x<XeかつYs<y<YeかつZs<z<Zeの範囲の色成分ボクセル画像を更新する処理である。このために、ある平行光源と環境光成分を設定し、付加すべき陰影の計算を行う。具体的には、まず、平行光源の向きを示す単位ベクトルとして光源ベクトル(Lx,Ly,Lz)と、環境光成分Abを設定する。光源ベクトル(Lx,Ly,Lz)、環境光成分Abの数値は、表現したい像の状況に応じて適宜設定することができるが、例えば、(Lx,Ly,Lz)=(0.57735,0.57735,0.57735)、Ab=0.2と設定する。Lx,Ly,Lzは絶対値が1未満の実数値(負値を含む),Abは0以上1以下の実数値である。そして、不透明度ボクセル画像の勾配ベクトル(Gx,Gy,Gz)を以下の〔数式1〕に従った処理を実行することにより算出する。
〔数式1〕
Gx=(Vα(x+1,y,z)−Vα(x−1,y,z))・(Rxy/Rz)
Gy=(Vα(x,y+1,z)−Vα(x,y−1,z))・(Rxy/Rz)
Gz=(Vα(x,y,z+1)−Vα(x,y,z−1))
G=(Gx2+Gy2+Gz21/2
〔数式1〕において、Vα(x,y,z)は不透明度ボクセル画像のボクセル(x,y,z)における不透明度で、Rxyは断層画像の解像度(画素間隔の逆数でmmあたりの画素数で、X方向とY方向は同一)、Rzは断層画像のスライス解像度(断層画像のスライス間隔の逆数で、mmあたりの断層画像のスライス数)、Gは勾配ベクトル(Gx,Gy,Gz)の大きさである。Rxy/RzはZ軸方向変倍率と定義され、〔数式1〕において、GxとGyを算出する式にRxy/Rzを乗ずる代わりに、Gzを算出する式にRz/Rxy、即ちz軸方向変倍率の逆数を乗じてもよい。〔数式1〕に示すように、陰影付加手段50は、不透明度ボクセル画像の当該ボクセルのX軸方向、Y軸方向、Z軸方向の各々2近傍のボクセルの不透明度の差分値を勾配ベクトルのX方向成分、Y方向成分、Z方向成分として算出し、あらかじめ定義されたZ軸方向変倍率に基づいてX方向・Y方向成分またはZ方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出する。さらに、G≧1の場合、以下の〔数式2〕に従った処理を実行して、拡散反射成分のみを含んだ輝度値S(x,y,z)を算出する。S(x,y,z)は、0以上1以下の実数値である。
〔数式2〕
S(x,y,z)=(1−Ab)(|Gx・Lx+Gy・Ly+Gz・Lz|)/G+Ab
一方、〔数式1〕において算出されたGの値がG<1の場合、不透明度の勾配が存在しない均一な領域(背景部の空気中や肺野など)であるか、最外側であると考えられるため、陰影付加を行わず、輝度値S(x,y,z)=0とする。〔数式1〕において、|Gx・Lx+Gy・Ly+Gz・Lz|は、絶対値を示し、“Gx・Lx+Gy・Ly+Gz・Lz”が負値の場合でも、S(x,y,z)が負値にならないようにしている。
そして、算出された輝度値S(x,y,z)を用いて以下の〔数式3〕に従った処理を実行して、色成分ボクセル画像または不透明度付色成分ボクセル画像の各ボクセル値V(x,y,z,c)を補正して、補正後の各ボクセル値V´(x,y,z,c)を得る。
〔数式3〕
V´(x,y,z,c)=S(x,y,z)・V(x,y,z,c)
〔数式3〕において、c=0,1,2の値をとり、それぞれR,G,Bの色成分に対応する。したがって、1色8ビットの場合、3色で24ビットであるので、色成分ボクセル画像の場合は、そのまま記録する。不透明度付色成分ボクセル画像の場合は、c=0,1,2について、〔数式3〕に従った処理を実行した後、さらに、c=3として、以下の〔数式4〕に従い、対応する不透明度ボクセル画像の値を与える処理を実行して、1ボクセル32ビットに情報が記録された各ボクセル値V´(x,y,z,c)を得る。
〔数式4〕
V´(x,y,z,3)=Vα(x,y,z)
なお、数式が繁雑になるのをさけるため、以下では、更新後のV´(x,y,z,c)をV(x,y,z,c)として扱う。
続くステップS50、S60の処理は、3Dテクスチャマッピング方式を用いる場合にのみ行われる。ステップS50、S60の処理は、レイキャスティング方式の場合には行われない。従って、不透明度付色成分ボクセル画像に対して処理が行われ、色成分ボクセル画像は更新されない。
3Dテクスチャマッピング方式の場合、アングル変更によりROIクリッピングの境界面が回転して境界面を構成する各ボクセルが階段状にずれると、境界面を構成する透明なボクセル(R=G=B=α=0)がROI内部の近傍に位置する不透明なボクセル(α>0)により補間され、R、G、B、αの各値が0でない値に変化する。そうすると、境界面の透明なボクセルが可視化されるようになり、ボリュームレンダリング像の境界面に回転角に応じた階段状の周期でモアレ(干渉縞)が発生する。(レイキャスティング方式の場合は、座標変換アルゴリズムの工夫により本問題を回避できる。)このようなモアレ発生を抑止するため、色補正手段60が境界面に位置する透明なボクセルの補正を行う(ステップS50)。ここで、透明なボクセルとは、不透明度ボクセル画像における不透明度αの値が0となるボクセルを意味する。本実施形態では、ボクセル画像として、不透明度ボクセル画像と、不透明度付色成分ボクセル画像の2つが存在し、不透明度ボクセル画像と不透明度付色成分ボクセル画像のx、y、zの3軸方向におけるボクセル数はいずれも等しく、各ボクセル同士が互いに対応付けられている。そのため、不透明度ボクセル画像を参照して、不透明度付色成分ボクセル画像における不透明なボクセルを特定することができる。ステップS50においては、不透明度ボクセル画像は参照されるだけであり、更新は行われない。不透明度ボクセル画像を参照して特定された不透明度付色成分ボクセル画像のボクセルの色成分の値を変更することにより、不透明度付色成分ボクセル画像が更新される。
図6は、透明なボクセルの色成分の色補正処理の詳細を示すフローチャートである。図6に示す処理においては、透明なボクセル、不透明なボクセルの探索は、1ボクセルに8ビットの不透明度αのみが記録された不透明度ボクセル画像を用いるため、不透明度を参照する際、不透明度ボクセル画像のみを参照すればよいことになる。そのため、上述のように、頻繁に行われる不透明度の参照、特に複数の近傍のボクセルの不透明度の参照に要するアクセス時間が大幅に削減される。図6に示す処理では、まず、不透明度ボクセル画像の最外側に位置する透明なボクセルを複数個抽出する(S51)。不透明度ボクセル画像の最外側に位置する透明なボクセルは、x=Xs、x=Xe、y=Ys、y=Ye、z=Zs、z=Zeで特定される。すなわち、x=Xs、x=Xe、y=Ys、y=Ye、z=Zs、z=Zeのいずれかを満たすボクセルが、不透明度ボクセル画像の最外側に位置する透明なボクセルとなる。透明なボクセルは、前述のボクセル画像作成処理(S20)により、x≦XsまたはXe≦xまたはy≦YsまたはYe≦yまたはz≦ZsまたはZe≦zの範囲に存在するが、x<XsまたはXe<xまたはy<YsまたはYe<yまたはz<ZsまたはZe<zの範囲では、26近傍に不透明なボクセルが存在せず、モアレ発生に寄与しないため、処理負荷を削減するため、最外側に位置する透明なボクセルに限定して色補正処理を行う。上述のように、不透明度ボクセル画像と不透明度付色成分ボクセル画像のボクセル数は等しく、各ボクセル同士が互いに対応付けられているため、不透明度付色成分ボクセル画像の最外側に位置する透明なボクセルも特定できることになる。この対応関係から、抽出された複数個のボクセルの中から補正対象ボクセルを1個抽出する(S52)。前述のボクセル画像作成処理(S20)により、最外側に位置するボクセルの値(R、G、B、α)はあらかじめ全て0に設定されている。
次に、抽出された補正対象ボクセルについて、近傍の不透明なボクセルを探索する(S53)。近傍のボクセルとしては、例えば、xyz軸各方向に隣接する26ボクセルを用いることができる。したがって、補正対象ボクセル(x,y,z)に対しては、自身を除いたx−1〜x+1、y−1〜y+1、z−1〜z+1に属する26ボクセルの中からα>0となる不透明なボクセルを探索する。具体的には、近傍の26ボクセルにα>0となる不透明なボクセルが何個あるかをカウントする。ステップS53の処理において、不透明なボクセルが存在した場合、すなわち、近傍の26ボクセルにα>0となる不透明なボクセルがC個(C≧1)であった場合(S54:YES)、以下の〔数式5〕に従った処理を実行することにより、S52で抽出された補正対象ボクセルの色成分の値を、C個の近傍に位置する不透明なボクセルの色成分の値の平均値に置換して更新する(S55)。
〔数式5〕
V(x,y,z,0)=Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0V(x+i,y+j,z+k,0)/C
V(x,y,z,1)=Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0V(x+i,y+j,z+k,1)/C
V(x,y,z,2)=Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0V(x+i,y+j,z+k,2)/C
一方、ステップS53の処理において、近傍に不透明なボクセルが存在しない場合、すなわち、近傍の26ボクセルにα>0となる不透明なボクセルがC個(C=0)であった場合(S54:NO)、抽出された補正対象ボクセルの色成分の値をR,G,B全て0にする(S56)。
続いて、ステップS51において、抽出された全ての透明なボクセルについて、処理を終了したか否かを判定する(S57)。終了していない場合は、ステップS52に戻って、次の補正対象ボクセルを抽出する処理を行う。ステップS52〜S57の処理を繰り返し実行し、抽出された全ての透明なボクセルに対して処理を終了したら、ステップS50の透明なボクセルの色成分の色補正処理を終了する。
ステップS50において透明なボクセルの色成分の色補正処理を終了したら、補正した不透明度付色成分ボクセル画像を3Dテクスチャ画像に登録する(S60)。この際、まず、不透明度付色成分ボクセル画像作成手段33が、補正した不透明度付色成分ボクセル画像の各ボクセルに不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を完成させる。すなわち、不透明度付色成分ボクセル画像は、1ボクセルを32ビット形式とし、既に24ビットにR、G、Bの色成分が記録されているので、各ボクセルに対応する不透明度ボクセル画像の不透明度αを8ビットで記録する。なお、〔数式4〕に示したように、既にステップS40において、1ボクセル32ビットに情報が記録された各ボクセル値を生成している場合は、ここでは行う必要はない。ステップS40において、不透明度付色成分ボクセル画像に不透明度ボクセル画像の不透明度αが記録されていない場合には、ステップS60において、〔数式4〕に従った処理を実行して、不透明度αを8ビットで記録し、不透明度付色成分ボクセル画像を完成させる。
そして、レンダリング手段70が、3Dテクスチャマッピング方式を実行する際に用いられる3Dテクスチャ画像として不透明度付色成分ボクセル画像を登録する。
図7は3Dテクスチャマッピングにおける対応付けを示す図である。図7(a)は、テクスチャ座標系における3Dテクスチャマップ、図7(b)は、ワールド座標系で定義される積層四角形を示す。積層四角形を構成する各四角形の4頂点には、3Dテクスチャ画像の4ボクセルが対応付られており、図7のように回転がかかっていない状態では、各四角形はテクスチャマップの基になっている断層画像と1対1で対応しており、各四角形の4頂点は断層画像の4隅の画素に対応付られている。
具体的には、図7(b)に示すように、定義された積層四角形に対し、3Dテクスチャマッピングを行う。この場合、ワールド座標系(視点座標系に対応)における各四角形の4頂点の3次元ワールド座標とテクスチャ座標系(ボクセル座標系に対応)における3Dテクスチャ画像の3次元テクスチャ座標とを対応付ける。図7に示すように、(−1,−1,z)、(−1,1,z)、(1,−1,z)、(1,1,z)の4頂点で構成される四角形に対して、ワールド座標の(−1,−1,z)は、テクスチャ座標(0,0,r)に対応付けられている。
後述の通り、アングル変更の指示があると、図7(a)のテクスチャマップがテクスチャ座標系において3次元的に回転した、変換後3Dテクスチャ画像が生成されるため、各四角形と断層画像との対応関係は崩れる。色成分について補正済みの不透明度付色成分ボクセル画像を、OpenGL(グラフィックAPI)を介して3Dテクスチャ画像として登録する。
続いて、レンダリング処理を行う(S70)。レンダリング処理は、3Dテクスチャマッピング方式とレイキャスティング方式の2通りに対応している。まず、3Dテクスチャマッピング方式について説明する。
<2.1.3Dテクスチャマッピング>
図8は、3Dテクスチャマッピング方式の処理を行う場合の、レンダリング手段70の構成を示す図である。図8に示すように、レンダリング手段70は、3Dテクスチャ登録手段71、座標変換手段72、積層四角形設定手段73、画素値算出手段74を有する。上述のように、レンダリング手段70は、3Dテクスチャマッピング方式の場合は、CPU1が補助しながら、主にGPU7においてプログラムを実行することにより実現されるが、特に処理負荷が大きい座標変換手段72および画素値算出手段74は、汎用コンピュータのビデオカードに搭載されているGPUおよびフレームメモリを用いて実行するようにすることが好ましい。
3Dテクスチャマッピング方式の処理においては、まず投影画面を設定する。図9は、本実施形態のレンダリング手段70による投影画面設定の一例を示す説明図である。レンダリング手段70は、レンダリング画像のスクリーンサイズ(縦横画素数、縦横アスペクト比率)を設定する。レンダリング手段70は、平行投影(通常の外観レンダリング)又は透視投影(内視鏡モード)のいずれかを設定する。尚、「レンダリング画像」は「ボリュームレンダリング像」と同義で、以降、「ボリュームレンダリング像」を「レンダリング画像」と表記する場合がある。そして、レンダリング手段70は、透視投影が設定された場合、透視投影パラメータを設定する。透視投影パラメータは、例えば、カメラの視野角度(焦点距離)、視点位置(視点と注視点で構成され、前者は目の位置で後者は見ている対象物上の位置で、双方ともZ軸上に設定される。一般に、注視点はワールド座標系の原点に固定)、クリッピング位置(視点からのZ軸上の距離、近方及び遠方の2箇所)などを含む。なお、クリッピング位置は、近方だけでもよい。図9に示すように、平行投影の場合には、視点からの視線は全てZ軸に平行となり、視点は仮想的に左方向に無限遠に離れた位置にあることを想定しているため、Z軸方向に定義されている全ての積層四角形がレンダリング対象になる。一方、透視投影の場合には、視点からの視野角度に応じて、視線が広がり、視点が積層四角形の内部に入るため、レンダリング対象は近方クリッピングより遠方クリッピング(通常は積層四角形の視点から最も遠い四角形)までの範囲に制限されている。
図10は3Dテクスチャマッピング方式によるレンダリング処理の詳細を示すフローチャートである。まず、図8の3Dテクスチャ登録手段71が、不透明度付色成分ボクセル画像を3Dテクスチャ画像としてOpenGLに登録する。次に、座標変換手段72が、3Dテクスチャ画像に対して所定の座標変換を行って変換後3Dテクスチャ画像を生成する(S71〜S73)。
具体的には、座標変換手段72は、所定の3次元座標系における回転を定義した4×4行列、視野角度、視点位置、クリッピング位置、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む所定の座標変換のパラメータを取得し、3Dテクスチャ画像に対して、取得したパラメータを用いた所定の座標変換を行って変換後3Dテクスチャ画像を生成する。
個々のステップについて説明すると、座標変換手段72は、3Dテクスチャ画像に対するスケーリング及びz方向変倍処理を行う(S71)。スケーリングはxyz軸方向に対して同一の倍率Scaleで拡大または縮小をかけるが、z方向変倍処理はxy軸方向の解像度Rxyとz軸方向の解像度Rzの相違を補正するため、z軸方向のみに指定倍率Scz(=Rxy/Rz)で拡大または縮小をかける。そして、座標変換手段72は、所定の3次元座標系における回転を定義した4×4行列を用いて3Dテクスチャ画像に対する回転処理を行う(S72)。
そして、座標変換手段72は、xyz軸各方向のオフセット値(Xoff,Yoff,Zoff)を用いて3Dテクスチャ画像に対するオフセット処理を行う(S73)。これらの処理(S71〜S73)により、変換後3Dテクスチャ画像が生成される。次に、積層四角形設定手段73は、複数の四角形で構成される積層四角形を設定する(S74)。具体的には、3次元空間のXY座標面上の四角形をZ軸方向に並べた積層四角形を設定する。3Dテクスチャマッピングを設定する場合、積層四角形設定手段73は、複数のxy平面画像の数と同数の四角形をZ軸方向に並べた積層四角形を設定する。
積層四角形における四角形の数は任意に設定することができるが、四角形の数と断層画像の枚数とが一致しない場合、Z軸方向に補間処理が働き、座標変換による座標値の丸め誤差が累積し、ストライプ・格子状のモアレが発生する。そして、図7で示されるように、各四角形の4頂点に対して、対応する変換後3Dテクスチャ画像における4箇所のボクセル座標を定義することにより、変換後3Dテクスチャ画像との対応付けを行う(S75)。定義するボクセル座標は、不透明度付色成分ボクセル画像の座標系ではなく、OpenGLのテクスチャ座標系(R,S,Tの3軸方向に対し0から1の範囲の実数値)に基づいたものである。
具体的には、図7(b)に示すように、定義された積層四角形に対し、3Dテクスチャマッピングを行う。この場合、ワールド座標系における各四角形の4頂点の3次元ワールド座標とテクスチャ座標系における3Dテクスチャ画像の3次元テクスチャ座標とを対応付ける。図7に示すように、(−1,−1,z)、(−1,1,z)、(1,−1,z)、(1,1,z)の4頂点で構成される四角形に対して、ワールド座標の(−1,−1,z)は、テクスチャ座標(0,0,r)に対応付けられている。
次に、画素値算出手段74は、所定の視点からZ軸方向に平行な視線上の最も遠い四角形から視点に最も近い四角形の順にスキャンコンバージョン(四角形内部の塗りつぶし)を行う(S76)。この時、各四角形に貼りついている変換後3Dテクスチャ画像のボクセルの色成分(R,G,B)に基づいて四角形内部を塗りつぶすとともに、同一画素に塗り重ねる際、変換後3Dテクスチャ画像のボクセルの不透明度に基づいてアルファブレンディングを併せて行う。このように、積層四角形のXYZ座標に対応する変換後3Dテクスチャ画像のボクセルの(R,G,B)で構成される色成分(R,G,B)をボクセルの不透明度に基づいて視点から遠い四角形の順にアルファブレンディングして得られた(R,G,B)で構成される色成分を、ボリュームレンダリング像の画素値として与える。これにより、ボリュームレンダリング像が得られる(S76)。
より具体的には、あらかじめレンダリング画像の画素値(RGB値)は全て背景色(例えば、R=G=B=0)で初期化しておく。画素値算出手段74は、視点から最も遠い四角形に対して、貼り付いている変換後3Dテクスチャ画像を参照しながら、スキャンコンバージョンを行う。図9で定義したレンダリング画像に平行投影または透視投影を行い、投影された四角形のワールド座標系におけるXYZ座標の(−1,−1,−1)からX軸方向及びY軸方向に、投影されたレンダリング画像に対して塗り潰す画素の座標を(i,j)とし、レンダリング画像における画素間隔に対応する間隔u(レンダリング画像の1画素に対応するワールド座標の間隔をuとする。例えばu=0.002)でスキャンコンバージョンを行う。スキャンコンバージョンされた、各ワールド座標(−1+iu,−1+ju,−1)(i,jはレンダリング画像の座標値で、例えば0≦i,j≦511の整数)において、各々対応するテクスチャ座標(2iu,2ju,0)を算出し、算出したテクスチャ座標に基づいて変換後3Dテクスチャ画像を参照し色成分の値(RGB値)及び不透明度を取得して、対応するレンダリング画像の座標(i,j)に既に記録されている画素値(RGB値)と取得した不透明度に基づいてアルファブレンディング処理を行い、対応するレンダリング画像の座標(i,j)の画素値を更新する。
このようにして、視点から最も遠い単一の四角形が投影されるレンダリング画像の対応する全ての画素についてアルファブレンディング処理が終了すると、Z座標をv(四角形がZ軸方向に配置されているワールド座標の間隔をvとする。例えば、v=2/Sz)だけ増やし、視点方向に次に近い四角形(−1+iu,−1+ju,−1+v)について同様の処理を繰り返してレンダリング画像を更新する。全ての四角形についてスキャンコンバージョンしてワールド座標(−1+iu,−1+ju,−1+kv)(kは四角形の番号で、0≦k≦Sz−1の整数)に対してアルファブレンディングの処理が終了するとレンダリング画像が完成する。アルファブレンディング処理は、以下の〔数式6〕に従った処理として行われる。
〔数式6〕
R´=R・α+(1−α)・Rb
G´=G・α+(1−α)・Gb
B´=B・α+(1−α)・Bb
ここで、R′、G′、B′は、投影面において更新されるレンダリング画像の画素値(RGB値)である。R、G、Bは、四角形のワールド座標(−1+iu,−1+ju,−1+kv)に対応する変換後3Dテクスチャ画像のボクセル(2iu,2ju,2kv)における色成分(RGB値)であり、重ねる色の値に相当する。αも、四角形のワールド座標(−1+iu,−1+ju,−1+kv)に対応する変換後3Dテクスチャ画像のボクセル(2iu,2ju,2kv)におけるα値であり、重ねる割合を制御する。また、Rb、Gb、Bbは、ワールド座標(−1+iu,−1+ju,−1+kv)に対応するレンダリング画像の座標(i,j)に既に記録されている画素値(RGB値)であり、当該四角形に対して視点と反対側に1つ前に位置する四角形に対して上記〔数式6〕に基づいて算出されたR′、G′、B′の値に一致し、視点から最も遠い四角形に対して算出する場合は背景色(例えば、Rb=Gb=Bb=0)が与えられる。
<2.2.レイキャスティング>
次に、レイキャスティング方式によりステップS70のレンダリング処理を行う場合について説明する。図11は、レイキャスティング方式の処理を行う場合の、レンダリング手段70の構成を示す図である。図11に示すように、レンダリング手段70は、探索制御マスク作成手段77、レイキャスティング手段78を有する。
図12は、レイキャスティング方式によるレンダリング処理の詳細を示すフローチャートである。後述する処理において、探索制御マスク作成手段77、レイキャスティング手段78は、不透明度ボクセル画像より不透明度を取得するごとに、座標変換を行う。その処理に先立ち、レンダリング手段70は、以後のステップにおいて座標変換を実施する際に共通に用いる座標変換パラメータを設定する(ステップS210)。座標変換パラメータの設定は、ボクセルに対して仮想光を照射する際、ボクセル単位に逐次座標変換処理を円滑に行うことができるようにするために、視点を基準とする視点座標系における3次元座標値を基にボクセル画像が定義されているボクセル座標系の3次元座標値に変換し、ボクセル座標系において対応するボクセルの色成分または不透明度を取得するための処理である。座標変換の概念図と座標変換パラメータの具体例については後述する。
次に、探索制御マスク作成手段77が、レンダリング画像の各画素において、仮想光の光強度および当該画素の輝度値(RGB値)を積算する処理を開始するボクセルの起点座標を、レンダリング画像の全画素について算出する。仮想光が通過する全てのボクセルが完全に透明である(不透明度が0である)場合、仮想光の光強度はそのまま維持されてボクセル画像の空間を素通りしてしまうので、レイキャスティング処理は必要ない。そのため、本実施形態においては、視点から見て不透明度が0ではない最初のボクセルの視点座標系におけるz座標を、視線方向に沿って探索する。探索により最初に発見される不透明度が0ではないボクセルのz座標を起点座標と呼ぶことにする。ステップS220においては、レンダリング画像の画素(x,y)ごとに視点座標系のz軸方向(本実施形態ではz軸の負方向)に起点座標を探索する。探索結果はレンダリング画像の画素の座標値(x,y)に対応させて探索制御マスクとして保持しておく。探索制御マスクの例については後述する。
レンダリング画像の各画素(x,y)は、2次元座標系で定義されている。これに対して、ボクセルの座標系は3次元座標系で定義されており、3次元のボクセル座標系を2次元座標系に投影変換させた投影像が求めるレンダリング画像である。しかし、レンダリング画像を算出するにあたっては、レンダリング画像を視点座標系という3次元座標系の所定のz座標(本実施形態ではz軸方向の上限値)に配置し、レンダリング画像の各画素(x,y)に対してz座標を付加しながら、3次元の視点座標系を3次元のボクセル座標系に逆投影変換させながら、各画素(x,y)の輝度値を算出する方法をとる。前述の座標変換パラメータは、逆方向に投影変換を行うことを前提に設定されており、レイキャスティング方式における座標変換は、逆方向に投影変換を行うものとする。(一方、前述の3Dテクスチャマッピング方式における座標変換は、GPUを用いて順方向に投影変換を行う方法をとっている)。視点座標系においては、同一の座標(x,y)に対して視線方向(z軸負方向)に複数個のボクセルが連続的に配置されていると想定できる。各画素の輝度値を算出するにあたり、視点座標系において所定のz座標の位置よりz方向に仮想光を投射し、仮想光が通過する各ボクセルに対して座標変換を行い、3次元のボクセル座標系における対応する色成分ボクセル画像のボクセルの色成分の値と不透明度ボクセル画像のボクセルの不透明度を取得することになる。前記所定のz座標は、探索制御マスク作成手段77により事前に算出された探索制御マスクより取得でき、探索制御マスク作成手段77においても座標変換が行われ、前記仮想光が通過する各ボクセルに対する座標変換を含め、ステップS210で算出した座標変換パラメータを用いることができる。
ステップS220においては、不透明度が0ではないボクセルを探索するので、ボクセルが有する色成分を参照する必要はない。したがって、探索制御マスク作成手段77は、ステップS220において不透明度ボクセル画像のみを参照し、色成分ボクセル画像は参照しない。座標変換処理は、レンダリング画像の各画素(x,y)に対応する視点座標系の単一の座標(x,y,z)のボクセルに対して、ボクセル画像が定義されている3次元のボクセル座標系における対応する座標(x’,y’,z’)のボクセルの色成分の値(RGB)および不透明度を取得する処理であるが、座標値(x’,y’,z’)は実数値で端数をもつため、座標値(x’,y’,z’)の8近傍の整数の座標値に対応する各ボクセルの色成分の値(RGB)および不透明度を補間する演算処理を必要とする。色成分ボクセル画像の参照を行なわずに不透明度ボクセル画像のみを参照する方法をとることにより、座標変換処理の演算負荷が1/4に削減される。
レイキャスティング手段78は、レンダリング画像の各画素(x、y)において、ステップS220で探索した起点のz座標を起点として、視点座標系においてz負方向に仮想光を投射し、仮想光が通過する各ボクセルに対して3次元のボクセル座標系における対応する不透明度ボクセル画像のボクセル不透明度と色成分ボクセル画像のボクセルの色成分を用いて仮想光の光強度および当該画素の輝度値(RGB値)を積算することにより累積輝度値を得て、レンダリング画像の各画素(x,y)の画素値を算出する。ステップS230においても、ステップS210で算出した座標変換パラメータを用いて座標変換を行い、視点座標系の各ボクセルに対してボクセル座標系における対応するボクセルの色成分の値と不透明度の双方を取得する必要がある。座標変換処理はステップS230においても視点座標系のボクセルを参照するごとに実施する。
図13は、座標変換の概念図である。レンダリング画像は視点から見た画像であるので、レンダリング画像の各画素(x,y)の基準となる視点座標系は必ずしもボクセル座標系とは一致していない。そこでレイキャスティング手段78は、ボクセル座標系に定義されているボクセル画像を視点座標系に変換する必要がある。しかし、例えば、512×512画素のスライス画像が256枚で構成されるボクセル画像を視点座標系に変換すると、後述するZ方向変倍率を2.0として、x:512×y:512×z:512ボクセルの視点座標系に変換されたボクセル画像を作成する必要があり、512の3乗回の座標変換が必要になる。これに対して、起点座標の探索を行う際は、不透明度が0でないボクセルが即座に見つかれば、z方向に後続するボクセルに対しては参照する必要が無く、レイキャスティング処理を行う際は、仮想光の光強度が所定の値以下に減衰すれば積算処理を打ち切ることができ、z方向に後続するボクセルに対しては参照する必要が無い。即ち、視点座標系に変換された512の3乗個のボクセルの大半は参照されないため、ボクセル画像の全てのボクセルに対して座標変換を行って保持する必要は無い。
図13(b)に示されるような視点座標系に座標変換されたボクセル画像を生成せず、視点座標系を基準にして、図13(b)の下方向の矢印で示される仮想光が通過して参照されるボクセルに限定して、その都度、ボクセル画像が定義されているボクセル座標系に逆方向に座標変換処理を実行させるようにした。参照されないボクセルに対しては座標変換処理が実行されないため、あらかじめボクセル座標系から視点座標系に変換された全てのボクセル画像を作成した上で、起点座標探索とレイキャスティング処理を行う公知の方法に比べ、3次元のボクセル画像を保持するメモリが不要になるとともに、座標変換の回数を削減することができ、メモリアクセス負荷および演算負荷を抑制することができる。
座標変換を実施する際には、様々な座標変換パラメータを用いる。視点座標系とボクセル座標系の位置関係が同じであれば、座標変換パラメータも同じであると考えられる。即ち、探索制御マスク作成手段77およびレイキャスティング手段78において、視点座標系で参照される全てのボクセルに対して、ボクセル座標系に座標変換を実施するための座標変換パラメータは同一である。そこでレンダリング手段70は、ステップS210において座標変換パラメータをあらかじめ算出し、以後のステップにおいてはその座標変換パラメータを共通の座標変換パラメータとして流用する。座標変換パラメータとしては例えば以下のようなものが挙げられる。
・所定の3次元座標系における回転を定義した3×3行列(逆方向に投影変換が行われるため、指示入力I/F4により指示され定義された3×3行列の逆行列)
・XYZ軸方向のオフセット値:Xoff、Yoff、Zoff(単位:ボクセル)
・拡大又は縮小倍率:ScaleXYZ各軸について同じ値を用いる。
・Z方向変倍率:Scz=Rxy/Rz、XY方向の解像度RxyとZ方向の解像度Rzの間の比率
図14は、ステップS220において探索制御マスク作成手段77が探索制御マスクを作成する手順を説明する図である。探索制御マスク作成手段77は、レンダリング画像の画素(x,y)ごとに起点座標を記述した探索制御マスクを作成する。起点座標とは、視点座標系において、視点(z=上限値)からボクセルをz軸負方向(z>0)に探索して最初に見つかった不透明度が0でない値をもつボクセルの視点座標系におけるz座標値(正また0の値)である。探索した結果、不透明度が0でない値をもつボクセルが見つからなかった場合、即ちz方向の末端まで全てのボクセルが透明な場合、起点座標として負値(−1)を設定する。
レンダリング画像の全ての画素の座標(x,y)について、始めに仮想光を投射する起点座標を探索する必要があるが、この探索処理は座標(x,y)ごとに視点座標系のz軸方向の複数のボクセルの不透明度を参照する必要があり、各ボクセルの不透明度を取得するために座標変換処理を実行して対応するボクセル座標系の複数のボクセルの不透明度の値を補間する処理を実行するため、演算負荷が比較的大きい。そこで、2次元の探索制御マスクを作成する方法をとることにより、一部の座標に対する起点座標については、近傍の座標において探索された起点座標を流用し、探索処理を省略することができる。本実施形態においては個々の画素に対して実行される起点座標の探索処理の演算負荷を抑制するため、以下の手順により探索制御マスクを作成する。
探索制御マスク作成手段77は、まずレンダリング画像のx軸方向およびy軸方向の偶数番目の画素(2m,2n)(m=0,1,・・・、n=0,1,・・・)について、起点座標を探索する。図14(a)の塗り潰した部分がこれに相当する。レンダリング画像の画素数は一般に512×512など偶数個に設定される場合が多く、後述する補間処理では画像末端部の奇数番目の画素の起点座標を設定できないため、図14(a)のように、x軸方向の右末端の画素およびy軸方向の下端の画素についても起点座標を探索する。
探索制御マスク作成手段77は、レンダリング画像のy軸方向の偶数番目の画素の中で、x方向の奇数番目の画素(2m+1,2n)について、先に探索されたx方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素(1,0)については、両隣である画素(0,0)の起点座標と画素(2,0)の起点座標が同じであるか否かをチェックする。ただし、x方向の右末端の画素は奇数番目であっても、図14(a)の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合、対象物は当該画素近傍において同様の形状を有していると推定されるので、間に挟まれている画素の起点座標も両隣の起点座標と同じであるとみなすことができる。また、両隣の起点座標が負値となる背景部の画素である場合、間に挟まれている画素も背景部であるとみなすことができる。そこで探索制御マスク作成手段77は、画素(2m+1,2n)の両隣の起点座標が同じである場合、画素(2m+1,2n)についても同じ起点座標を設定する。図14(b)の縦ハッチング部分がこれに相当する。一方、両隣の起点座標が異なる場合、両隣の偶数番目の画素と同様に、探索制御マスク作成手段77は、起点座標を探索する処理を実行し、探索した起点座標を設定する。
探索制御マスク作成手段77は、レンダリング画像のy方向が奇数番目でx方向は全ての画素(x,2n+1)について、y方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素(0,1)については、両隣である画素(0,0)の起点座標と画素(0,2)の起点座標が同じであるか否かチェックする。ただし、y方向の下末端行の画素は奇数番目であっても、図14(b)の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合は、x方向と同様に、間に挟まれている画素についても同じ起点座標を設定する。そして、両隣の起点座標が異なる場合は、x方向と同様に、探索制御マスク作成手段77は、起点座標を探索する処理を実行し、探索した起点座標を設定する。図14(c)の横ハッチング部分がこれに相当する。
図14では縦横1画素置きに起点座標の探索を行い、間に挟まれている1画素を両隣の画素を基に補間する方法を示したが、これは一例に過ぎず、縦横M(M>1)画素置きに起点座標の探索を行い、間に挟まれているM個の各画素を両隣の画素を基に補間する方法をとることもでき、その場合は演算負荷を更に抑制することができる。
図14においては、xy方向の隣接画素において探索された起点座標を基に一部の起点探索の処理を省略することにより起点座標の設定を高速化する手順を説明した。これに代えてまたは併用して、z方向の起点探索の処理自体を高速化することにより、起点探索の演算負荷を二重に抑制することができる。
探索制御マスク作成手段77は、視点から開始して視線座標系のz方向に沿って各ボクセルの不透明度を参照する。始めに、視点位置(z=上限値)におけるボクセルの不透明度を確認し、不透明度が0でない場合は被写体の表面(切断面)であるため、起点座標はz=上限値で探索打ち切りとなり、演算負荷が小さい。しかし、視点位置(z=上限値)におけるボクセルの不透明度が0である場合(背景部に多い)、z方向に透明なボクセルが連続して存在する可能性が高く、背景部ではz方向の末端部まで全てのボクセルの不透明度が0となり、z方向に連続するボクセルを順次参照する方法をとると、起点座標が負値であることを決定するためにz方向の末端部まで全てのボクセルに対して座標変換を行いながらボクセルの不透明度を参照する必要があり、膨大な演算負荷を伴ってしまう。そこで、視点位置(z=上限値)におけるボクセルの不透明度が0である場合は、隣接するボクセルを順次参照するのではなく、任意個数のボクセルをスキップしながら不透明度を参照する。例えばz方向に8ボクセルごとに不透明度を参照する。z方向の終端のボクセルに至っても不透明度が0ではないボクセルが見つからなかった場合は、起点座標として負値を設定して探索打ち切りとする。一方、不透明度が0ではない(完全透明ではない)最初のボクセルが見つかった場合は、起点座標を正確に決定するための工程に移る。
探索制御マスク作成手段77は、最初に見つかった不透明ボクセルから視点に向かってz軸正方向に遡り、不透明度が0である最初のボクセルを探索する。このときは視点座標系のz方向に隣接するボクセルの不透明度を1ボクセルごとにスキップ幅を上限として順次参照する。不透明度が0である最初のボクセルが見つかった時点で、その1つ前のボクセル(視点から遠ざかる負方向)の視点座標系におけるz座標を起点座標として、探索制御マスクに格納する。スキップ幅の上限まで遡って、不透明度が0である最初のボクセルが見つからなかった場合は、最初に見つかった不透明ボクセルの視点座標系におけるz座標を起点座標として、探索制御マスクに格納する。以上の手順により、z方向の起点探索を高速化することができる。
探索制御マスク作成手段77は、視点座標系(x,y,z)を基準としてz方向に配置されたボクセルの不透明度を参照することになる。しかし実際に参照するのはボクセル座標系におけるボクセルが有する不透明度であるので、実際のボクセルが有する不透明度を取得するためには、視点座標系からボクセル座標系への座標変換が必要になる。座標変換のためのパラメータは、ステップS210においてあらかじめ算出しておけばよい。座標変換により算出したボクセル座標系の座標値(x’,y’,z’)は実数値になるが、ボクセル座標系におけるボクセルを参照するためには整数値に変換する必要がある。この時、小数点以下を切り捨てて整数化してボクセル座標系における単一のボクセルを参照する方法をとると、レンダリング画像にモアレが発生することが知られているため、算出されたボクセル座標系の実数座標値(x’,y’,z’)に隣接する8近傍の整数座標値のボクセルの不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、不透明度を算出する方法が望ましい。後述するレイキャスティング処理においても同様であるが、レイキャスティング処理においてはボクセルの不透明度だけでなくRGB3値からなる色成分の値も参照する必要があるため、起点座標の探索における座標変換の処理負荷はレイキャスティング処理における座標変換の処理負荷に比べ1/4に抑制できる。
図15は、探索制御マスク作成手段77が各画素において起点座標を探索する手順を説明するフローチャートである。探索制御マスク作成手段77は、各対象画素(x,y)について本フローチャートを実施する。以下図15の各ステップについて説明する。
探索制御マスク作成手段77は、起点座標を探索する対象画素(x,y)、3次元座標(x,y,z)をセットする。z座標の初期値はz=Zs(上限値)とする。Zsは視点のz座標である。
探索制御マスク作成手段77は、3次元座標(x,y,z)について、座標変換を実施して対応する不透明度ボクセル画像のボクセルの不透明度αを算出する。算出手順としては、例えば上述のように隣接するボクセルの不透明度を重み付け加算する手法を用いることができる。この座標変換は第1の座標変換となる。αが0でなければステップS305へ進み、αが0であればステップS303へ進む。
ステップS303において、探索制御マスク作成手段77は、z軸方向に所定個数のボクセルをスキップする。具体的には現在のz座標からm(例えばm=8)減算する。減算した結果、z座標が0以上である場合はステップS302へ戻って同様の処理を繰り返す。z座標が0未満になった場合は、ステップS304へ進む。
ステップS304において、探索制御マスク作成手段77は、現在の対象画素(x,y)に対応する探索制御マスクの値M(x,y)に対して、起点座標が見つからなかった旨を示す値(例えば−1などの負値)をセットして起点座標の探索処理を終了する。
ステップS305に進んだ場合、探索制御マスク作成手段77は、変数iを初期化した後、1だけインクリメントする(S306)。iがmまで到達した場合、または現在のz座標にiを加算すると視点z座標に達する場合は、ステップS308に進み、探索制御マスクの値M(x,y)に対して、現在のz座標にインクリメントする前のiを加算した値をセットする。iがmまで到達しておらず、かつ現在のz座標にiを加算しても視点z座標まで達しない場合は、ステップS307へ進む。
ステップS307において、探索制御マスク作成手段77は、3次元座標(x,y,z+i)について、座標変換を実施して対応する不透明度ボクセル画像のボクセルの不透明度αを算出する。算出手順はステップS302と同じである。この座標変換も第1の座標変換となる。αが0でなければステップS306へ戻ってiをインクリメントして同様の処理を繰り返す。αが0であればステップS308へ進む。
ステップS308において、探索制御マスク作成手段77は、現在の対象画素(x,y)に対応する探索制御マスクの値M(x,y)に対して、ステップS307の1つ手前のz座標(z+i−1)をセットして起点座標の探索処理を終了する。
レイキャスティング手段78は、求めるレンダリング画像の各画素の(x,y)座標に対して探索制御マスクが保持している起点座標を参照して、視点座標系において起点座標よりz方向に仮想光を投射し、仮想光が通過する各ボクセル(x,y,z)に対して‘‘ボクセル座標系における対応するボクセル(x’,y’,z’)の色成分の値と不透明度を用いて仮想光の光強度および当該画素の輝度値(RGB値)をz方向のボクセルごとに積算し、仮想光の光強度が所定の値以下に減衰するか、z方向の終端のボクセルに至る段階まで積算する処理を継続し、最終的に積算された当該画素の輝度値(RGB値)を基にレンダリング画像の当該画素(x,y)の画素値(RGB値)を算出して与える。
レイキャスティング処理の途上で、あるz座標におけるボクセルの不透明度が0である(すなわち透明である)場合がある。透明ボクセルに対しては仮想光の光強度および画素の輝度(RGB値)の積算処理は行われないため、透明ボクセルはスキップし、次の不透明ボクセルを探索する。このときレイキャスティング手段78は、視点座標系のz方向において視点からずれたz>0である途中の透明ボクセルから探索を開始して上記の探索制御マスク作成手段77が起点座標を探索する方法と同様な手法により、不透明度が0でない最初のボクセルを高速に探索することができる。レイキャスティング処理においてはボクセルの不透明度だけでなくRGB3値からなる色成分の値も必要になるが、不透明ボクセルを探索する際は、ボクセルの色成分の値は不要なため、座標変換において不透明度だけを算出すればよく、座標変換の演算負荷を1/4に抑制できる。不透明度が0でないボクセルが見つかると、そのボクセルからレイキャスティング処理を再開し、仮想光の光強度が所定の値以下に減衰するか、z方向の終端のボクセルに至るまでレイキャスティング処理を継続する。このようにして、レイキャスティング処理の途中に存在する透明なボクセルに対して座標変換を伴いながら色成分の値および不透明度を参照する処理をスキップすることにより、レイキャスティング処理を高速化することができる。
レイキャスティング手段78が色成分や不透明度を参照する際には、視点座標系(x,y,z)を基準として対応するボクセル座標系におけるボクセルのこれら値を参照することになる。したがって視点座標系からボクセル座標系への座標変換が必要になる。座標変換パラメータについては座標変換パラメータの設定(S210)で設定したものを用いる。ただし、レイキャスティング処理においてはボクセルの不透明度だけでなくRGB3値からなる色成分も必要になる。そのため、座標変換されたボクセル座標系の実数座標値(x’,y’,z’)に隣接する8近傍の整数座標値に対応するボクセルの色成分と不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、ボクセルの色成分と不透明度を取得する方法をとる。この座標変換は第2の座標変換となる。この場合は、不透明度ボクセル画像と色成分ボクセル画像を参照する必要がある。
<3.N分の1の間引き>
上記ボリュームレンダリング装置では、ボクセル画像作成手段30が、複数の断層画像の総画素数と同数のボクセルによるボクセル画像を作成するようにしたが、ボクセルを間引いてボクセル数を少なくしたボクセル画像を作成するようにしてもよい。その場合、不透明度ボクセル画像作成手段31は、複数の断層画像の二次元のXY軸方向、断層画像と直交するZ軸方向の三軸の各方向において、N画素おきに対応付けて三次元に配置した各ボクセルに対して、そのボクセルの信号値を不透明度αに置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する.また、色成分ボクセル画像作成手段32または不透明度付色成分ボクセル画像作成手段33は、複数の断層画像の二次元のXY軸方向、断層画像と直交するZ軸方向の三軸の各方向において、N画素おきに対応付けて三次元に配置した各ボクセルに対して、当該ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像または不透明度付色成分ボクセル画像を作成する。例えば、N=2とした場合、XYZ方向を各々1/2に間引くことができるため、処理するボクセル数が1/8となり、高速な処理を行うことができる。これにより、利用者が、指示入力I/F4を介して対話的に、カラーマップを連続的に切り替えた場合であっても、画質が粗いボリュームレンダリング像を順次表示させて、カラーマップの更新に追従させながらボリュームレンダリング像を表示することができる。
<4.断層画像の階調落とし>
上記実施形態では、各画素が16ビットの信号値を記録した断層画像をそのまま用いてボクセル画像を作成するようにしたが、断層画像を8ビットに階調変換して階調低下画像を作成した後、ボクセル画像を作成するようにしてもよい。断層画像を8ビットに階調変換することにより、各画素の処理における負荷を削減することができ、ボリュームレンダリング像の高速な生成に寄与する。
この場合、断層画像階調変換手段を更に設け、断層画像読込手段10が単一の断層画像を読み込むごとに、階調変換を行う。具体的には、一連のDICOM形式の断層画像Do(x,y,z)(−32768≦Do(x,y,z)≦32767,0≦x≦Sx−1,0≦y≦Sy−1,0≦z≦Sz−1; 解像度:Rxy,Rz)の中で、Sz/2番目の中間の断層画像Do(x,y,z/2)を最初に読み込み、同断層画像における全ての画素の最小値をDmin、最大値をDmaxとする。DminとDmaxは全ての断層画像より最小値と最大値を求める方法をとっても良いが、中間の断層画像だけで決定する方法をとると、大容量の16ビットの原断層画像の全てのスライス分を読み込んでメモリ上に保持することなく、階調低下画像である階調圧縮断層画像D8(x,y,z)だけをメモリ上に直接構築できる。続いて、以下の〔数式7〕に従った処理を実行して、下限値Lmin および上限値Lmaxを算出する。
〔数式7〕
下限値Lmin=(Dmax−Dmin)・γ+Dmin
上限値Lmax=(Dmax−Dmin)・(1−γ)+Dmin
〔数式7〕において、γは階調圧縮画像のコントラスト調整幅で、0に近いほどコントラストが増大するが輝度が小さくなる。γは0.3未満の実数値であるが、通常はγ=0.1に設定する。レンダリング画像の輝度コントラストはカラーマップなど種々の設定で調整できるので、γは固定で良い。そして、下限値Lminおよび上限値Lmaxの範囲を256段階に圧縮して階調圧縮断層画像D8(x,y,z)を得る。具体的には、階調圧縮断層画像D8(x,y,z)(0≦D8(x,y,z)≦255,0≦x≦Sx−1,0≦y≦Sy−1,0≦z≦Sz−1; 解像度:Rxy,Rz)としたとき、以下の〔数式8〕に従った処理を実行して、階調圧縮断層画像D8(x,y,z) を算出する。
〔数式8〕
D8(x,y,z)=(Do(x,y,z)−Lmin)・255/(Lmax−Lmin)
D8(x,y,z)>255の場合:D8(x,y,z)=255、D8(x,y,z)<0の場合:D8(x,y,z)=0
〔数式8〕の第2式に示すように、信号値が上限値Lmaxを超える場合は255、下限値Lminを下回る場合は0として、下限値Lminから上限値Lmaxの範囲を0から255に線形変換する。なお、階調圧縮断層画像を用いてボクセル画像を作成する場合、図4のカラーマップに代えて、階調低下画像用のカラーマップとして、8ビットの信号値用のカラーマップを用意しておく。具体的には、信号値0〜255に対応付けてR,G,B、αが記録されたカラーマップを用いる。
以上、本開示の好適な実施形態について説明したが、本開示は上記実施形態に限定されず、種々の変形が可能である。本開示の趣旨を逸脱しない範囲で変更された態様は、本開示の技術的範囲に含まれる。
1・・・CPU(Central Processing Unit)
2・・・RAM(Random Access Memory)
3・・・記憶装置
4・・・指示入力I/F
5・・・データ入出力I/F
6・・・表示部
7・・・GPU
8・・・フレームメモリ
10・・・断層画像読込手段
15・・・カラーマップ読込手段
20・・・ROIクリッピング設定手段
30・・・ボクセル画像作成手段
40・・・スムージング手段
50・・・陰影付加手段
60・・・色補正手段
70・・・レンダリング手段
71・・・3Dテクスチャ登録手段
72・・・座標変換手段
73・・・積層四角形設定手段
74・・・画素値算出手段
77・・・探索制御マスク作成手段
78・・・レイキャスティング手段
80・・・レンダリング像出力手段
100・・・ボリュームレンダリング装置

Claims (19)

  1. 対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の2次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
    信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
    前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
    前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
    を備えていることを特徴とするボリュームレンダリング装置。
  2. 前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
    前記レンダリング手段は、スムージング処理された不透明度ボクセル画像を用いてボリュームレンダリング像を生成することを特徴とする請求項1に記載のボリュームレンダリング装置。
  3. 対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の2次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
    信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
    前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
    前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、ボクセル値として不透明度及び色成分の値が定義された不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段と、
    前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
    を備えていることを特徴とするボリュームレンダリング装置。
  4. 前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
    前記不透明度付色成分ボクセル画像作成手段は、スムージング処理された不透明度ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする請求項3に記載のボリュームレンダリング装置。
  5. 前記色成分ボクセル画像における最外側であって、当該色成分ボクセル画像に対応する不透明度ボクセル画像におけるボクセルの不透明度が0であるボクセルの色成分の値を、前記不透明度ボクセル画像における不透明度が0であるボクセルの近傍の不透明度が0でないボクセルに対応する前記色成分ボクセル画像におけるボクセルの色成分の平均値に置き換える色補正処理を行う色補正手段を更に備え、
    前記不透明度付色成分ボクセル画像作成手段は、色補正処理された色成分ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする請求項3または請求項4に記載のボリュームレンダリング装置。
  6. 前記色成分ボクセル画像の各ボクセルの色成分の値を、
    当該ボクセルに対応する前記不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、当該ボクセルにおける勾配ベクトルを算出し、
    算出した勾配ベクトル及び所定の光源ベクトルに基づいて陰影値を算出し、
    前記色成分の値に前記陰影値を乗算した値に置き換える陰影付加手段を更に備えることを特徴とする請求項1から請求項5のいずれか一項に記載のボリュームレンダリング装置。
  7. 前記陰影付加手段は、前記勾配ベクトルを算出するにあたり、前記不透明度ボクセル画像の当該ボクセルのX軸方向、Y軸方向、Z軸方向の各々2近傍のボクセルの不透明度の差分値を前記勾配ベクトルのX方向成分、Y方向成分、Z方向成分として算出し、あらかじめ定義されたZ軸方向変倍率に基づいて前記Z方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出することを特徴とする請求項6に記載のボリュームレンダリング装置。
  8. 前記不透明度ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、N画素おきに対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成するものであり、
    前記色成分ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、N画素おきに対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成するものであることを特徴とする請求項1から請求項7のいずれか一項に記載のボリュームレンダリング装置。
  9. 前記断層画像が16ビットの信号値をもつ画像の場合、前記複数の断層画像の全てまたは特定の断層画像を基に信号値の最大値Dmaxと最小値Dminを算出し、最大値Dmaxより(最大値Dmax−最小値Dmin)×γ(γは0.3未満の実数値)だけ減じた値を上限値Lmaxとし、最小値に(最大値Dmax−最小値Dmin)×γだけ加算した値を下限値Lminとするとき、信号値が上限値Lmaxを超える場合は255、下限値Lminを下回る場合は0、下限値Lminから上限値Lmaxの範囲を0から255に線形変換することにより、信号値を8ビットに変換した階調低下画像を作成する断層画像階調変換手段を更に設け、
    前記不透明度ボクセル画像作成手段は、信号値に対して色成分の値と不透明度を対応付けて定義された階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、
    前記色成分ボクセル画像作成手段は、前記階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成することを特徴とする請求項1から請求項8のいずれか一項に記載のボリュームレンダリング装置。
  10. 前記レンダリング手段は、
    前記不透明度ボクセル画像を前記生成するボリュームレンダリング像に投影変換した座標系を視点座標系とすると、視点座標系において、前記ボリュームレンダリング像の各画素(x,y)よりZ軸方向に沿って、Z軸の上限値より下限値に向けて、視点座標系の各ボクセル座標(x,y,z)ごとに第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得しながら、不透明度が0でない不透明ボクセルを探索し、最初に見つかった不透明度が0でない不透明ボクセルの視点座標系におけるZ座標を、前記ボリュームレンダリング像の各画素(x,y)ごとに記録した探索制御マスクを作成する探索制御マスク作成手段と、
    前記ボリュームレンダリング像の各画素(x,y)に対して、前記探索制御マスクよりZ座標を取得し、取得したZ座標よりZ軸の下限値に向けてZ軸方向に沿って、所定の光強度をもつ仮想光を照射する際、視点座標系の各ボクセル座標(x,y,z)ごとに第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得し、不透明度が0でないボクセルが見つかった場合、当該座標(x,y,z)に対して第2の座標変換を行って前記色成分ボクセル画像より(R,G,B)で構成される色成分を取得し、当該ボクセルの不透明度を基に前記光強度を減衰させるとともに、当該ボクセルの不透明度及び色成分、前記減衰させた光強度に基づいて累積輝度値を算出する処理を繰り返し、算出された累積輝度値を基に、前記ボリュームレンダリング像の当該画素(x,y)に対応する(R,G,B)で構成される画素値として与えるようにしているレイキャスティング手段と、を備えていることを特徴とする請求項1または請求項2に記載のボリュームレンダリング装置。
  11. 前記探索制御マスク作成手段および前記レイキャスティング手段は、前記第1の座標変換を行って前記不透明度ボクセル画像より不透明度を取得する際、
    所定の3次元座標系における回転を定義した3×3行列、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
    前記視点座標系のボクセルの整数値の座標(x,y,z)を、前記パラメータに基づいて前記不透明度ボクセル画像の座標系に変換を行って、前記不透明度ボクセル画像の実数値の座標(X,Y,Z)を算出し、
    算出した実数値の座標(X,Y,Z)の近傍の複数の整数値の座標(x’,y’,z’)座標に対応する前記不透明度ボクセル画像の複数のボクセルを特定し、
    特定した複数のボクセルの不透明度に基づいて前記不透明度ボクセル画像より取得される不透明度として算出するようにしていることを特徴とする請求項10に記載のボリュームレンダリング装置。
  12. 前記レイキャスティング手段は、前記第2の座標変換を行って前記色成分ボクセル画像より色成分を取得する際、
    所定の3次元座標系における回転を定義した3×3行列、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
    前記視点座標系のボクセルの整数値の座標(x,y,z)を、前記パラメータに基づいて前記色成分ボクセル画像の座標系に変換を行って、前記色成分ボクセル画像の実数値の座標(X,Y,Z)を算出し、
    算出した実数値の座標(X,Y,Z)の近傍の複数の整数値の座標(x’,y’,z’)座標に対応する前記色成分ボクセル画像の複数のボクセルを特定し、
    特定した複数のボクセルの色成分に基づいて前記色成分ボクセル画像より取得される色成分として算出するようにしていることを特徴とする請求項10に記載のボリュームレンダリング装置。
  13. 前記レンダリング手段は、
    前記色成分ボクセル画像で構成される3Dテクスチャ画像を生成する3Dテクスチャ登録手段と、
    前記3Dテクスチャ画像に対して所定の座標変換を行って変換後3Dテクスチャ画像を生成する座標変換手段と、
    3次元空間のXY座標面上の四角形をZ軸方向に並べ、前記各四角形の4頂点の各3次元座標を前記変換後3Dテクスチャ画像の所定の4箇所の各3次元座標に対応付けた積層四角形を設定する積層四角形設定手段と、
    所定の視点からZ軸方向に平行な視線上の前記積層四角形上の3次元座標に対応する前記変換後3Dテクスチャ画像のボクセルの(R,G,B)で構成される色成分を当該ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られた色成分を、前記ボリュームレンダリング像の(R,G,B)で構成される画素値として与えるようにしている画素値算出手段と、
    を備えていることを特徴とする請求項3から請求項5のいずれか一項にボリュームレンダリング装置。
  14. 前記座標変換手段は、
    所定の3次元座標系における回転を定義した4×4行列、視野角度、視点位置、クリッピング位置、xyz軸各方向のオフセット値、xyz軸方向の拡大又は縮小倍率、z軸方向変倍率を含む所定の座標変換のパラメータを取得し、
    前記3Dテクスチャ画像に対して、前記取得したパラメータを用いた前記所定の座標変換を行って前記変換後3Dテクスチャ画像を生成するようにしていることを特徴とする請求項13にボリュームレンダリング装置。
  15. 前記座標変換手段および前記画素値算出手段は、汎用コンピュータのビデオカードに搭載されているGPUおよびフレームメモリを用いて実行するようにしていることを特徴とする請求項14にボリュームレンダリング装置。
  16. コンピュータを、
    信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
    前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
    前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
    として機能させるためのプログラム。
  17. コンピュータを、
    信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
    前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
    前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段、
    前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
    として機能させるためのプログラム。
  18. 対象物に対して所定の間隔で撮影された複数の2次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
    前記ボクセルデータは、少なくとも、前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
    前記不透明度ボクセル画像および前記色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータ。
  19. 対象物に対して所定の間隔で撮影された複数の2次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
    前記ボクセルデータは、少なくとも前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
    前記不透明度ボクセル画像は前記不透明度付色成分ボクセル画像を生成するために用いられ、前記不透明度付色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータ。
JP2018101171A 2018-05-28 2018-05-28 ボリュームレンダリング装置 Active JP7131080B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018101171A JP7131080B2 (ja) 2018-05-28 2018-05-28 ボリュームレンダリング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018101171A JP7131080B2 (ja) 2018-05-28 2018-05-28 ボリュームレンダリング装置

Publications (2)

Publication Number Publication Date
JP2019207450A true JP2019207450A (ja) 2019-12-05
JP7131080B2 JP7131080B2 (ja) 2022-09-06

Family

ID=68767814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018101171A Active JP7131080B2 (ja) 2018-05-28 2018-05-28 ボリュームレンダリング装置

Country Status (1)

Country Link
JP (1) JP7131080B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113538016A (zh) * 2021-08-05 2021-10-22 深圳市电通材料技术有限公司 物品注册、验证、身份辨识方法、设备及可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043395A (ja) * 1999-07-15 2001-02-16 Mitsubishi Electric Inf Technol Center America Inc ボリュームレンダリング装置および方法
JP2002539568A (ja) * 1999-03-18 2002-11-19 ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク 3次元仮想細分化および検査を実施するシステムおよび方法
JP2004005567A (ja) * 2002-04-09 2004-01-08 Sony Computer Entertainment America Inc コンピュータディスプレイ画像を生成する方法ならびに画像データを生成するコンピュータ処理システムおよびグラフィックスプロセッサ
JP2005087602A (ja) * 2003-09-19 2005-04-07 Ziosoft Inc 医用画像生成装置および方法、ならびに、プログラム
JP2008086658A (ja) * 2006-10-04 2008-04-17 Fujifilm Corp 画像表示装置および画像表示プログラム
JP2008259698A (ja) * 2007-04-12 2008-10-30 Fujifilm Corp 画像処理方法および装置並びにプログラム
JP2009289144A (ja) * 2008-05-30 2009-12-10 Univ Of Tokyo ボリュームデータ可視化装置および方法ならびにプログラム
JP2013517845A (ja) * 2010-01-22 2013-05-20 ザ リサーチ ファウンデーション オブ ザ ステート ユニバーシティ オブ ニューヨーク 前立腺の視覚化およびがん検出のためのシステムおよび方法
US20140330121A1 (en) * 2013-05-06 2014-11-06 Samsung Electronics Co., Ltd. Ultrasonic imaging apparatus and control method thereof

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002539568A (ja) * 1999-03-18 2002-11-19 ザ リサーチ ファウンデーション オブ ステイト ユニヴァーシティ オブ ニューヨーク 3次元仮想細分化および検査を実施するシステムおよび方法
JP2001043395A (ja) * 1999-07-15 2001-02-16 Mitsubishi Electric Inf Technol Center America Inc ボリュームレンダリング装置および方法
JP2004005567A (ja) * 2002-04-09 2004-01-08 Sony Computer Entertainment America Inc コンピュータディスプレイ画像を生成する方法ならびに画像データを生成するコンピュータ処理システムおよびグラフィックスプロセッサ
JP2005087602A (ja) * 2003-09-19 2005-04-07 Ziosoft Inc 医用画像生成装置および方法、ならびに、プログラム
JP2008086658A (ja) * 2006-10-04 2008-04-17 Fujifilm Corp 画像表示装置および画像表示プログラム
JP2008259698A (ja) * 2007-04-12 2008-10-30 Fujifilm Corp 画像処理方法および装置並びにプログラム
JP2009289144A (ja) * 2008-05-30 2009-12-10 Univ Of Tokyo ボリュームデータ可視化装置および方法ならびにプログラム
JP2013517845A (ja) * 2010-01-22 2013-05-20 ザ リサーチ ファウンデーション オブ ザ ステート ユニバーシティ オブ ニューヨーク 前立腺の視覚化およびがん検出のためのシステムおよび方法
US20140330121A1 (en) * 2013-05-06 2014-11-06 Samsung Electronics Co., Ltd. Ultrasonic imaging apparatus and control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113538016A (zh) * 2021-08-05 2021-10-22 深圳市电通材料技术有限公司 物品注册、验证、身份辨识方法、设备及可读存储介质

Also Published As

Publication number Publication date
JP7131080B2 (ja) 2022-09-06

Similar Documents

Publication Publication Date Title
US7424140B2 (en) Method, computer program product, and apparatus for performing rendering
US7808514B2 (en) Multiplanar reformatting visualization with multiple scrolling speeds
US8659602B2 (en) Generating a pseudo three-dimensional image of a three-dimensional voxel array illuminated by an arbitrary light source by a direct volume rendering method
US20050237336A1 (en) Method and system for multi-object volumetric data visualization
JPH08138078A (ja) 画像処理装置
US8040352B2 (en) Adaptive image interpolation for volume rendering
JP2006055213A (ja) 画像処理装置、及びプログラム
JP4122314B2 (ja) 投影画像処理方法、投影画像処理プログラム、投影画像処理装置
CN111210898B (zh) 一种对dicom数据进行处理的方法和装置
JP7131080B2 (ja) ボリュームレンダリング装置
JP7003635B2 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
JP7013849B2 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
JP6418344B1 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
US9035945B1 (en) Spatial derivative-based ray tracing for volume rendering
JP7223312B2 (ja) ボリュームレンダリング装置
JP6443574B1 (ja) レイキャスティングプログラム、探索制御データ、探索制御データ生成方法、レイキャスティング装置
JP7095409B2 (ja) 医用画像処理装置、医用画像処理方法、プログラム、及びmpr像生成方法
JP7206846B2 (ja) ボリュームレンダリング装置
JP7180123B2 (ja) 医用画像処理装置、医用画像処理方法、プログラム、及びデータ作成方法
JP6436258B1 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
JP7283603B2 (ja) コンピュータプログラム、画像処理装置及び画像処理方法
JP7206617B2 (ja) 断層画像表示用カラーマップの最適化装置およびボリュームレンダリング装置
US20230326027A1 (en) Image data processing apparatus and method
JP7167699B2 (ja) ボリュームレンダリング装置
JP2022087789A (ja) 医用画像処理装置および医用画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

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: 20220726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220808

R150 Certificate of patent or registration of utility model

Ref document number: 7131080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150