(57)【要約】      （修正有）【課題】複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理を高速に行うことが可能なボリュームレンダリング装置を提供する。【解決手段】信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、カラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、不透明度ボクセル画像と色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段７０を有する。【選択図】図２
2019207450.tif 000002
【特許請求の範囲】
【請求項１】
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の２次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置。
【請求項２】
前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
前記レンダリング手段は、スムージング処理された不透明度ボクセル画像を用いてボリュームレンダリング像を生成することを特徴とする請求項１に記載のボリュームレンダリング装置。
【請求項３】
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の２次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、ボクセル値として不透明度及び色成分の値が定義された不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段と、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置。
【請求項４】
前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、スムージング処理された不透明度ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする請求項３に記載のボリュームレンダリング装置。
【請求項５】
前記色成分ボクセル画像における最外側であって、当該色成分ボクセル画像に対応する不透明度ボクセル画像におけるボクセルの不透明度が０であるボクセルの色成分の値を、前記不透明度ボクセル画像における不透明度が０であるボクセルの近傍の不透明度が０でないボクセルに対応する前記色成分ボクセル画像におけるボクセルの色成分の平均値に置き換える色補正処理を行う色補正手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、色補正処理された色成分ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする請求項３または請求項４に記載のボリュームレンダリング装置。
【請求項６】
前記色成分ボクセル画像の各ボクセルの色成分の値を、
当該ボクセルに対応する前記不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、当該ボクセルにおける勾配ベクトルを算出し、
算出した勾配ベクトル及び所定の光源ベクトルに基づいて陰影値を算出し、
前記色成分の値に前記陰影値を乗算した値に置き換える陰影付加手段を更に備えることを特徴とする請求項１から請求項５のいずれか一項に記載のボリュームレンダリング装置。
【請求項７】
前記陰影付加手段は、前記勾配ベクトルを算出するにあたり、前記不透明度ボクセル画像の当該ボクセルのＸ軸方向、Ｙ軸方向、Ｚ軸方向の各々２近傍のボクセルの不透明度の差分値を前記勾配ベクトルのＸ方向成分、Ｙ方向成分、Ｚ方向成分として算出し、あらかじめ定義されたＺ軸方向変倍率に基づいて前記Ｚ方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出することを特徴とする請求項６に記載のボリュームレンダリング装置。
【請求項８】
前記不透明度ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、Ｎ画素おきに対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成するものであり、
前記色成分ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、Ｎ画素おきに対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成するものであることを特徴とする請求項１から請求項７のいずれか一項に記載のボリュームレンダリング装置。
【請求項９】
前記断層画像が１６ビットの信号値をもつ画像の場合、前記複数の断層画像の全てまたは特定の断層画像を基に信号値の最大値Ｄｍａｘと最小値Ｄｍｉｎを算出し、最大値Ｄｍａｘより（最大値Ｄｍａｘ−最小値Ｄｍｉｎ）×γ（γは０．３未満の実数値）だけ減じた値を上限値Lmaxとし、最小値に（最大値Ｄｍａｘ−最小値Ｄｍｉｎ）×γだけ加算した値を下限値Ｌｍｉｎとするとき、信号値が上限値Ｌｍａｘを超える場合は２５５、下限値Ｌｍｉｎを下回る場合は０、下限値Ｌｍｉｎから上限値Ｌｍａｘの範囲を０から２５５に線形変換することにより、信号値を８ビットに変換した階調低下画像を作成する断層画像階調変換手段を更に設け、
前記不透明度ボクセル画像作成手段は、信号値に対して色成分の値と不透明度を対応付けて定義された階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、
前記色成分ボクセル画像作成手段は、前記階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成することを特徴とする請求項１から請求項８のいずれか一項に記載のボリュームレンダリング装置。
【請求項１０】
前記レンダリング手段は、
前記不透明度ボクセル画像を前記生成するボリュームレンダリング像に投影変換した座標系を視点座標系とすると、視点座標系において、前記ボリュームレンダリング像の各画素（ｘ，ｙ）よりＺ軸方向に沿って、Ｚ軸の上限値より下限値に向けて、視点座標系の各ボクセル座標（ｘ，ｙ，ｚ）ごとに第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得しながら、不透明度が０でない不透明ボクセルを探索し、最初に見つかった不透明度が０でない不透明ボクセルの視点座標系におけるＺ座標を、前記ボリュームレンダリング像の各画素（ｘ，ｙ）ごとに記録した探索制御マスクを作成する探索制御マスク作成手段と、
前記ボリュームレンダリング像の各画素（ｘ，ｙ）に対して、前記探索制御マスクよりＺ座標を取得し、取得したＺ座標よりＺ軸の下限値に向けてＺ軸方向に沿って、所定の光強度をもつ仮想光を照射する際、視点座標系の各ボクセル座標（ｘ，ｙ，ｚ）ごとに第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得し、不透明度が０でないボクセルが見つかった場合、当該座標（ｘ，ｙ，ｚ）に対して第２の座標変換を行って前記色成分ボクセル画像より（Ｒ，Ｇ，Ｂ）で構成される色成分を取得し、当該ボクセルの不透明度を基に前記光強度を減衰させるとともに、当該ボクセルの不透明度及び色成分、前記減衰させた光強度に基づいて累積輝度値を算出する処理を繰り返し、算出された累積輝度値を基に、前記ボリュームレンダリング像の当該画素（ｘ，ｙ）に対応する（Ｒ，Ｇ，Ｂ）で構成される画素値として与えるようにしているレイキャスティング手段と、を備えていることを特徴とする請求項１または請求項２に記載のボリュームレンダリング装置。
【請求項１１】
前記探索制御マスク作成手段および前記レイキャスティング手段は、前記第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得する際、
所定の３次元座標系における回転を定義した３×３行列、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標（ｘ，ｙ，ｚ）を、前記パラメータに基づいて前記不透明度ボクセル画像の座標系に変換を行って、前記不透明度ボクセル画像の実数値の座標（Ｘ，Ｙ，Ｚ）を算出し、
算出した実数値の座標（Ｘ，Ｙ，Ｚ）の近傍の複数の整数値の座標（ｘ’，ｙ’，ｚ’）座標に対応する前記不透明度ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの不透明度に基づいて前記不透明度ボクセル画像より取得される不透明度として算出するようにしていることを特徴とする請求項１０に記載のボリュームレンダリング装置。
【請求項１２】
前記レイキャスティング手段は、前記第２の座標変換を行って前記色成分ボクセル画像より色成分を取得する際、
所定の３次元座標系における回転を定義した３×３行列、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標（ｘ，ｙ，ｚ）を、前記パラメータに基づいて前記色成分ボクセル画像の座標系に変換を行って、前記色成分ボクセル画像の実数値の座標（Ｘ，Ｙ，Ｚ）を算出し、
算出した実数値の座標（Ｘ，Ｙ，Ｚ）の近傍の複数の整数値の座標（ｘ’，ｙ’，ｚ’）座標に対応する前記色成分ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの色成分に基づいて前記色成分ボクセル画像より取得される色成分として算出するようにしていることを特徴とする請求項１０に記載のボリュームレンダリング装置。
【請求項１３】
前記レンダリング手段は、
前記色成分ボクセル画像で構成される３Ｄテクスチャ画像を生成する３Ｄテクスチャ登録手段と、
前記３Ｄテクスチャ画像に対して所定の座標変換を行って変換後３Ｄテクスチャ画像を生成する座標変換手段と、
３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べ、前記各四角形の４頂点の各３次元座標を前記変換後３Ｄテクスチャ画像の所定の４箇所の各３次元座標に対応付けた積層四角形を設定する積層四角形設定手段と、
所定の視点からＺ軸方向に平行な視線上の前記積層四角形上の３次元座標に対応する前記変換後３Ｄテクスチャ画像のボクセルの（Ｒ，Ｇ，Ｂ）で構成される色成分を当該ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られた色成分を、前記ボリュームレンダリング像の（Ｒ，Ｇ，Ｂ）で構成される画素値として与えるようにしている画素値算出手段と、
を備えていることを特徴とする請求項３から請求項５のいずれか一項にボリュームレンダリング装置。
【請求項１４】
前記座標変換手段は、
所定の３次元座標系における回転を定義した４×４行列、視野角度、視点位置、クリッピング位置、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む所定の座標変換のパラメータを取得し、
前記３Ｄテクスチャ画像に対して、前記取得したパラメータを用いた前記所定の座標変換を行って前記変換後３Ｄテクスチャ画像を生成するようにしていることを特徴とする請求項１３にボリュームレンダリング装置。
【請求項１５】
前記座標変換手段および前記画素値算出手段は、汎用コンピュータのビデオカードに搭載されているＧＰＵおよびフレームメモリを用いて実行するようにしていることを特徴とする請求項１４にボリュームレンダリング装置。
【請求項１６】
コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラム。
【請求項１７】
コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラム。
【請求項１８】
対象物に対して所定の間隔で撮影された複数の２次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも、前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像および前記色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータ。
【請求項１９】
対象物に対して所定の間隔で撮影された複数の２次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像は前記不透明度付色成分ボクセル画像を生成するために用いられ、前記不透明度付色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、二次元の断層画像を複数枚用いて、３次元的に可視化するためのボリュームレンダリング技術に関する。
【背景技術】
【０００２】
従来、ＣＴ、ＭＲＩ、ＰＥＴなど医療画像診断機器（モダリティ）により所定のスライス間隔で連続的に撮像され、ＤＩＣＯＭ形式等でＰＡＣＳ（Picture Archiving and Communication Systems）等の医療情報システムに保管されている複数の断層画像を基に、臓器等を３次元的に可視化することが行われている。
【０００３】
３Ｄコンピュータグラフィックス分野においては、レンダリング像を２５６色などの限定色で生成し、ハードウェア実装のカラーマップ（カラー・ルックアップテーブル）を対話形式に変更してレンダリング像の色をリアルタイムに変更する手法が用いられている（特許文献１参照）。
【０００４】
また、カラーマップに依存しないＶＩＳボリューム（信号値、陰影輝度値、不透明度強度係数の３パラメータをもつボクセル）でレンダリングする方法も提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１−３２１５７７号公報
【特許文献２】特許第２６５１７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、変更できるのはＲＧＢ値のみであり、ボリュームレンダリングで重要な、不透明度を表現したα値を制御することは開示されていない。また、特許文献２に記載の技術では、信号値に対してカラーマップを適用して再レンダリングする場合に比べ、処理に要する時間が１割程度削減できるに留まる。
【０００７】
そこで、本開示は、複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理の演算負荷を抑制し、レンダリング像の生成処理の速度を向上させることが可能なボリュームレンダリング装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
本開示は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の２次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルにの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置を提供する。
【０００９】
また、本開示のボリュームレンダリング装置は、
前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値をに置き換えるスムージング処理を行うスムージング手段を更に備え、
前記レンダリング手段は、スムージング処理された不透明度ボクセル画像を用いてボリュームレンダリング像を生成することを特徴とする。
【００１０】
また、本開示では、
対象物に対して所定の間隔で撮影され、各画素に信号値が付与された複数の２次元の断層画像に基づいて、あらかじめ定義されたカラ−マップを参照してボリュームレンダリング像を生成するためのボリュームレンダリング装置であって、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段と、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段と、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、ボクセル値として不透明度及び色成分の値が定義された不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段と、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段と、
を備えていることを特徴とするボリュームレンダリング装置を提供する。
【００１１】
また、本開示のボリュームレンダリング装置は、前記不透明度ボクセル画像を構成する各ボクセルの不透明度を、当該ボクセル及び当該ボクセルの近傍のボクセルの不透明度の平均値に置き換えるスムージング処理を行うスムージング手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、スムージング処理された不透明度ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする。
【００１２】
また、本開示のボリュームレンダリング装置は、前記色成分ボクセル画像における最外側であって、当該色成分ボクセル画像に対応する不透明度ボクセル画像におけるボクセルの不透明度が０であるボクセルの色成分の値を、前記不透明度ボクセル画像における不透明度が０であるボクセルの近傍の不透明度が０でないボクセルに対応する前記色成分ボクセル画像におけるボクセルの色成分の平均値に置き換える色補正処理を行う色補正手段を更に備え、
前記不透明度付色成分ボクセル画像作成手段は、色補正処理された色成分ボクセル画像を用いて前記不透明度付色成分ボクセル画像を作成することを特徴とする。
【００１３】
また、本開示のボリュームレンダリング装置は、前記色成分ボクセル画像の各ボクセルの色成分の値を、当該ボクセルに対応する前記不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、当該ボクセルにおける勾配ベクトルを算出し、算出した勾配ベクトル及び所定の光源ベクトルに基づいて、陰影値を算出し、前記色成分の値に前記陰影値を乗算した値に置き換える陰影付加手段を更に備えることを特徴とする。
【００１４】
また、本開示のボリュームレンダリング装置は、前記陰影付加手段は、前記勾配ベクトルを算出するにあたり、前記不透明度ボクセル画像の当該ボクセルのＸ軸方向、Ｙ軸方向、Ｚ軸方向の各々２近傍のボクセルの不透明度の差分値を前記勾配ベクトルのＸ方向成分、Ｙ方向成分、Ｚ方向成分として算出し、あらかじめ定義されたＺ軸方向変倍率に基づいて前記Ｚ方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出することを特徴とする。
【００１５】
また、本開示のボリュームレンダリング装置は、前記不透明度ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、Ｍ画素おきに対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成するものであり、
前記色成分ボクセル画像作成手段は、前記複数の断層画像の二次元の各軸方向、断層画像と直交する軸方向の三軸の各方向において、Ｍ画素おきに対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成するものであることを特徴とする。
【００１６】
また、本開示のボリュームレンダリング装置は、
前記断層画像が１６ビットの信号値をもつ画像の場合、前記複数の断層画像の全てまたは特定の断層画像を基に信号値の最大値Ｄｍａｘと最小値Ｄｍｉｎを算出し、最大値Ｄｍａｘより（最大値Ｄｍａｘ−最小値Ｄｍｉｎ）×γ（γは０．３未満の実数値）だけ減じた値を上限値Lmaxとし、最小値に（最大値Ｄｍａｘ−最小値Ｄｍｉｎ）×γだけ加算した値を下限値Ｌｍｉｎとするとき、信号値が上限値Ｌｍａｘを超える場合は２５５、下限値Ｌｍｉｎを下回る場合は０、下限値Ｌｍｉｎから上限値Ｌｍａｘの範囲を０から２５５に線形変換することにより、信号値を８ビットに変換した階調低下画像を作成する断層画像階調変換手段を更に設け、
前記ボクセル画像作成手段は、信号値に対して色成分の値と不透明度を対応付けて定義された階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、
前記色成分ボクセル画像作成手段は、前記階調低下画像用のカラーマップを参照して、前記複数の階調低下画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成することを特徴とする。
【００１７】
また、本開示のボリュームレンダリング装置は、前記レンダリング手段は、
前記不透明度ボクセル画像を前記生成するボリュームレンダリング像に投影変換した座標系を視点座標系とすると、視点座標系において、前記ボリュームレンダリング像の各画素（ｘ，ｙ）よりＺ軸方向に沿って、Ｚ軸の上限値より下限値に向けて、視点座標系の各ボクセル座標（ｘ，ｙ，ｚ）ごとに第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得しながら、不透明度が０でない不透明ボクセルを探索し、最初に見つかった不透明度が０でない不透明ボクセルの視点座標系におけるＺ座標を、前記ボリュームレンダリング像の各画素（ｘ，ｙ）ごとに記録した探索制御マスクを作成する探索制御マスク作成手段と、
前記ボリュームレンダリング像の各画素（ｘ，ｙ）に対して、前記探索制御マスクよりＺ座標を取得し、取得したＺ座標よりＺ軸の下限値に向けてＺ軸方向に沿って、所定の光強度をもつ仮想光を照射する際、視点座標系の各ボクセル座標（ｘ，ｙ，ｚ）ごとに第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得し、不透明度が０でないボクセルが見つかった場合、当該座標（ｘ，ｙ，ｚ）に対して第２の座標変換を行って前記色成分ボクセル画像より（Ｒ，Ｇ，Ｂ）で構成される色成分を取得し、当該ボクセルの不透明度を基に前記光強度を減衰させるとともに、当該ボクセルの不透明度及び色成分並びに前記減衰させた光強度に基づいて累積輝度値を算出する処理を繰り返し、算出された累積輝度値を基に、前記ボリュームレンダリング像の当該画素（ｘ，ｙ）に対応する（Ｒ，Ｇ，Ｂ）で構成される画素値として与えるようにしているレイキャスティング手段と、を備えていることを特徴とする。
【００１８】
また、本開示のボリュームレンダリング装置は、前記探索制御マスク作成手段および前記レイキャスティング手段は、前記第１の座標変換を行って前記不透明度ボクセル画像より不透明度を取得する際、
所定の３次元座標系における回転を定義した３×３行列、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標（ｘ，ｙ，ｚ）を、前記パラメータに基づいて前記不透明度ボクセル画像の座標系に変換を行って、前記不透明度ボクセル画像の実数値の座標（Ｘ，Ｙ，Ｚ）を算出し、
算出した実数値の座標（Ｘ，Ｙ，Ｚ）の近傍の複数の整数値の座標（ｘ’，ｙ’，ｚ’）座標に対応する前記不透明度ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの不透明度に基づいて前記不透明度ボクセル画像より取得される不透明度として算出するようにしていることを特徴とする。
【００１９】
また、本開示のボリュームレンダリング装置は、前記レイキャスティング手段は、前記第２の座標変換を行って前記色成分ボクセル画像より色成分を取得する際、
所定の３次元座標系における回転を定義した３×３行列、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む前記所定の座標変換のパラメータを取得し、
前記視点座標系のボクセルの整数値の座標（ｘ，ｙ，ｚ）を、前記パラメータに基づいて前記色成分ボクセル画像の座標系に変換を行って、前記色成分ボクセル画像の実数値の座標（Ｘ，Ｙ，Ｚ）を算出し、
算出した実数値の座標（Ｘ，Ｙ，Ｚ）の近傍の複数の整数値の座標（ｘ’，ｙ’，ｚ’）座標に対応する前記色成分ボクセル画像の複数のボクセルを特定し、
特定した複数のボクセルの色成分に基づいて前記色成分ボクセル画像より取得される色成分として算出するようにしていることを特徴とする。
【００２０】
また、本開示のボリュームレンダリング装置は、
前記レンダリング手段は、
前記色成分ボクセル画像で構成される３Ｄテクスチャ画像を生成する３Ｄテクスチャ登録手段と、
前記３Ｄテクスチャ画像に対して所定の座標変換を行って変換後３Ｄテクスチャ画像を生成する座標変換手段と、
３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べ、前記各四角形の４頂点の各３次元座標を前記変換後３Ｄテクスチャ画像の所定の４箇所の各３次元座標に対応付けた積層四角形を設定する積層四角形設定手段と、
所定の視点からＺ軸方向に平行な視線上の前記積層四角形上のの３次元座標に対応する前記変換後３Ｄテクスチャ画像のボクセルの（Ｒ，Ｇ，Ｂ）で構成される色成分を当該ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られた色成分を、前記ボリュームレンダリング像の（Ｒ，Ｇ，Ｂ）で構成される画素値として与えるようにしている画素値算出手段と、
を備えていることを特徴とする。
【００２１】
また、本開示のボリュームレンダリング装置は、前記座標変換手段は、
所定の３次元座標系における回転を定義した４×４行列、視野角度、視点位置、クリッピング位置、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む所定の座標変換のパラメータを取得し、
前記３Ｄテクスチャ画像に対して、前記取得したパラメータを用いた前記所定の座標変換を行って前記変換後３Ｄテクスチャ画像を生成するようにしていることを特徴とする。
【００２２】
また、本開示のボリュームレンダリング装置は、前記座標変換手段および前記画素値算出手段は、汎用コンピュータのビデオカードに搭載されているＧＰＵおよびフレームメモリを用いて実行するようにしていることを特徴とする。
【００２３】
また、本開示では、コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記不透明度ボクセル画像および前記色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラムを提供する。
【００２４】
また、本開示では、コンピュータを、
信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を不透明度に置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する不透明度ボクセル画像作成手段、
前記カラーマップを参照して、前記複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像を作成する色成分ボクセル画像作成手段、
前記色成分ボクセル画像の各ボクセルに前記不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を作成する不透明度付色成分ボクセル画像作成手段、
前記不透明度付色成分ボクセル画像を用いてボリュームレンダリング像を生成するレンダリング手段、
として機能させるためのプログラムを提供する。
【００２５】
また、本開示では、
対象物に対して所定の間隔で撮影された複数の２次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも、前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像および前記色成分ボクセル画像は、レンダリング手段によりのボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータを提供する。
【００２６】
また、本開示では、
対象物に対して所定の間隔で撮影された複数の２次元の断層画像の各画素に対応し、あらかじめ定義されたカラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体のボクセルデータであって、
前記ボクセルデータは、少なくとも前記各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、前記各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有し、
前記不透明度ボクセル画像は前記不透明度付色成分ボクセル画像を生成するために用いられ、前記不透明度付色成分ボクセル画像は、レンダリング手段によりボリュームレンダリング像を生成するために用いられることを特徴とするボクセルデータを提供する。
【発明の効果】
【００２７】
本開示によれば、複数の断層画像に対してカラーマップを適用して、レンダリング像を生成する処理を高速に行うことが可能となる。
【図面の簡単な説明】
【００２８】
【図１】本開示の一実施形態に係るボリュームレンダリング装置１００のハードウェア構成図である。
【図２】本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。
【図３】本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。
【図４】本実施形態で用いるカラーマップを示す図である。
【図５】本開示の一実施形態に係るボリュームレンダリング装置１０において作成されるボクセル画像の概念図である。
【図６】透明なボクセルの色成分の色補正処理の詳細を示すフローチャートである。
【図７】３Ｄテクスチャマッピングにおける対応付けを示す図である。
【図８】３Ｄテクスチャマッピング方式の処理を行う場合の、レンダリング手段７０の構成を示す図である。
【図９】本実施形態のレンダリング手段７０による投影画面設定の一例を示す説明図である。
【図１０】３Ｄテクスチャマッピング方式によるレンダリング処理の詳細を示すフローチャートである。
【図１１】レイキャスティング方式の処理を行う場合の、レンダリング手段７０の構成を示す図である。
【図１２】レイキャスティング方式によるレンダリング処理の詳細を示すフローチャートである。
【図１３】座標変換の概念図である。
【図１４】探索制御マスク作成手段７７が探索制御マスクを作成する手順を説明する図である。
【図１５】探索制御マスク作成手段７７が各画素において起点座標を探索する手順を説明するフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本開示の好適な実施形態について図面を参照して詳細に説明する。
＜１．装置構成＞
図１は、本開示の一実施形態に係るボリュームレンダリング装置１００のハードウェア構成図である。本実施形態に係るボリュームレンダリング装置１００は、汎用のコンピュータで実現することができ、図１に示すように、ＣＰＵ（Central Processing Unit）１と、コンピュータのメインメモリであるＲＡＭ（Random Access Memory）２と、ＣＰＵ１が実行するプログラムやデータを記憶するためのハードディスク、ＳＳＤ（Solid State Drive），フラッシュメモリ等の大容量の記憶装置３と、キーボード、マウス等の指示入力Ｉ／Ｆ（インターフェース）４と、データ記憶媒体等の外部装置とデータ通信するためのデータ入出力Ｉ／Ｆ（インターフェース）５と、液晶ディスプレイ等の表示デバイスである表示部６と、グラフィックスに特化した演算処理部であるＧＰＵ（Graphics Processing Unit）７と、表示部６に表示する画像を保持するフレームメモリ８と、を備え、互いにバスを介して接続されている。ＧＰＵ７による演算結果はフレームメモリ８に書き込まれるため、ＧＰＵ７とフレームメモリ８は、表示部６へのインタフェースを備えたビデオカードに搭載されて汎用のコンピュータにバス経由で装着されていることが多い。
【００３０】
図２は、本実施形態に係るボリュームレンダリング装置の構成を示す機能ブロック図である。図２において、１０は断層画像読込手段、１５はカラーマップ読込手段、２０はＲＯＩクリッピング設定手段、３０はボクセル画像作成手段、４０はスムージング手段、５０は陰影付加手段、６０は透明ボクセル色補間手段、７０はレンダリング手段、８０はレンダリング像出力手段である。
【００３１】
断層画像読込手段１０は、ＣＴ、ＭＲＩ、ＰＥＴなどの医用画像診断機器により収集および蓄積されたＰＡＣＳから、記憶媒体や入力部を経由して、複数の断層画像を読み込む手段である。断層画像は、対象物に対して所定の間隔で撮影されて得られたものであり、各画素に信号値が付与された２次元の断層画像である。カラーマップ読込手段１５は、図示されていないカラーマップ作成手段により、あらかじめ作成されたカラーマップを記憶媒体や入力部から、カラーマップを読み込む手段である。ＲＯＩクリッピング設定手段２０は、読み込んだ複数の断層画像のうち、ボクセル画像の作成対象を、関心領域であるＲＯＩとして設定する手段である。ボクセル画像作成手段３０は、信号値に対して色成分の値と不透明度を対応付けて定義されたカラーマップを参照して、複数の断層画像の各画素と対応付けて三次元に配置した各ボクセルに対して、色成分の値と不透明度を与えることにより不透明度ボクセル画像、色成分ボクセル画像および不透明度付色成分ボクセル画像を作成する手段である。本実施形態では、ボクセル画像作成手段３０は、不透明度ボクセル画像作成手段３１、色成分ボクセル画像作成手段３２、および不透明度付色成分ボクセル画像作成手段３３を有しており、不透明度ボクセル画像作成手段３１は、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成し、色成分ボクセル画像作成手段３２はボクセル値として色成分の値が定義された色成分ボクセル画像を作成する。不透明度付色成分ボクセル画像作成手段３３はボクセル値として色成分の値および不透明度が定義された不透明度付色成分ボクセル画像を作成する。
【００３２】
スムージング手段４０は、不透明度ボクセル画像を構成する各ボクセルの不透明度を、ボクセル及びそのボクセルの近傍のボクセルの不透明度の平均値に置き換えることにより、不透明度の平滑化を行う手段である。陰影付加手段５０は、色成分ボクセル画像の各ボクセルの（Ｒ，Ｇ，Ｂ）で構成される色成分に対して、そのボクセルに対応する不透明度ボクセル画像のボクセルの近傍のボクセルの不透明度を基に、そのボクセルにおける勾配ベクトルを算出し、算出した勾配ベクトルを用いて、陰影値を算出し、色成分（Ｒ，Ｇ，Ｂ）の各値に陰影値を乗算すした値に置き換える手段である。
【００３３】
色補正手段６０は、色成分ボクセル画像における最外側であって、対応する不透明度ボクセル画像におけるボクセルの不透明度が０であるボクセル（透明ボクセル）の色成分に対して、当該ボクセルの近傍の不透明度が０でないボクセルに対応する色成分ボクセル画像におけるボクセルの色成分の平均値で置換するような色補正処理を行う色補正手段である。レンダリング手段７０は、不透明度ボクセル画像および色成分ボクセル画像、または不透明度付色成分ボクセル画像を用いてカラーのボリュームレンダリング像を生成する手段である。レンダリング手段７０は、３Ｄテクスチャマッピング方式とレイキャスティング方式の２通りのレンダリング処理に対応している。レンダリング像出力手段８０は、ボリュームレンダリング像を所定の出力手段に所定の態様で出力する手段である。通常は、表示部６等に表示出力が行われる。
【００３４】
断層画像読込手段１０およびカラーマップ読込手段１５は、ＣＰＵ１が補助しながら、主にデータ入出力Ｉ／Ｆ５において実現される。ＲＯＩクリッピング設定手段２０は、ＣＰＵ１が補助しながら、主に指示入力Ｉ／Ｆ４において実現される。ボクセル画像作成手段３０、スムージング手段４０、陰影付加手段５０、色補正手段６０は、ＣＰＵ１が、記憶装置３に記憶されているプログラムを実行することにより実現される。レンダリング手段７０については、３Ｄテクスチャマッピング方式の場合は、ＣＰＵ１が補助しながら、主にＧＰＵ７においてプログラムを実行することにより実現される。また、レイキャスティング方式の場合は、レンダリング手段７０は、ＣＰＵ１がプログラムを実行することにより実現される。レンダリング像出力手段８０は、ＣＰＵ１が補助しながら、主にフレームメモリ８と表示部６において実現される。
【００３５】
図２に示した各構成手段は、現実には図１に示したように、コンピュータおよびその周辺機器等のハードウェアに専用のプログラムを搭載することにより実現される。すなわち、コンピュータが、専用のプログラムに従って各手段の内容を実行することになる。なお、本明細書において、コンピュータとは、ＣＰＵ、ＧＰＵ等の演算処理部を有し、データ処理が可能な装置を意味し、パーソナルコンピュータなどの汎用コンピュータだけでなく、ＧＰＵを搭載するタブレットなどの携帯端末や様々な装置に組み込まれたコンピュータも含む。
【００３６】
＜２．処理動作＞
次に、図１、図２に示したボリュームレンダリング装置の処理動作について説明する。図３は、本実施形態に係るボリュームレンダリング装置の処理動作を示すフローチャートである。まず、断層画像読込手段１０が、複数の断層画像を読み込む。ＤＩＣＯＭ形式の複数の断層画像を読み込んだら、ＲＯＩクリッピング設定手段２０が、ＲＯＩクリッピング設定を行う（ステップＳ１０）。ＲＯＩとはＲｅｇｉｏｎ  ｏｆ  Ｉｎｔｅｒｅｓｔの略であり、関心領域を意味する。ここでは、ボリュームレンダリング像およびボクセル画像の作成対象とする範囲を示す。ＲＯＩを設定することにより、３次元的に任意の位置で被写体を断裁したボリュームレンダリング像を生成することができ、体表や骨に隠れた臓器や臓器の内部を描出するのに用いられる。ステップＳ２０以降の処理において、所定の範囲にボクセル画像作成対象が限定されるように、ステップＳ１０においてＲＯＩを設定する。
【００３７】
読み込んだ各断層画像のＸ軸方向の左端に対応する座標をＸｓｏ、Ｘ軸方向の右端に対応する座標をＸｅｏ、Ｙ軸方向の上端に対応する座標をＹｓｏ、Ｙ軸方向の下端に対応する座標をＹｅｏ、第１スライスの断層画像に対応する座標をＺｓｏ、最終スライスの断層画像に対応する座標をＺｅｏとすると、Ｘｓｏ≦Ｘｓ＜Ｘｅ≦Ｘｅｏ、Ｙｓｏ≦Ｙｓ＜Ｙｅ≦Ｙｅｏ、Ｚｓｏ≦Ｚｓ＜Ｚｅ≦Ｚｅｏを満たす［Ｘｓ，Ｘｅ］、［Ｙｓ，Ｙｅ］、［Ｚｓ，Ｚｅ］の直方体で定義される範囲をＲＯＩと定義し処理対象として特定する。ステップＳ１０におけるＲＯＩクリッピング設定の結果、処理対象の画素数が（Ｘｅｏ−Ｘｓｏ＋１）×（Ｙｅｏ−Ｙｓｏ＋１）×（Ｚｅｏ−Ｚｓｏ＋１）画素から、（Ｘｅ−Ｘｓ＋１）×（Ｙｅ−Ｙｓ＋１）×（Ｚｅ−Ｚｓ＋１）画素に削減されることになる。ＲＯＩクリッピング設定手段２０によるステップＳ１０のＲＯＩクリッピング設定を行うことにより、観察対象の臓器を露出させたボリュームレンダリング像が得られるという効果に加え、処理対象の画素が減って処理負荷を抑え応答性を向上させることができるという二重のメリットがあるため、設定される場合が多いが、必須の処理ではなく省略することも可能である。（観察対象の臓器を描出する方法として、３次元マスクを作成する方法もとられるが、ＲＯＩの設定に比べ操作が煩雑になり、処理負荷も増えるため、ＲＯＩクリッピング処理は必須に近い。）尚、ステップＳ１０のＲＯＩクリッピング設定の段階では、ＲＯＩクリッピングを適用する範囲を定義するだけで、具体的なクリッピング処理は、ステップＳ２０以降の各処理で実行される。各々の処理において、ボクセル画像のＲＯＩ範囲に限定して演算が行われることにより処理負荷が軽減され、ステップＳ７０のレンダリング処理でクリッピング（断裁）されたボリュームレンダリング像が生成される。
【００３８】
次に、ボクセル画像作成手段３０が、ボクセル画像作成処理を行う（ステップＳ２０）。ボクセル画像とは、断層画像の各画素が三次元空間にボクセルとして配置されたボクセル構造体である。ステップＳ２０における具体的な処理としては、カラーマップ読込手段１５から読み込んだカラーマップを用いて、クリッピング設定後の断層画像のＲＯＩ範囲に含まれる各画素の信号値に対して対応する値を付与し、ボクセル画像を作成する。本実施形態では、ボクセル画像として、不透明度ボクセル画像、色成分ボクセル画像、不透明度付色成分ボクセル画像の３種を作成する。
【００３９】
図４は、本実施形態で用いるカラーマップを示す図である。図４において、信号値は、断層画像の各画素に記録された信号値であり、Ｒ、Ｇ、Ｂは、それぞれ赤、緑、青の色成分であり、αはそのボクセルの表示の程度を規定する不透明度である。図４は、断層画像の信号値が１６ビットで記録され、−３２７６８〜３２７６７の値をとる場合のカラーマップである。（ＣＴ画像の場合は、水（water）成分を０として−２０４８から２０４８の範囲に正規化される場合が多い）。図４に示すように、カラーマップには、断層画像の各画素の信号値に対して、Ｒ、Ｇ、Ｂの各色成分と不透明度αが対応付けられている。このようなカラーマップを用いることにより、断層画像の各画素に対応するボクセル画像の各ボクセルに対して、その画素の信号値に対応するＲ、Ｇ、Ｂの各色成分と不透明度αをボクセル値として与えることによりフルカラーのボリュームレンダリング像を作成することができる。
【００４０】
図４に示したようなカラーマップを用いることにより、断層画像において所定の信号値を有する箇所を、任意の色成分、任意の不透明度で表現することができる。断層画像においては、臓器、器官等の部位に応じて信号値が異なるため、ボリュームレンダリング像において、カラーマップを定義することにより、信号値の相違に基づいて、人為的に、特定の臓器を色分けしたり、特定の器官を透明にして背後に隠れた臓器を露出させたりすることができる。特定の部位の不透明度αを最大値（α＝２５５）に設定すれば、その部位だけが明瞭に表示され、その部位の奥に位置する部位は描出されない。逆に特定の部位の不透明度αを最小値（α＝０）に設定すれば、その部位は不可視（透明）になり、その部位の奥に位置する部位が露出される。特定の部位の不透明度αを中間調（０＜α＜２５５）に設定すれば、その部位が半透明で表示され、その奥に位置する部位が透かし合成されて表示される。また、色成分Ｒ、Ｇ、Ｂとしては、目的とする部位を視認し易くするための任意の値を設定することができる。したがって、カラーマップは、観察対象の部位ごとに設定しておくことができ、同じ断層画像群に対しても、異なるカラーマップを使用することにより、異なるボリュームレンダリング像が得られることになる。すなわち、肺用のカラーマップを用いれば、肺の部分が目立ったボリュームレンダリング像が得られ、心臓用のカラーマップを用いれば、心臓の部分が目立ったボリュームレンダリング像が得られる。ただし、各臓器の信号値分布は互いにオーバーラップしていることもあるため、特定の臓器のみを描出するカラーマップを作成することはできないことが多い。例えば、心臓用のカラーマップでは肋骨・胸骨も同時に描出され、心臓はこれらの骨に隠れてしまうため、ＲＯＩクリッピングを設定して肋骨を仮想的に断裁するなどの工夫が必要になる。
【００４１】
本実施形態では、指示入力Ｉ／Ｆ４を介した操作により、使用中のカラーマップに変更を加えたり、異なるカラーマップを読み込むことが可能となっている。そして、ボリュームレンダリング装置は、変更されたカラーマップまたは新たに読み込まれたカラーマップを参照して、ボリュームレンダリング像を生成する。本実施形態のボリュームレンダリング装置は、ボリュームレンダリング像を高速で生成することが可能であるため、カラーマップの変更に対してリアルタイムにボリュームレンダリング像を更新できる。
【００４２】
ステップＳ２０においては、ボクセル画像作成手段３０が、複数の断層画像のＸｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲に対応する各画素（ｘ，ｙ，ｚ）における信号値を用いてカラーマップを参照し、信号値に対応する色成分であるＲ、Ｇ、Ｂと、不透明度αの値を取得し、その値を対応するボクセルの値とする。ｘ≦ＸｓまたはＸｅ≦ｘまたはｙ≦ＹｓまたはＹｅ≦ｙまたはｚ≦ＺｓまたはＺｅ≦ｚの範囲のボクセル（ｘ，ｙ，ｚ）の値に対しては、一律にＲ＝Ｇ＝Ｂ＝α＝０を設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元のボクセル画像が得られる。これにより、本来、ボクセル画像の各ボクセルの値は、Ｒ、Ｇ、Ｂ、αの４つとなる。
【００４３】
本実施形態では、ボクセル画像作成手段３０が、不透明度ボクセル画像作成手段３１、色成分ボクセル画像作成手段３２、不透明度付色成分ボクセル画像作成手段３３を有し、ステップＳ２０のボクセル画像作成処理において、不透明度ボクセル画像作成手段３１が不透明度αのみを各ボクセルに記録した１ボクセル８ビット形式の不透明度ボクセル画像を作成し、色成分ボクセル画像作成手段３２が、色成分Ｒ、Ｇ、Ｂを各画素に記録した１ボクセル２４ビット形式の色成分ボクセル画像を作成する。また、後述する３Ｄテクスチャマッピング方式でボリュームレンダリングを行う場合、不透明度付色成分ボクセル画像作成手段３３が色成分Ｒ、Ｇ、Ｂおよび不透明度αを各画素に記録した１ボクセル３２ビット形式の不透明度付色成分ボクセル画像を作成する。その理由は、ボクセル画像をＯｐｅｎＧＬ（Open SourceのGraphics Libraryで、これに基づいてレンダリング処理を記述するとＧＰＵを制御するプログラムコードが自動生成される）に３Ｄテクスチャ画像として登録するためにボクセル画像を１ボクセル３２ビット形式で作成する必要があるためである。
【００４４】
具体的には、不透明度ボクセル画像作成手段３１は、複数の断層画像のＸｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲に対応する各画素（ｘ，ｙ，ｚ）に対応する信号値を用いてカラーマップを参照し、信号値に対応するαの値を取得し、その値を対応するボクセルの値とする。ｘ≦ＸｓまたはＸｅ≦ｘまたはｙ≦ＹｓまたはＹｅ≦ｙまたはｚ≦ＺｓまたはＺｅ≦ｚの範囲のボクセル（ｘ，ｙ，ｚ）には値として０を設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元の不透明度ボクセル画像が得られる。不透明度ボクセル画像の各ボクセルの値は、上述のようにαのみとなる。
【００４５】
また、色成分ボクセル画像作成手段３２または不透明度付色成分ボクセル画像作成手段３３は、断層画像のＸｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲に対応する各画素（ｘ，ｙ，ｚ）に対応する信号値を用いてカラーマップを参照し、信号値に対応するＲ、Ｇ、Ｂの色成分の値を取得し、それらの値を対応するボクセルの値とする。ｘ≦ＸｓまたはＸｅ≦ｘまたはｙ≦ＹｓまたはＹｅ≦ｙまたはｚ≦ＺｓまたはＺｅ≦ｚの範囲のボクセル（ｘ，ｙ，ｚ）には値としてＲ＝Ｇ＝Ｂ＝０を設定する。更に、不透明度付色成分ボクセル画像作成手段３３は作成する不透明度付色成分ボクセル画像の全てのボクセルの不透明度に対して０に設定する。複数枚の断層画像における全ての画素に対して、この処理を行うことにより、複数枚の断層画像に対応した三次元の色成分ボクセル画像または不透明度付色成分ボクセル画像が得られる。色成分ボクセル画像の各ボクセルの値は、上述のようにＲ、Ｇ、Ｂの３つとなる。不透明度付色成分ボクセル画像の各ボクセルの値は、上述のようにＲ、Ｇ、Ｂ、αの４つとなる（ただし、αは初期状態では全て０に設定されている）。例えば、各成分をそれぞれ８ビットで記録した場合、不透明度ボクセル画像の１ボクセルは８ビットで記録され、色成分ボクセル画像の１ボクセルは２４ビットで記録され、不透明度付色成分ボクセル画像の１ボクセルは３２ビットで記録される。後述するが、１ボクセル８ビット形式の不透明度ボクセル画像と、１ボクセル２４ビット形式の色成分ボクセル画像の組合せは、ＣＰＵ１がレイキャスティング方式でレンダリング処理を行う場合に適しており、１ボクセル８ビット形式の不透明度ボクセル画像と、１ボクセル３２ビット形式の不透明度付色成分ボクセル画像の組合せは、ＧＰＵ７を用いた３Ｄテクスチャマッピング方式でレンダリング処理を行う場合に適している。
【００４６】
図５は、不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像の概念図である。図５（ａ）は、不透明度ボクセル画像を立方体で表現したものであり、図５（ｂ）は、色成分ボクセル画像または不透明度付色成分ボクセル画像を立方体で表現したものである。図５においては、説明の便宜上、ボクセル数を６×６×６に設定している。図５に示すように、不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像は、三次元の各軸方向におけるボクセル数は等しく、両者のボクセルは互いに１対１で対応している。ただし、不透明度ボクセル画像は、１ボクセルに８ビット記録可能であるのに対して、色成分ボクセル画像は、１ボクセルに２４ビット記録可能であり、不透明度付色成分ボクセル画像は、１ボクセルに３２ビット記録可能である。この記録容量の差が図５においては、ボクセルの大きさとして表現されている。
図５に模式的に示した２つのボクセル画像は、実際には、ＲＡＭ３等のメモリ上で各ボクセル画像ごとに記録される。したがって、図５（ａ）に示したように、小さな不透明度ボクセル画像は、メモリ上においても、小さい領域にまとまって記録されることになり、ＣＰＵ１やＧＰＵ７によるアクセス速度が大幅に向上する。
レイキャスティング方式に対応したボクセルデータは、複数の２次元の断層画像の各画素に対応し、カラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体であり、各ボクセルの値として不透明度αが定義された不透明度ボクセル画像と、各ボクセルの値として色成分の値が定義された色成分ボクセル画像とを含むボクセル構造体のデータ構造を有している。
３Ｄテクスチャマッピング方式に対応したボクセルデータは、複数の２次元の断層画像の各画素に対応し、カラ−マップを参照して定められた各ボクセルで構成されるボクセル構造体であり、各ボクセルの値として不透明度が定義された不透明度ボクセル画像と、各ボクセルの値として色成分の値及び不透明度が定義された不透明度付色成分ボクセル画像とを含む、ボクセル構造体のデータ構造を有している。
【００４７】
ボクセル画像として、別体である不透明度ボクセル画像と色成分ボクセル画像または不透明度付色成分ボクセル画像を作成することにより、不透明度を参照する際、不透明度ボクセル画像のみを参照すればよいことになる。このため、ボリュームレンダリング像の作成過程において、頻繁に行われる不透明度の参照、特に複数の近傍のボクセルの不透明度の参照に要するアクセス時間が大幅に削減される。その結果、ボリュームレンダリング像を高速に作成し、カラーマップの変更等に伴う再表示処理を高速に行うことに寄与する。
【００４８】
次に、スムージング手段４０が、スムージング処理を行う（ステップＳ３０）。具体的には、不透明度ボクセル画像のＸｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲の各ボクセル（ｘ，ｙ，ｚ）の不透明度αの値を、当該ボクセルと近傍のボクセルを用いて平滑化する。近傍のボクセルとしては、例えば、ｘｙｚ軸の各方向に隣接する２６ボクセルを用いることができる。したがって、ボクセル（ｘ，ｙ，ｚ）に対しては、自身も含めてｘ−１〜ｘ＋１、ｙ−１〜ｙ＋１、ｚ−１〜ｚ＋１に属する２７ボクセルを用いて平滑化することになる。平滑化の具体的な手法としては、様々な手法を用いることができるが、本実施形態では、２７ボクセルの平均値を対象とするボクセルの値として与えることにより行う。
【００４９】
スムージング処理は、不透明度ボクセル画像のＸｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲のボクセル（ｘ，ｙ，ｚ）に対して行い、ｘ≦ＸｓまたはＸｅ≦ｘまたはｙ≦ＹｓまたはＹｅ≦ｙまたはｚ≦ＺｓまたはＺｅ≦ｚの範囲のボクセル（ｘ，ｙ，ｚ）については、変更を行わず、元の不透明度α＝０が記録されたままとなる。ステップＳ３０において不透明度ボクセル画像の略全体においてスムージング処理を行うことにより、後にボリュームレンダリング像を表示した際に、モアレの発生を抑制することができる。
【００５０】
次に、陰影付加手段５０が、陰影付加処理を行う（ステップＳ４０）。これは、所定の照明環境に対応した陰影をボクセル画像に付加する処理で、具体的にはＸｓ≦ｘ≦ＸｅかつＹｓ≦ｙ≦ＹｅかつＺｓ≦ｚ≦Ｚｅの範囲の不透明度ボクセル画像を参照しながら、Ｘｓ＜ｘ＜ＸｅかつＹｓ＜ｙ＜ＹｅかつＺｓ＜ｚ＜Ｚｅの範囲の色成分ボクセル画像を更新する処理である。このために、ある平行光源と環境光成分を設定し、付加すべき陰影の計算を行う。具体的には、まず、平行光源の向きを示す単位ベクトルとして光源ベクトル（Ｌｘ，Ｌｙ，Ｌｚ）と、環境光成分Ａｂを設定する。光源ベクトル（Ｌｘ，Ｌｙ，Ｌｚ）、環境光成分Ａｂの数値は、表現したい像の状況に応じて適宜設定することができるが、例えば、（Ｌｘ，Ｌｙ，Ｌｚ）＝（０．５７７３５，０．５７７３５，０．５７７３５）、Ａｂ＝０．２と設定する。Ｌｘ，Ｌｙ，Ｌｚは絶対値が１未満の実数値（負値を含む），Ａｂは０以上１以下の実数値である。そして、不透明度ボクセル画像の勾配ベクトル（Ｇｘ，Ｇｙ，Ｇｚ）を以下の〔数式１〕に従った処理を実行することにより算出する。
【００５１】
〔数式１〕
Ｇｘ＝（Ｖα（ｘ＋１，ｙ，ｚ）−Ｖα（ｘ−１，ｙ，ｚ））・（Ｒｘｙ／Ｒｚ）
Ｇｙ＝（Ｖα（ｘ，ｙ＋１，ｚ）−Ｖα（ｘ，ｙ−１，ｚ））・（Ｒｘｙ／Ｒｚ）
Ｇｚ＝（Ｖα（ｘ，ｙ，ｚ＋１）−Ｖα（ｘ，ｙ，ｚ−１））
Ｇ＝（Ｇｘ2＋Ｇｙ2＋Ｇｚ2）1/2
【００５２】
〔数式１〕において、Ｖα（ｘ，ｙ，ｚ）は不透明度ボクセル画像のボクセル（ｘ，ｙ，ｚ）における不透明度で、Ｒｘｙは断層画像の解像度（画素間隔の逆数でｍｍあたりの画素数で、Ｘ方向とＹ方向は同一）、Ｒｚは断層画像のスライス解像度（断層画像のスライス間隔の逆数で、ｍｍあたりの断層画像のスライス数）、Ｇは勾配ベクトル（Ｇｘ，Ｇｙ，Ｇｚ）の大きさである。Ｒｘｙ／ＲｚはＺ軸方向変倍率と定義され、〔数式１〕において、ＧｘとＧｙを算出する式にＲｘｙ／Ｒｚを乗ずる代わりに、Ｇｚを算出する式にＲｚ／Ｒｘｙ、即ちｚ軸方向変倍率の逆数を乗じてもよい。〔数式１〕に示すように、陰影付加手段５０は、不透明度ボクセル画像の当該ボクセルのＸ軸方向、Ｙ軸方向、Ｚ軸方向の各々２近傍のボクセルの不透明度の差分値を勾配ベクトルのＸ方向成分、Ｙ方向成分、Ｚ方向成分として算出し、あらかじめ定義されたＺ軸方向変倍率に基づいてＸ方向・Ｙ方向成分またはＺ方向成分に補正を施した単位ベクトルを、当該ボクセルにおける勾配ベクトルとして算出する。さらに、Ｇ≧１の場合、以下の〔数式２〕に従った処理を実行して、拡散反射成分のみを含んだ輝度値Ｓ（ｘ，ｙ，ｚ）を算出する。Ｓ（ｘ，ｙ，ｚ）は、０以上１以下の実数値である。
【００５３】
〔数式２〕
Ｓ（ｘ，ｙ，ｚ）＝（１−Ａｂ）（｜Ｇｘ・Ｌｘ＋Ｇｙ・Ｌｙ＋Ｇｚ・Ｌｚ｜）／Ｇ＋Ａｂ
【００５４】
一方、〔数式１〕において算出されたＧの値がＧ＜１の場合、不透明度の勾配が存在しない均一な領域（背景部の空気中や肺野など）であるか、最外側であると考えられるため、陰影付加を行わず、輝度値Ｓ（ｘ，ｙ，ｚ）＝０とする。〔数式１〕において、｜Ｇｘ・Ｌｘ＋Ｇｙ・Ｌｙ＋Ｇｚ・Ｌｚ｜は、絶対値を示し、“Ｇｘ・Ｌｘ＋Ｇｙ・Ｌｙ＋Ｇｚ・Ｌｚ”が負値の場合でも、Ｓ（ｘ，ｙ，ｚ）が負値にならないようにしている。
【００５５】
そして、算出された輝度値Ｓ（ｘ，ｙ，ｚ）を用いて以下の〔数式３〕に従った処理を実行して、色成分ボクセル画像または不透明度付色成分ボクセル画像の各ボクセル値Ｖ（ｘ，ｙ，ｚ，ｃ）を補正して、補正後の各ボクセル値Ｖ´（ｘ，ｙ，ｚ，ｃ）を得る。
【００５６】
〔数式３〕
Ｖ´（ｘ，ｙ，ｚ，ｃ）＝Ｓ（ｘ，ｙ，ｚ）・Ｖ（ｘ，ｙ，ｚ，ｃ）
【００５７】
〔数式３〕において、ｃ＝０，１，２の値をとり、それぞれＲ，Ｇ，Ｂの色成分に対応する。したがって、１色８ビットの場合、３色で２４ビットであるので、色成分ボクセル画像の場合は、そのまま記録する。不透明度付色成分ボクセル画像の場合は、ｃ＝０，１，２について、〔数式３〕に従った処理を実行した後、さらに、ｃ＝３として、以下の〔数式４〕に従い、対応する不透明度ボクセル画像の値を与える処理を実行して、１ボクセル３２ビットに情報が記録された各ボクセル値Ｖ´（ｘ，ｙ，ｚ，ｃ）を得る。
【００５８】
〔数式４〕
Ｖ´（ｘ，ｙ，ｚ，３）＝Ｖα（ｘ，ｙ，ｚ）
【００５９】
なお、数式が繁雑になるのをさけるため、以下では、更新後のＶ´（ｘ，ｙ，ｚ，ｃ）をＶ（ｘ，ｙ，ｚ，ｃ）として扱う。
【００６０】
続くステップＳ５０、Ｓ６０の処理は、３Ｄテクスチャマッピング方式を用いる場合にのみ行われる。ステップＳ５０、Ｓ６０の処理は、レイキャスティング方式の場合には行われない。従って、不透明度付色成分ボクセル画像に対して処理が行われ、色成分ボクセル画像は更新されない。
【００６１】
３Ｄテクスチャマッピング方式の場合、アングル変更によりＲＯＩクリッピングの境界面が回転して境界面を構成する各ボクセルが階段状にずれると、境界面を構成する透明なボクセル（Ｒ＝Ｇ＝Ｂ＝α＝０）がＲＯＩ内部の近傍に位置する不透明なボクセル（α＞０）により補間され、Ｒ、Ｇ、Ｂ、αの各値が０でない値に変化する。そうすると、境界面の透明なボクセルが可視化されるようになり、ボリュームレンダリング像の境界面に回転角に応じた階段状の周期でモアレ（干渉縞）が発生する。（レイキャスティング方式の場合は、座標変換アルゴリズムの工夫により本問題を回避できる。）このようなモアレ発生を抑止するため、色補正手段６０が境界面に位置する透明なボクセルの補正を行う（ステップＳ５０）。ここで、透明なボクセルとは、不透明度ボクセル画像における不透明度αの値が０となるボクセルを意味する。本実施形態では、ボクセル画像として、不透明度ボクセル画像と、不透明度付色成分ボクセル画像の２つが存在し、不透明度ボクセル画像と不透明度付色成分ボクセル画像のｘ、ｙ、ｚの３軸方向におけるボクセル数はいずれも等しく、各ボクセル同士が互いに対応付けられている。そのため、不透明度ボクセル画像を参照して、不透明度付色成分ボクセル画像における不透明なボクセルを特定することができる。ステップＳ５０においては、不透明度ボクセル画像は参照されるだけであり、更新は行われない。不透明度ボクセル画像を参照して特定された不透明度付色成分ボクセル画像のボクセルの色成分の値を変更することにより、不透明度付色成分ボクセル画像が更新される。
【００６２】
図６は、透明なボクセルの色成分の色補正処理の詳細を示すフローチャートである。図６に示す処理においては、透明なボクセル、不透明なボクセルの探索は、１ボクセルに８ビットの不透明度αのみが記録された不透明度ボクセル画像を用いるため、不透明度を参照する際、不透明度ボクセル画像のみを参照すればよいことになる。そのため、上述のように、頻繁に行われる不透明度の参照、特に複数の近傍のボクセルの不透明度の参照に要するアクセス時間が大幅に削減される。図６に示す処理では、まず、不透明度ボクセル画像の最外側に位置する透明なボクセルを複数個抽出する（Ｓ５１）。不透明度ボクセル画像の最外側に位置する透明なボクセルは、ｘ＝Ｘｓ、ｘ＝Ｘｅ、ｙ＝Ｙｓ、ｙ＝Ｙｅ、ｚ＝Ｚｓ、ｚ＝Ｚｅで特定される。すなわち、ｘ＝Ｘｓ、ｘ＝Ｘｅ、ｙ＝Ｙｓ、ｙ＝Ｙｅ、ｚ＝Ｚｓ、ｚ＝Ｚｅのいずれかを満たすボクセルが、不透明度ボクセル画像の最外側に位置する透明なボクセルとなる。透明なボクセルは、前述のボクセル画像作成処理（Ｓ２０）により、ｘ≦ＸｓまたはＸｅ≦ｘまたはｙ≦ＹｓまたはＹｅ≦ｙまたはｚ≦ＺｓまたはＺｅ≦ｚの範囲に存在するが、ｘ＜ＸｓまたはＸｅ＜ｘまたはｙ＜ＹｓまたはＹｅ＜ｙまたはｚ＜ＺｓまたはＺｅ＜ｚの範囲では、２６近傍に不透明なボクセルが存在せず、モアレ発生に寄与しないため、処理負荷を削減するため、最外側に位置する透明なボクセルに限定して色補正処理を行う。上述のように、不透明度ボクセル画像と不透明度付色成分ボクセル画像のボクセル数は等しく、各ボクセル同士が互いに対応付けられているため、不透明度付色成分ボクセル画像の最外側に位置する透明なボクセルも特定できることになる。この対応関係から、抽出された複数個のボクセルの中から補正対象ボクセルを１個抽出する（Ｓ５２）。前述のボクセル画像作成処理（Ｓ２０）により、最外側に位置するボクセルの値（Ｒ、Ｇ、Ｂ、α）はあらかじめ全て０に設定されている。
【００６３】
次に、抽出された補正対象ボクセルについて、近傍の不透明なボクセルを探索する（Ｓ５３）。近傍のボクセルとしては、例えば、ｘｙｚ軸各方向に隣接する２６ボクセルを用いることができる。したがって、補正対象ボクセル（ｘ，ｙ，ｚ）に対しては、自身を除いたｘ−１〜ｘ＋１、ｙ−１〜ｙ＋１、ｚ−１〜ｚ＋１に属する２６ボクセルの中からα＞０となる不透明なボクセルを探索する。具体的には、近傍の２６ボクセルにα＞０となる不透明なボクセルが何個あるかをカウントする。ステップＳ５３の処理において、不透明なボクセルが存在した場合、すなわち、近傍の２６ボクセルにα＞０となる不透明なボクセルがＣ個（Ｃ≧１）であった場合（Ｓ５４：ＹＥＳ）、以下の〔数式５〕に従った処理を実行することにより、Ｓ５２で抽出された補正対象ボクセルの色成分の値を、Ｃ個の近傍に位置する不透明なボクセルの色成分の値の平均値に置換して更新する（Ｓ５５）。
【００６４】
〔数式５〕
Ｖ（ｘ，ｙ，ｚ，０）＝Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，０）／Ｃ
Ｖ（ｘ，ｙ，ｚ，１）＝Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，１）／Ｃ
Ｖ（ｘ，ｙ，ｚ，２）＝Σk=-1,1Σj=-1,1Σi=-1,1;Vα(x+i,y+j,z+k)>0Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，２）／Ｃ
【００６５】
一方、ステップＳ５３の処理において、近傍に不透明なボクセルが存在しない場合、すなわち、近傍の２６ボクセルにα＞０となる不透明なボクセルがＣ個（Ｃ＝０）であった場合（Ｓ５４：ＮＯ）、抽出された補正対象ボクセルの色成分の値をＲ，Ｇ，Ｂ全て０にする（Ｓ５６）。
【００６６】
続いて、ステップＳ５１において、抽出された全ての透明なボクセルについて、処理を終了したか否かを判定する（Ｓ５７）。終了していない場合は、ステップＳ５２に戻って、次の補正対象ボクセルを抽出する処理を行う。ステップＳ５２〜Ｓ５７の処理を繰り返し実行し、抽出された全ての透明なボクセルに対して処理を終了したら、ステップＳ５０の透明なボクセルの色成分の色補正処理を終了する。
【００６７】
ステップＳ５０において透明なボクセルの色成分の色補正処理を終了したら、補正した不透明度付色成分ボクセル画像を３Ｄテクスチャ画像に登録する（Ｓ６０）。この際、まず、不透明度付色成分ボクセル画像作成手段３３が、補正した不透明度付色成分ボクセル画像の各ボクセルに不透明度ボクセル画像の対応するボクセルの不透明度を追加し、不透明度付色成分ボクセル画像を完成させる。すなわち、不透明度付色成分ボクセル画像は、１ボクセルを３２ビット形式とし、既に２４ビットにＲ、Ｇ、Ｂの色成分が記録されているので、各ボクセルに対応する不透明度ボクセル画像の不透明度αを８ビットで記録する。なお、〔数式４〕に示したように、既にステップＳ４０において、１ボクセル３２ビットに情報が記録された各ボクセル値を生成している場合は、ここでは行う必要はない。ステップＳ４０において、不透明度付色成分ボクセル画像に不透明度ボクセル画像の不透明度αが記録されていない場合には、ステップＳ６０において、〔数式４〕に従った処理を実行して、不透明度αを８ビットで記録し、不透明度付色成分ボクセル画像を完成させる。
そして、レンダリング手段７０が、３Ｄテクスチャマッピング方式を実行する際に用いられる３Ｄテクスチャ画像として不透明度付色成分ボクセル画像を登録する。
【００６８】
図７は３Ｄテクスチャマッピングにおける対応付けを示す図である。図７（ａ）は、テクスチャ座標系における３Ｄテクスチャマップ、図７（ｂ）は、ワールド座標系で定義される積層四角形を示す。積層四角形を構成する各四角形の４頂点には、３Ｄテクスチャ画像の４ボクセルが対応付られており、図７のように回転がかかっていない状態では、各四角形はテクスチャマップの基になっている断層画像と１対１で対応しており、各四角形の４頂点は断層画像の４隅の画素に対応付られている。
【００６９】
具体的には、図７（ｂ）に示すように、定義された積層四角形に対し、３Ｄテクスチャマッピングを行う。この場合、ワールド座標系（視点座標系に対応）における各四角形の４頂点の３次元ワールド座標とテクスチャ座標系（ボクセル座標系に対応）における３Ｄテクスチャ画像の３次元テクスチャ座標とを対応付ける。図７に示すように、（−１，−１，ｚ）、（−１，１，ｚ）、（１，−１，ｚ）、（１，１，ｚ）の４頂点で構成される四角形に対して、ワールド座標の（−１，−１，ｚ）は、テクスチャ座標（０，０，ｒ）に対応付けられている。
【００７０】
後述の通り、アングル変更の指示があると、図７（ａ）のテクスチャマップがテクスチャ座標系において３次元的に回転した、変換後３Ｄテクスチャ画像が生成されるため、各四角形と断層画像との対応関係は崩れる。色成分について補正済みの不透明度付色成分ボクセル画像を、ＯｐｅｎＧＬ（グラフィックＡＰＩ）を介して３Ｄテクスチャ画像として登録する。
【００７１】
続いて、レンダリング処理を行う（Ｓ７０）。レンダリング処理は、３Ｄテクスチャマッピング方式とレイキャスティング方式の２通りに対応している。まず、３Ｄテクスチャマッピング方式について説明する。
【００７２】
＜２．１．３Ｄテクスチャマッピング＞
図８は、３Ｄテクスチャマッピング方式の処理を行う場合の、レンダリング手段７０の構成を示す図である。図８に示すように、レンダリング手段７０は、３Ｄテクスチャ登録手段７１、座標変換手段７２、積層四角形設定手段７３、画素値算出手段７４を有する。上述のように、レンダリング手段７０は、３Ｄテクスチャマッピング方式の場合は、ＣＰＵ１が補助しながら、主にＧＰＵ７においてプログラムを実行することにより実現されるが、特に処理負荷が大きい座標変換手段７２および画素値算出手段７４は、汎用コンピュータのビデオカードに搭載されているＧＰＵおよびフレームメモリを用いて実行するようにすることが好ましい。
【００７３】
３Ｄテクスチャマッピング方式の処理においては、まず投影画面を設定する。図９は、本実施形態のレンダリング手段７０による投影画面設定の一例を示す説明図である。レンダリング手段７０は、レンダリング画像のスクリーンサイズ（縦横画素数、縦横アスペクト比率）を設定する。レンダリング手段７０は、平行投影（通常の外観レンダリング）又は透視投影（内視鏡モード）のいずれかを設定する。尚、「レンダリング画像」は「ボリュームレンダリング像」と同義で、以降、「ボリュームレンダリング像」を「レンダリング画像」と表記する場合がある。そして、レンダリング手段７０は、透視投影が設定された場合、透視投影パラメータを設定する。透視投影パラメータは、例えば、カメラの視野角度（焦点距離）、視点位置（視点と注視点で構成され、前者は目の位置で後者は見ている対象物上の位置で、双方ともＺ軸上に設定される。一般に、注視点はワールド座標系の原点に固定）、クリッピング位置（視点からのＺ軸上の距離、近方及び遠方の２箇所）などを含む。なお、クリッピング位置は、近方だけでもよい。図９に示すように、平行投影の場合には、視点からの視線は全てＺ軸に平行となり、視点は仮想的に左方向に無限遠に離れた位置にあることを想定しているため、Ｚ軸方向に定義されている全ての積層四角形がレンダリング対象になる。一方、透視投影の場合には、視点からの視野角度に応じて、視線が広がり、視点が積層四角形の内部に入るため、レンダリング対象は近方クリッピングより遠方クリッピング（通常は積層四角形の視点から最も遠い四角形）までの範囲に制限されている。
【００７４】
図１０は３Ｄテクスチャマッピング方式によるレンダリング処理の詳細を示すフローチャートである。まず、図８の３Ｄテクスチャ登録手段７１が、不透明度付色成分ボクセル画像を３Ｄテクスチャ画像としてＯｐｅｎＧＬに登録する。次に、座標変換手段７２が、３Ｄテクスチャ画像に対して所定の座標変換を行って変換後３Ｄテクスチャ画像を生成する（Ｓ７１〜Ｓ７３）。
【００７５】
具体的には、座標変換手段７２は、所定の３次元座標系における回転を定義した４×４行列、視野角度、視点位置、クリッピング位置、ｘｙｚ軸各方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向変倍率を含む所定の座標変換のパラメータを取得し、３Ｄテクスチャ画像に対して、取得したパラメータを用いた所定の座標変換を行って変換後３Ｄテクスチャ画像を生成する。
【００７６】
個々のステップについて説明すると、座標変換手段７２は、３Ｄテクスチャ画像に対するスケーリング及びｚ方向変倍処理を行う（Ｓ７１）。スケーリングはｘｙｚ軸方向に対して同一の倍率Ｓｃａｌｅで拡大または縮小をかけるが、ｚ方向変倍処理はｘｙ軸方向の解像度Ｒｘｙとｚ軸方向の解像度Ｒｚの相違を補正するため、ｚ軸方向のみに指定倍率Ｓｃｚ（＝Ｒｘｙ／Ｒｚ）で拡大または縮小をかける。そして、座標変換手段７２は、所定の３次元座標系における回転を定義した４×４行列を用いて３Ｄテクスチャ画像に対する回転処理を行う（Ｓ７２）。
【００７７】
そして、座標変換手段７２は、ｘｙｚ軸各方向のオフセット値（Ｘｏｆｆ，Ｙｏｆｆ，Ｚｏｆｆ）を用いて３Ｄテクスチャ画像に対するオフセット処理を行う（Ｓ７３）。これらの処理（Ｓ７１〜Ｓ７３）により、変換後３Ｄテクスチャ画像が生成される。次に、積層四角形設定手段７３は、複数の四角形で構成される積層四角形を設定する（Ｓ７４）。具体的には、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する。３Ｄテクスチャマッピングを設定する場合、積層四角形設定手段７３は、複数のｘｙ平面画像の数と同数の四角形をＺ軸方向に並べた積層四角形を設定する。
【００７８】
積層四角形における四角形の数は任意に設定することができるが、四角形の数と断層画像の枚数とが一致しない場合、Ｚ軸方向に補間処理が働き、座標変換による座標値の丸め誤差が累積し、ストライプ・格子状のモアレが発生する。そして、図７で示されるように、各四角形の４頂点に対して、対応する変換後３Ｄテクスチャ画像における４箇所のボクセル座標を定義することにより、変換後３Ｄテクスチャ画像との対応付けを行う（Ｓ７５）。定義するボクセル座標は、不透明度付色成分ボクセル画像の座標系ではなく、ＯｐｅｎＧＬのテクスチャ座標系（Ｒ，Ｓ，Ｔの３軸方向に対し０から１の範囲の実数値）に基づいたものである。
【００７９】
具体的には、図７（ｂ）に示すように、定義された積層四角形に対し、３Ｄテクスチャマッピングを行う。この場合、ワールド座標系における各四角形の４頂点の３次元ワールド座標とテクスチャ座標系における３Ｄテクスチャ画像の３次元テクスチャ座標とを対応付ける。図７に示すように、（−１，−１，ｚ）、（−１，１，ｚ）、（１，−１，ｚ）、（１，１，ｚ）の４頂点で構成される四角形に対して、ワールド座標の（−１，−１，ｚ）は、テクスチャ座標（０，０，ｒ）に対応付けられている。
【００８０】
次に、画素値算出手段７４は、所定の視点からＺ軸方向に平行な視線上の最も遠い四角形から視点に最も近い四角形の順にスキャンコンバージョン（四角形内部の塗りつぶし）を行う（Ｓ７６）。この時、各四角形に貼りついている変換後３Ｄテクスチャ画像のボクセルの色成分（Ｒ，Ｇ，Ｂ）に基づいて四角形内部を塗りつぶすとともに、同一画素に塗り重ねる際、変換後３Ｄテクスチャ画像のボクセルの不透明度に基づいてアルファブレンディングを併せて行う。このように、積層四角形のＸＹＺ座標に対応する変換後３Ｄテクスチャ画像のボクセルの（Ｒ，Ｇ，Ｂ）で構成される色成分（Ｒ，Ｇ，Ｂ）をボクセルの不透明度に基づいて視点から遠い四角形の順にアルファブレンディングして得られた（Ｒ，Ｇ，Ｂ）で構成される色成分を、ボリュームレンダリング像の画素値として与える。これにより、ボリュームレンダリング像が得られる（Ｓ７６）。
【００８１】
より具体的には、あらかじめレンダリング画像の画素値（ＲＧＢ値）は全て背景色（例えば、Ｒ＝Ｇ＝Ｂ＝０）で初期化しておく。画素値算出手段７４は、視点から最も遠い四角形に対して、貼り付いている変換後３Ｄテクスチャ画像を参照しながら、スキャンコンバージョンを行う。図９で定義したレンダリング画像に平行投影または透視投影を行い、投影された四角形のワールド座標系におけるＸＹＺ座標の（−１，−１，−１）からＸ軸方向及びＹ軸方向に、投影されたレンダリング画像に対して塗り潰す画素の座標を（ｉ，ｊ）とし、レンダリング画像における画素間隔に対応する間隔ｕ（レンダリング画像の１画素に対応するワールド座標の間隔をｕとする。例えばｕ＝０．００２）でスキャンコンバージョンを行う。スキャンコンバージョンされた、各ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１）（ｉ，ｊはレンダリング画像の座標値で、例えば０≦ｉ，ｊ≦５１１の整数）において、各々対応するテクスチャ座標（２ｉｕ，２ｊｕ，０）を算出し、算出したテクスチャ座標に基づいて変換後３Ｄテクスチャ画像を参照し色成分の値（ＲＧＢ値）及び不透明度を取得して、対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されている画素値（ＲＧＢ値）と取得した不透明度に基づいてアルファブレンディング処理を行い、対応するレンダリング画像の座標（ｉ，ｊ）の画素値を更新する。
【００８２】
このようにして、視点から最も遠い単一の四角形が投影されるレンダリング画像の対応する全ての画素についてアルファブレンディング処理が終了すると、Ｚ座標をｖ（四角形がＺ軸方向に配置されているワールド座標の間隔をｖとする。例えば、ｖ＝２／Ｓｚ）だけ増やし、視点方向に次に近い四角形（−１＋ｉｕ，−１＋ｊｕ，−１＋ｖ）について同様の処理を繰り返してレンダリング画像を更新する。全ての四角形についてスキャンコンバージョンしてワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）（ｋは四角形の番号で、０≦ｋ≦Ｓｚ−１の整数）に対してアルファブレンディングの処理が終了するとレンダリング画像が完成する。アルファブレンディング処理は、以下の〔数式６〕に従った処理として行われる。
【００８３】
〔数式６〕
Ｒ´＝Ｒ・α＋（１−α）・Ｒｂ
Ｇ´＝Ｇ・α＋（１−α）・Ｇｂ
Ｂ´＝Ｂ・α＋（１−α）・Ｂｂ
【００８４】
ここで、Ｒ′、Ｇ′、Ｂ′は、投影面において更新されるレンダリング画像の画素値（ＲＧＢ値）である。Ｒ、Ｇ、Ｂは、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する変換後３Ｄテクスチャ画像のボクセル（２ｉｕ，２ｊｕ，２ｋｖ）における色成分（ＲＧＢ値）であり、重ねる色の値に相当する。αも、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する変換後３Ｄテクスチャ画像のボクセル（２ｉｕ，２ｊｕ，２ｋｖ）におけるα値であり、重ねる割合を制御する。また、Ｒｂ、Ｇｂ、Ｂｂは、ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されている画素値（ＲＧＢ値）であり、当該四角形に対して視点と反対側に１つ前に位置する四角形に対して上記〔数式６〕に基づいて算出されたＲ′、Ｇ′、Ｂ′の値に一致し、視点から最も遠い四角形に対して算出する場合は背景色（例えば、Ｒｂ＝Ｇｂ＝Ｂｂ＝０）が与えられる。
【００８５】
＜２．２．レイキャスティング＞
次に、レイキャスティング方式によりステップＳ７０のレンダリング処理を行う場合について説明する。図１１は、レイキャスティング方式の処理を行う場合の、レンダリング手段７０の構成を示す図である。図１１に示すように、レンダリング手段７０は、探索制御マスク作成手段７７、レイキャスティング手段７８を有する。
【００８６】
図１２は、レイキャスティング方式によるレンダリング処理の詳細を示すフローチャートである。後述する処理において、探索制御マスク作成手段７７、レイキャスティング手段７８は、不透明度ボクセル画像より不透明度を取得するごとに、座標変換を行う。その処理に先立ち、レンダリング手段７０は、以後のステップにおいて座標変換を実施する際に共通に用いる座標変換パラメータを設定する（ステップＳ２１０）。座標変換パラメータの設定は、ボクセルに対して仮想光を照射する際、ボクセル単位に逐次座標変換処理を円滑に行うことができるようにするために、視点を基準とする視点座標系における３次元座標値を基にボクセル画像が定義されているボクセル座標系の３次元座標値に変換し、ボクセル座標系において対応するボクセルの色成分または不透明度を取得するための処理である。座標変換の概念図と座標変換パラメータの具体例については後述する。
【００８７】
次に、探索制御マスク作成手段７７が、レンダリング画像の各画素において、仮想光の光強度および当該画素の輝度値（ＲＧＢ値）を積算する処理を開始するボクセルの起点座標を、レンダリング画像の全画素について算出する。仮想光が通過する全てのボクセルが完全に透明である（不透明度が０である）場合、仮想光の光強度はそのまま維持されてボクセル画像の空間を素通りしてしまうので、レイキャスティング処理は必要ない。そのため、本実施形態においては、視点から見て不透明度が０ではない最初のボクセルの視点座標系におけるｚ座標を、視線方向に沿って探索する。探索により最初に発見される不透明度が０ではないボクセルのｚ座標を起点座標と呼ぶことにする。ステップＳ２２０においては、レンダリング画像の画素（ｘ，ｙ）ごとに視点座標系のｚ軸方向（本実施形態ではｚ軸の負方向）に起点座標を探索する。探索結果はレンダリング画像の画素の座標値（ｘ，ｙ）に対応させて探索制御マスクとして保持しておく。探索制御マスクの例については後述する。
【００８８】
レンダリング画像の各画素（ｘ，ｙ）は、２次元座標系で定義されている。これに対して、ボクセルの座標系は３次元座標系で定義されており、３次元のボクセル座標系を２次元座標系に投影変換させた投影像が求めるレンダリング画像である。しかし、レンダリング画像を算出するにあたっては、レンダリング画像を視点座標系という３次元座標系の所定のｚ座標（本実施形態ではｚ軸方向の上限値）に配置し、レンダリング画像の各画素（ｘ，ｙ）に対してｚ座標を付加しながら、３次元の視点座標系を３次元のボクセル座標系に逆投影変換させながら、各画素（ｘ，ｙ）の輝度値を算出する方法をとる。前述の座標変換パラメータは、逆方向に投影変換を行うことを前提に設定されており、レイキャスティング方式における座標変換は、逆方向に投影変換を行うものとする。（一方、前述の３Ｄテクスチャマッピング方式における座標変換は、ＧＰＵを用いて順方向に投影変換を行う方法をとっている）。視点座標系においては、同一の座標（ｘ，ｙ）に対して視線方向（ｚ軸負方向）に複数個のボクセルが連続的に配置されていると想定できる。各画素の輝度値を算出するにあたり、視点座標系において所定のｚ座標の位置よりｚ方向に仮想光を投射し、仮想光が通過する各ボクセルに対して座標変換を行い、３次元のボクセル座標系における対応する色成分ボクセル画像のボクセルの色成分の値と不透明度ボクセル画像のボクセルの不透明度を取得することになる。前記所定のｚ座標は、探索制御マスク作成手段７７により事前に算出された探索制御マスクより取得でき、探索制御マスク作成手段７７においても座標変換が行われ、前記仮想光が通過する各ボクセルに対する座標変換を含め、ステップＳ２１０で算出した座標変換パラメータを用いることができる。
【００８９】
ステップＳ２２０においては、不透明度が０ではないボクセルを探索するので、ボクセルが有する色成分を参照する必要はない。したがって、探索制御マスク作成手段７７は、ステップＳ２２０において不透明度ボクセル画像のみを参照し、色成分ボクセル画像は参照しない。座標変換処理は、レンダリング画像の各画素（ｘ，ｙ）に対応する視点座標系の単一の座標（ｘ，ｙ，ｚ）のボクセルに対して、ボクセル画像が定義されている３次元のボクセル座標系における対応する座標（ｘ’，ｙ’，ｚ’）のボクセルの色成分の値（ＲＧＢ）および不透明度を取得する処理であるが、座標値（ｘ’，ｙ’，ｚ’）は実数値で端数をもつため、座標値（ｘ’，ｙ’，ｚ’）の８近傍の整数の座標値に対応する各ボクセルの色成分の値（ＲＧＢ）および不透明度を補間する演算処理を必要とする。色成分ボクセル画像の参照を行なわずに不透明度ボクセル画像のみを参照する方法をとることにより、座標変換処理の演算負荷が１／４に削減される。
【００９０】
レイキャスティング手段７８は、レンダリング画像の各画素（ｘ、ｙ）において、ステップＳ２２０で探索した起点のｚ座標を起点として、視点座標系においてｚ負方向に仮想光を投射し、仮想光が通過する各ボクセルに対して３次元のボクセル座標系における対応する不透明度ボクセル画像のボクセル不透明度と色成分ボクセル画像のボクセルの色成分を用いて仮想光の光強度および当該画素の輝度値（ＲＧＢ値）を積算することにより累積輝度値を得て、レンダリング画像の各画素（ｘ，ｙ）の画素値を算出する。ステップＳ２３０においても、ステップＳ２１０で算出した座標変換パラメータを用いて座標変換を行い、視点座標系の各ボクセルに対してボクセル座標系における対応するボクセルの色成分の値と不透明度の双方を取得する必要がある。座標変換処理はステップＳ２３０においても視点座標系のボクセルを参照するごとに実施する。
【００９１】
図１３は、座標変換の概念図である。レンダリング画像は視点から見た画像であるので、レンダリング画像の各画素（ｘ，ｙ）の基準となる視点座標系は必ずしもボクセル座標系とは一致していない。そこでレイキャスティング手段７８は、ボクセル座標系に定義されているボクセル画像を視点座標系に変換する必要がある。しかし、例えば、５１２×５１２画素のスライス画像が２５６枚で構成されるボクセル画像を視点座標系に変換すると、後述するＺ方向変倍率を２．０として、ｘ：５１２×ｙ：５１２×ｚ：５１２ボクセルの視点座標系に変換されたボクセル画像を作成する必要があり、５１２の３乗回の座標変換が必要になる。これに対して、起点座標の探索を行う際は、不透明度が０でないボクセルが即座に見つかれば、ｚ方向に後続するボクセルに対しては参照する必要が無く、レイキャスティング処理を行う際は、仮想光の光強度が所定の値以下に減衰すれば積算処理を打ち切ることができ、ｚ方向に後続するボクセルに対しては参照する必要が無い。即ち、視点座標系に変換された５１２の３乗個のボクセルの大半は参照されないため、ボクセル画像の全てのボクセルに対して座標変換を行って保持する必要は無い。
【００９２】
図１３（ｂ）に示されるような視点座標系に座標変換されたボクセル画像を生成せず、視点座標系を基準にして、図１３（ｂ）の下方向の矢印で示される仮想光が通過して参照されるボクセルに限定して、その都度、ボクセル画像が定義されているボクセル座標系に逆方向に座標変換処理を実行させるようにした。参照されないボクセルに対しては座標変換処理が実行されないため、あらかじめボクセル座標系から視点座標系に変換された全てのボクセル画像を作成した上で、起点座標探索とレイキャスティング処理を行う公知の方法に比べ、３次元のボクセル画像を保持するメモリが不要になるとともに、座標変換の回数を削減することができ、メモリアクセス負荷および演算負荷を抑制することができる。
【００９３】
座標変換を実施する際には、様々な座標変換パラメータを用いる。視点座標系とボクセル座標系の位置関係が同じであれば、座標変換パラメータも同じであると考えられる。即ち、探索制御マスク作成手段７７およびレイキャスティング手段７８において、視点座標系で参照される全てのボクセルに対して、ボクセル座標系に座標変換を実施するための座標変換パラメータは同一である。そこでレンダリング手段７０は、ステップＳ２１０において座標変換パラメータをあらかじめ算出し、以後のステップにおいてはその座標変換パラメータを共通の座標変換パラメータとして流用する。座標変換パラメータとしては例えば以下のようなものが挙げられる。
【００９４】
・所定の３次元座標系における回転を定義した３×３行列（逆方向に投影変換が行われるため、指示入力Ｉ／Ｆ４により指示され定義された３×３行列の逆行列）
・ＸＹＺ軸方向のオフセット値：Ｘｏｆｆ、Ｙｏｆｆ、Ｚｏｆｆ（単位：ボクセル）
・拡大又は縮小倍率：ＳｃａｌｅＸＹＺ各軸について同じ値を用いる。
・Ｚ方向変倍率：Ｓｃｚ＝Ｒｘｙ／Ｒｚ、ＸＹ方向の解像度ＲｘｙとＺ方向の解像度Ｒｚの間の比率  
【００９５】
図１４は、ステップＳ２２０において探索制御マスク作成手段７７が探索制御マスクを作成する手順を説明する図である。探索制御マスク作成手段７７は、レンダリング画像の画素（ｘ，ｙ）ごとに起点座標を記述した探索制御マスクを作成する。起点座標とは、視点座標系において、視点（ｚ＝上限値）からボクセルをｚ軸負方向（ｚ＞０）に探索して最初に見つかった不透明度が０でない値をもつボクセルの視点座標系におけるｚ座標値（正また０の値）である。探索した結果、不透明度が０でない値をもつボクセルが見つからなかった場合、即ちｚ方向の末端まで全てのボクセルが透明な場合、起点座標として負値（−１）を設定する。
【００９６】
レンダリング画像の全ての画素の座標（ｘ，ｙ）について、始めに仮想光を投射する起点座標を探索する必要があるが、この探索処理は座標（ｘ，ｙ）ごとに視点座標系のｚ軸方向の複数のボクセルの不透明度を参照する必要があり、各ボクセルの不透明度を取得するために座標変換処理を実行して対応するボクセル座標系の複数のボクセルの不透明度の値を補間する処理を実行するため、演算負荷が比較的大きい。そこで、２次元の探索制御マスクを作成する方法をとることにより、一部の座標に対する起点座標については、近傍の座標において探索された起点座標を流用し、探索処理を省略することができる。本実施形態においては個々の画素に対して実行される起点座標の探索処理の演算負荷を抑制するため、以下の手順により探索制御マスクを作成する。
【００９７】
探索制御マスク作成手段７７は、まずレンダリング画像のｘ軸方向およびｙ軸方向の偶数番目の画素（２ｍ，２ｎ）（ｍ＝０，１，・・・、ｎ＝０，１，・・・）について、起点座標を探索する。図１４（ａ）の塗り潰した部分がこれに相当する。レンダリング画像の画素数は一般に５１２×５１２など偶数個に設定される場合が多く、後述する補間処理では画像末端部の奇数番目の画素の起点座標を設定できないため、図１４（ａ）のように、ｘ軸方向の右末端の画素およびｙ軸方向の下端の画素についても起点座標を探索する。
【００９８】
探索制御マスク作成手段７７は、レンダリング画像のｙ軸方向の偶数番目の画素の中で、ｘ方向の奇数番目の画素（２ｍ＋１，２ｎ）について、先に探索されたｘ方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素（１，０）については、両隣である画素（０，０）の起点座標と画素（２，０）の起点座標が同じであるか否かをチェックする。ただし、ｘ方向の右末端の画素は奇数番目であっても、図１４（ａ）の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合、対象物は当該画素近傍において同様の形状を有していると推定されるので、間に挟まれている画素の起点座標も両隣の起点座標と同じであるとみなすことができる。また、両隣の起点座標が負値となる背景部の画素である場合、間に挟まれている画素も背景部であるとみなすことができる。そこで探索制御マスク作成手段７７は、画素（２ｍ＋１，２ｎ）の両隣の起点座標が同じである場合、画素（２ｍ＋１，２ｎ）についても同じ起点座標を設定する。図１４（ｂ）の縦ハッチング部分がこれに相当する。一方、両隣の起点座標が異なる場合、両隣の偶数番目の画素と同様に、探索制御マスク作成手段７７は、起点座標を探索する処理を実行し、探索した起点座標を設定する。
【００９９】
探索制御マスク作成手段７７は、レンダリング画像のｙ方向が奇数番目でｘ方向は全ての画素（ｘ，２ｎ＋１）について、ｙ方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素（０，１）については、両隣である画素（０，０）の起点座標と画素（０，２）の起点座標が同じであるか否かチェックする。ただし、ｙ方向の下末端行の画素は奇数番目であっても、図１４（ｂ）の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合は、ｘ方向と同様に、間に挟まれている画素についても同じ起点座標を設定する。そして、両隣の起点座標が異なる場合は、ｘ方向と同様に、探索制御マスク作成手段７７は、起点座標を探索する処理を実行し、探索した起点座標を設定する。図１４（ｃ）の横ハッチング部分がこれに相当する。
【０１００】
図１４では縦横１画素置きに起点座標の探索を行い、間に挟まれている１画素を両隣の画素を基に補間する方法を示したが、これは一例に過ぎず、縦横Ｍ（Ｍ＞１）画素置きに起点座標の探索を行い、間に挟まれているＭ個の各画素を両隣の画素を基に補間する方法をとることもでき、その場合は演算負荷を更に抑制することができる。
【０１０１】
図１４においては、ｘｙ方向の隣接画素において探索された起点座標を基に一部の起点探索の処理を省略することにより起点座標の設定を高速化する手順を説明した。これに代えてまたは併用して、ｚ方向の起点探索の処理自体を高速化することにより、起点探索の演算負荷を二重に抑制することができる。
【０１０２】
探索制御マスク作成手段７７は、視点から開始して視線座標系のｚ方向に沿って各ボクセルの不透明度を参照する。始めに、視点位置（ｚ＝上限値）におけるボクセルの不透明度を確認し、不透明度が０でない場合は被写体の表面（切断面）であるため、起点座標はｚ＝上限値で探索打ち切りとなり、演算負荷が小さい。しかし、視点位置（ｚ＝上限値）におけるボクセルの不透明度が０である場合（背景部に多い）、ｚ方向に透明なボクセルが連続して存在する可能性が高く、背景部ではｚ方向の末端部まで全てのボクセルの不透明度が０となり、ｚ方向に連続するボクセルを順次参照する方法をとると、起点座標が負値であることを決定するためにｚ方向の末端部まで全てのボクセルに対して座標変換を行いながらボクセルの不透明度を参照する必要があり、膨大な演算負荷を伴ってしまう。そこで、視点位置（ｚ＝上限値）におけるボクセルの不透明度が０である場合は、隣接するボクセルを順次参照するのではなく、任意個数のボクセルをスキップしながら不透明度を参照する。例えばｚ方向に８ボクセルごとに不透明度を参照する。ｚ方向の終端のボクセルに至っても不透明度が０ではないボクセルが見つからなかった場合は、起点座標として負値を設定して探索打ち切りとする。一方、不透明度が０ではない（完全透明ではない）最初のボクセルが見つかった場合は、起点座標を正確に決定するための工程に移る。
【０１０３】
探索制御マスク作成手段７７は、最初に見つかった不透明ボクセルから視点に向かってｚ軸正方向に遡り、不透明度が０である最初のボクセルを探索する。このときは視点座標系のｚ方向に隣接するボクセルの不透明度を１ボクセルごとにスキップ幅を上限として順次参照する。不透明度が０である最初のボクセルが見つかった時点で、その１つ前のボクセル（視点から遠ざかる負方向）の視点座標系におけるｚ座標を起点座標として、探索制御マスクに格納する。スキップ幅の上限まで遡って、不透明度が０である最初のボクセルが見つからなかった場合は、最初に見つかった不透明ボクセルの視点座標系におけるｚ座標を起点座標として、探索制御マスクに格納する。以上の手順により、ｚ方向の起点探索を高速化することができる。
【０１０４】
探索制御マスク作成手段７７は、視点座標系（ｘ，ｙ，ｚ）を基準としてｚ方向に配置されたボクセルの不透明度を参照することになる。しかし実際に参照するのはボクセル座標系におけるボクセルが有する不透明度であるので、実際のボクセルが有する不透明度を取得するためには、視点座標系からボクセル座標系への座標変換が必要になる。座標変換のためのパラメータは、ステップＳ２１０においてあらかじめ算出しておけばよい。座標変換により算出したボクセル座標系の座標値（ｘ’，ｙ’，ｚ’）は実数値になるが、ボクセル座標系におけるボクセルを参照するためには整数値に変換する必要がある。この時、小数点以下を切り捨てて整数化してボクセル座標系における単一のボクセルを参照する方法をとると、レンダリング画像にモアレが発生することが知られているため、算出されたボクセル座標系の実数座標値（ｘ’，ｙ’，ｚ’）に隣接する８近傍の整数座標値のボクセルの不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、不透明度を算出する方法が望ましい。後述するレイキャスティング処理においても同様であるが、レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色成分の値も参照する必要があるため、起点座標の探索における座標変換の処理負荷はレイキャスティング処理における座標変換の処理負荷に比べ１／４に抑制できる。
【０１０５】
図１５は、探索制御マスク作成手段７７が各画素において起点座標を探索する手順を説明するフローチャートである。探索制御マスク作成手段７７は、各対象画素（ｘ，ｙ）について本フローチャートを実施する。以下図１５の各ステップについて説明する。
【０１０６】
探索制御マスク作成手段７７は、起点座標を探索する対象画素（ｘ，ｙ）、３次元座標（ｘ，ｙ，ｚ）をセットする。ｚ座標の初期値はｚ＝Ｚｓ（上限値）とする。Ｚｓは視点のｚ座標である。
【０１０７】
探索制御マスク作成手段７７は、３次元座標（ｘ，ｙ，ｚ）について、座標変換を実施して対応する不透明度ボクセル画像のボクセルの不透明度αを算出する。算出手順としては、例えば上述のように隣接するボクセルの不透明度を重み付け加算する手法を用いることができる。この座標変換は第１の座標変換となる。αが０でなければステップＳ３０５へ進み、αが０であればステップＳ３０３へ進む。
【０１０８】
ステップＳ３０３において、探索制御マスク作成手段７７は、ｚ軸方向に所定個数のボクセルをスキップする。具体的には現在のｚ座標からｍ（例えばｍ＝８）減算する。減算した結果、ｚ座標が０以上である場合はステップＳ３０２へ戻って同様の処理を繰り返す。ｚ座標が０未満になった場合は、ステップＳ３０４へ進む。
【０１０９】
ステップＳ３０４において、探索制御マスク作成手段７７は、現在の対象画素（ｘ，ｙ）に対応する探索制御マスクの値Ｍ（ｘ，ｙ）に対して、起点座標が見つからなかった旨を示す値（例えば−１などの負値）をセットして起点座標の探索処理を終了する。
【０１１０】
ステップＳ３０５に進んだ場合、探索制御マスク作成手段７７は、変数ｉを初期化した後、１だけインクリメントする（Ｓ３０６）。ｉがｍまで到達した場合、または現在のｚ座標にｉを加算すると視点ｚ座標に達する場合は、ステップＳ３０８に進み、探索制御マスクの値Ｍ（ｘ，ｙ）に対して、現在のｚ座標にインクリメントする前のｉを加算した値をセットする。ｉがｍまで到達しておらず、かつ現在のｚ座標にｉを加算しても視点ｚ座標まで達しない場合は、ステップＳ３０７へ進む。
【０１１１】
ステップＳ３０７において、探索制御マスク作成手段７７は、３次元座標（ｘ，ｙ，ｚ＋ｉ）について、座標変換を実施して対応する不透明度ボクセル画像のボクセルの不透明度αを算出する。算出手順はステップＳ３０２と同じである。この座標変換も第１の座標変換となる。αが０でなければステップＳ３０６へ戻ってｉをインクリメントして同様の処理を繰り返す。αが０であればステップＳ３０８へ進む。
【０１１２】
ステップＳ３０８において、探索制御マスク作成手段７７は、現在の対象画素（ｘ，ｙ）に対応する探索制御マスクの値Ｍ（ｘ，ｙ）に対して、ステップＳ３０７の１つ手前のｚ座標（ｚ＋ｉ−１）をセットして起点座標の探索処理を終了する。
【０１１３】
レイキャスティング手段７８は、求めるレンダリング画像の各画素の（ｘ，ｙ）座標に対して探索制御マスクが保持している起点座標を参照して、視点座標系において起点座標よりｚ方向に仮想光を投射し、仮想光が通過する各ボクセル（ｘ，ｙ，ｚ）に対して‘‘ボクセル座標系における対応するボクセル（ｘ’，ｙ’，ｚ’）の色成分の値と不透明度を用いて仮想光の光強度および当該画素の輝度値（ＲＧＢ値）をｚ方向のボクセルごとに積算し、仮想光の光強度が所定の値以下に減衰するか、ｚ方向の終端のボクセルに至る段階まで積算する処理を継続し、最終的に積算された当該画素の輝度値（ＲＧＢ値）を基にレンダリング画像の当該画素（ｘ，ｙ）の画素値（ＲＧＢ値）を算出して与える。
【０１１４】
レイキャスティング処理の途上で、あるｚ座標におけるボクセルの不透明度が０である（すなわち透明である）場合がある。透明ボクセルに対しては仮想光の光強度および画素の輝度（ＲＧＢ値）の積算処理は行われないため、透明ボクセルはスキップし、次の不透明ボクセルを探索する。このときレイキャスティング手段７８は、視点座標系のｚ方向において視点からずれたｚ＞０である途中の透明ボクセルから探索を開始して上記の探索制御マスク作成手段７７が起点座標を探索する方法と同様な手法により、不透明度が０でない最初のボクセルを高速に探索することができる。レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色成分の値も必要になるが、不透明ボクセルを探索する際は、ボクセルの色成分の値は不要なため、座標変換において不透明度だけを算出すればよく、座標変換の演算負荷を１／４に抑制できる。不透明度が０でないボクセルが見つかると、そのボクセルからレイキャスティング処理を再開し、仮想光の光強度が所定の値以下に減衰するか、ｚ方向の終端のボクセルに至るまでレイキャスティング処理を継続する。このようにして、レイキャスティング処理の途中に存在する透明なボクセルに対して座標変換を伴いながら色成分の値および不透明度を参照する処理をスキップすることにより、レイキャスティング処理を高速化することができる。
【０１１５】
レイキャスティング手段７８が色成分や不透明度を参照する際には、視点座標系（ｘ，ｙ，ｚ）を基準として対応するボクセル座標系におけるボクセルのこれら値を参照することになる。したがって視点座標系からボクセル座標系への座標変換が必要になる。座標変換パラメータについては座標変換パラメータの設定（Ｓ２１０）で設定したものを用いる。ただし、レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色成分も必要になる。そのため、座標変換されたボクセル座標系の実数座標値（ｘ’，ｙ’，ｚ’）に隣接する８近傍の整数座標値に対応するボクセルの色成分と不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、ボクセルの色成分と不透明度を取得する方法をとる。この座標変換は第２の座標変換となる。この場合は、不透明度ボクセル画像と色成分ボクセル画像を参照する必要がある。
【０１１６】
＜３．Ｎ分の１の間引き＞
上記ボリュームレンダリング装置では、ボクセル画像作成手段３０が、複数の断層画像の総画素数と同数のボクセルによるボクセル画像を作成するようにしたが、ボクセルを間引いてボクセル数を少なくしたボクセル画像を作成するようにしてもよい。その場合、不透明度ボクセル画像作成手段３１は、複数の断層画像の二次元のＸＹ軸方向、断層画像と直交するＺ軸方向の三軸の各方向において、Ｎ画素おきに対応付けて三次元に配置した各ボクセルに対して、そのボクセルの信号値を不透明度αに置き換え、ボクセル値として不透明度が定義された不透明度ボクセル画像を作成する．また、色成分ボクセル画像作成手段３２または不透明度付色成分ボクセル画像作成手段３３は、複数の断層画像の二次元のＸＹ軸方向、断層画像と直交するＺ軸方向の三軸の各方向において、Ｎ画素おきに対応付けて三次元に配置した各ボクセルに対して、当該ボクセルの信号値を色成分の値に置き換え、ボクセル値として色成分の値が定義された色成分ボクセル画像または不透明度付色成分ボクセル画像を作成する。例えば、Ｎ＝２とした場合、ＸＹＺ方向を各々１／２に間引くことができるため、処理するボクセル数が１／８となり、高速な処理を行うことができる。これにより、利用者が、指示入力Ｉ／Ｆ４を介して対話的に、カラーマップを連続的に切り替えた場合であっても、画質が粗いボリュームレンダリング像を順次表示させて、カラーマップの更新に追従させながらボリュームレンダリング像を表示することができる。
【０１１７】
＜４．断層画像の階調落とし＞
上記実施形態では、各画素が１６ビットの信号値を記録した断層画像をそのまま用いてボクセル画像を作成するようにしたが、断層画像を８ビットに階調変換して階調低下画像を作成した後、ボクセル画像を作成するようにしてもよい。断層画像を８ビットに階調変換することにより、各画素の処理における負荷を削減することができ、ボリュームレンダリング像の高速な生成に寄与する。
【０１１８】
この場合、断層画像階調変換手段を更に設け、断層画像読込手段１０が単一の断層画像を読み込むごとに、階調変換を行う。具体的には、一連のＤＩＣＯＭ形式の断層画像Ｄｏ（ｘ，ｙ，ｚ）（−３２７６８≦Ｄｏ（ｘ，ｙ，ｚ）≦３２７６７，０≦ｘ≦Ｓｘ−１，０≦ｙ≦Ｓｙ−１，０≦ｚ≦Ｓｚ−１; 解像度：Ｒｘｙ，Ｒｚ）の中で、Ｓｚ／２番目の中間の断層画像Ｄｏ（ｘ，ｙ，ｚ／２）を最初に読み込み、同断層画像における全ての画素の最小値をＤｍｉｎ、最大値をＤｍａｘとする。ＤｍｉｎとＤｍａｘは全ての断層画像より最小値と最大値を求める方法をとっても良いが、中間の断層画像だけで決定する方法をとると、大容量の１６ビットの原断層画像の全てのスライス分を読み込んでメモリ上に保持することなく、階調低下画像である階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）だけをメモリ上に直接構築できる。続いて、以下の〔数式７〕に従った処理を実行して、下限値Ｌｍｉｎ および上限値Ｌｍａｘを算出する。
【０１１９】
〔数式７〕
下限値Ｌｍｉｎ＝(Ｄｍａｘ−Ｄｍｉｎ)・γ＋Ｄｍｉｎ
上限値Ｌｍａｘ＝(Ｄｍａｘ−Ｄｍｉｎ)・(１−γ)＋Ｄｍｉｎ
【０１２０】
〔数式７〕において、γは階調圧縮画像のコントラスト調整幅で、０に近いほどコントラストが増大するが輝度が小さくなる。γは０．３未満の実数値であるが、通常はγ＝０．１に設定する。レンダリング画像の輝度コントラストはカラーマップなど種々の設定で調整できるので、γは固定で良い。そして、下限値Ｌｍｉｎおよび上限値Ｌｍａｘの範囲を２５６段階に圧縮して階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）を得る。具体的には、階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）（０≦Ｄ８（ｘ，ｙ，ｚ）≦２５５，０≦ｘ≦Ｓｘ−１，０≦ｙ≦Ｓｙ−１，０≦ｚ≦Ｓｚ−１; 解像度：Ｒｘｙ，Ｒｚ）としたとき、以下の〔数式８〕に従った処理を実行して、階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ） を算出する。
【０１２１】
〔数式８〕
Ｄ８（ｘ，ｙ，ｚ）＝（Ｄｏ（ｘ，ｙ，ｚ）−Ｌｍｉｎ）・２５５／（Ｌｍａｘ−Ｌｍｉｎ）
Ｄ８（ｘ，ｙ，ｚ）＞２５５の場合：Ｄ８（ｘ，ｙ，ｚ）＝２５５、Ｄ８（ｘ，ｙ，ｚ）＜０の場合：Ｄ８（ｘ，ｙ，ｚ）＝０
【０１２２】
〔数式８〕の第２式に示すように、信号値が上限値Ｌｍａｘを超える場合は２５５、下限値Ｌｍｉｎを下回る場合は０として、下限値Ｌｍｉｎから上限値Ｌｍａｘの範囲を０から２５５に線形変換する。なお、階調圧縮断層画像を用いてボクセル画像を作成する場合、図４のカラーマップに代えて、階調低下画像用のカラーマップとして、８ビットの信号値用のカラーマップを用意しておく。具体的には、信号値０〜２５５に対応付けてＲ，Ｇ，Ｂ、αが記録されたカラーマップを用いる。
【０１２３】
以上、本開示の好適な実施形態について説明したが、本開示は上記実施形態に限定されず、種々の変形が可能である。本開示の趣旨を逸脱しない範囲で変更された態様は、本開示の技術的範囲に含まれる。
【符号の説明】
【０１２４】
１・・・ＣＰＵ（Central Processing Unit）
２・・・ＲＡＭ（Random Access Memory）
３・・・記憶装置
４・・・指示入力Ｉ／Ｆ
５・・・データ入出力Ｉ／Ｆ
６・・・表示部
７・・・ＧＰＵ
８・・・フレームメモリ
１０・・・断層画像読込手段
１５・・・カラーマップ読込手段
２０・・・ＲＯＩクリッピング設定手段
３０・・・ボクセル画像作成手段
４０・・・スムージング手段
５０・・・陰影付加手段
６０・・・色補正手段
７０・・・レンダリング手段
７１・・・３Ｄテクスチャ登録手段
７２・・・座標変換手段
７３・・・積層四角形設定手段
７４・・・画素値算出手段
７７・・・探索制御マスク作成手段
７８・・・レイキャスティング手段
８０・・・レンダリング像出力手段
１００・・・ボリュームレンダリング装置
【図１】
2019207450.tif 000003
【図２】
2019207450.tif 000004
【図３】
2019207450.tif 000005
【図４】
2019207450.tif 000006
【図５】
2019207450.tif 000007
【図６】
2019207450.tif 000008
【図７】
2019207450.tif 000009
【図８】
2019207450.tif 000010
【図９】
2019207450.tif 000011
【図１０】
2019207450.tif 000012
【図１１】
2019207450.tif 000013
【図１２】
2019207450.tif 000014
【図１３】
2019207450.tif 000015
【図１４】
2019207450.tif 000016
【図１５】
2019207450.tif 000017