(57)【要約】      （修正有）【課題】モアレを抑制することができるコンピュータプログラム、画像処理装置、画像処理方法及びボクセルデータを提供する。【解決手段】コンピュータプログラムは、コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、暫定ボクセル構造体のボクセルに対して、ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、ボクセルの不透明度を補正してボクセル構造体を生成する処理と、ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理とを実行させる。【選択図】図１３
2019175013.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記ボクセルのＲＧＢ値を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と
を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の近傍に位置する２６近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と
を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
コンピュータに、
前記暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって前記各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する処理と、
第２バッファに記憶されている前記暫定ボクセル構造体の前記各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって前記直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により前記暫定ボクセル構造体の前記直前ボクセルの不透明度又はＲＧＢ値を更新する処理と、
前記第１バッファに記憶した前記補正値を前記第２バッファに転送する処理と
を実行させる請求項４に記載のコンピュータプログラム。
【請求項６】
コンピュータに、
複数の離散的な数値とＲＧＢ値及び不透明度との関係を定義した定義情報に基づいて、所定範囲の連続的な数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップを生成する処理と、
生成したカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と
を実行させる請求項１から請求項５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
コンピュータに、
前記ボクセル構造体の不透明度が所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と、
ＲＧＢ値が補正されたボクセル構造体のボクセルで構成される３Ｄテクスチャ画像を生成する処理と、
前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、
３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、
所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理と
を実行させる請求項１から請求項６のいずれか一項に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
前記複数のｘｙ平面画像を間にしてｚ軸方向の両端に配置されたダミーｘｙ平面画像の各画素に対応し、不透明度が前記所定値とされたダミーボクセルを付加したボクセル構造体を生成する処理と、
生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項７に記載のコンピュータプログラム。
【請求項９】
コンピュータに、
前記複数のｘｙ平面画像の数及び前記ダミーｘｙ平面画像の数の合計値と同数の前記四角形をＺ軸方向に並べた積層四角形を設定する処理を実行させる請求項８に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
前記複数のｘｙ平面画像の外縁部の各画素に対応し、不透明度が前記所定値とされたボクセルを含むボクセル構造体を生成する処理と、
生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項７から請求項９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
コンピュータに、
ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、
前記ボクセル構造体のボクセルのうちｘｙｚ座標が前記対象領域外のボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、
前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項７から請求項１０のいずれか一項に記載のコンピュータプログラム。
【請求項１２】
コンピュータに、
前記視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、
算出したｘｙｚ座標に対応する前記変換後３Ｄテクスチャ画像のｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする処理と
を実行させる請求項７から請求項１１のいずれか一項に記載のコンピュータプログラム。
【請求項１３】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出する処理と、
算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、
算出した陰影値に基づいて前記ボクセル構造体のボクセルのＲＧＢ値を補正する処理と
を実行させる請求項７から請求項１２のいずれか一項に記載のコンピュータプログラム。
【請求項１４】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度と、該ボクセルの近傍に位置する近傍ボクセルそれぞれの不透明度との差分を算出する処理と、
前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理と
を実行させる請求項１３に記載のコンピュータプログラム。
【請求項１５】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出することができないボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、
前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項１３又は請求項１４に記載のコンピュータプログラム。
【請求項１６】
コンピュータに、
ｘ軸中心、ｙ軸中心及びｚ軸中心の回転角、視野角度、視点位置、クリッピング位置、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率を含む前記所定の変換のパラメータを取得する処理と、
前記３Ｄテクスチャ画像に対して、取得したパタメータを用いた所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と
を実行させる請求項７から請求項１５のいずれか一項に記載のコンピュータプログラム。
【請求項１７】
コンピュータに、
前記変換後３Ｄテクスチャ画像を生成する処理及び前記レンダリング画像を生成する処理を実行するための指令をＧＰＵに出力する処理を実行させる請求項７から請求項１６のいずれか一項に記載のコンピュータプログラム。
【請求項１８】
コンピュータに、
前記ボクセル構造体に対して所定の座標変換を行ってボクセル画像を生成する処理と、
所定の視点から仮想光線を前記ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルのＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理と
を実行させる請求項１から請求項６のいずれか一項に記載のコンピュータプログラム。
【請求項１９】
コンピュータに、
前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、
特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、
前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、
圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と
を実行させる請求項１から請求項１８のいずれか一項に記載のコンピュータプログラム。
【請求項２０】
ボリュームレンダリング処理を行う画像処理装置であって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する暫定ボクセル構造体生成部と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成するボクセル構造体生成部と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成するレンダリング画像生成部と
を備える画像処理装置。
【請求項２１】
ボリュームレンダリング処理を行う画像処理方法であって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成し、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成し、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する画像処理方法。
【請求項２２】
ボクセル構造体のボクセルデータであって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成されるボクセル構造体のボクセルデータを含む構造を有し、
前記ボクセルデータは、
前記ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度が補正されたデータを含み、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理を実行するのに用いられるボクセルデータ。
【請求項２３】
前記ボクセルデータは、
前記ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記ボクセルのＲＧＢ値が補正されたデータを含む請求項２２に記載のボクセルデータ。
【請求項２４】
ボクセル構造体のボクセルデータであって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体のボクセルデータを含む構造を有し、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と
を実行するのに用いられるボクセルデータ。
【請求項２５】
前記暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって前記各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する処理と、
第２バッファに記憶されている前記暫定ボクセル構造体の前記各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって前記直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により前記暫定ボクセル構造体の前記直前ボクセルの不透明度又はＲＧＢ値を更新する処理と、
前記第１バッファに記憶した前記補正値を前記第２バッファに転送する処理と
を実行するのに用いられる請求項２４に記載のボクセルデータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラム、画像処理装置、画像処理方法及びボクセルデータに関する。
【背景技術】
【０００２】
医療分野においては、ＣＴ（Computed Tomography）、ＭＲＩ（Magnetic Resonance Imaging）、ＰＥＴ（Positron Emission Tomography）などの医用画像診断機器により所定のスライス間隔で連続的に撮影され、ＤＩＣＯＭ（Digital Imaging and COmmunications in Medicine）形式で保管された２次元の断層画像に基づいて、臓器等の観察対象物を３次元的に可視化して画像診断支援、手術又は治療支援に役立てるための技術が開発されている。
【０００３】
観察対象物の内部組織を３次元画像表示する代表的な手法として、物体の３次元デジタルデータ（ボリュームデータ）から３次元構造のイメージを描画するボリュームレンダリング手法が知られている。ボリュームレンダリング手法としては、レイキャスティング及びテクスチャベースのレンダリングが知られている。
【０００４】
特許文献１には、複数の断層画像を積層して３次元ボクセル空間を構築し、３次元ボクセル空間に対して任意の視点方向からレイ（仮想光線）を照射し、視線上にあるサンプリング点において色及び輝度値を視線に沿って累積計算するレイキャスティングが開示されている。具体的には、視点方向が３次元座標軸のＺ軸と平行になるように座標変換を施し、座標変換後の３次元ボクセル空間に対して、Ｚ軸方向にレイを照射し、ＸＹ平面上の投影面（スクリーン）に、投影結果をピクセル値として算出するものである。
【０００５】
また、特許文献２には、テクスチャマッピング機能とアルファブレンディング機能を用いてボリュームデータ全体をスライスデータの積み重ねで表現することにより、グラフィックスハードウェアのポリゴン表示機能を利用するテクスチャベースのレンダリングが開示されている。
【０００６】
また、特許文献３には、ボリュームデータのボクセル値とＲＧＢ色及び不透明度（オパシティ）との関係をユーザが定義した変換テーブル（カラーマップとも称する）をボリュームレンダリングに適用することにより、特定の臓器または病変部位を任意の色で着色すること、あるいは手前の臓器を透明にして隠れている臓器や病変部位を抽出して描画することができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−１７５７４３号公報
【特許文献２】特許第３５８９６５４号公報
【特許文献３】特開２００９−１６０３０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
断層画像には、元々自然に存在する知覚可能な規則性をもたないパターンが存在する。複数の断層画像を特許文献１及び特許文献２に開示された座標変換（ｘｙｚ軸回りの回転）することにより、断層画像に存在する前述のようなパターンがずれて合成されることにより、これらのパターンが線状に連結し、結果として、ボリュームレンダリング像に曲線状の縞模様が形成され、モアレとなる。そこで、ボリュームデータの各座標値に対応するボクセル値を平均化することによりボリュームデータのボクセル値が連続的に変化するようなスムージング処理が考えられるが、カラーマップを適用すると、スムージング処理により算出される新たなボクセル値に基づいて変換されるＲＧＢ色及び不透明度により、ＲＧＢ色及び不透明度の変化が不連続になり、意図しない曲線状の縞模様や斑点状の色ずれなどのモアレが生じる。
【０００９】
本開示は、斯かる事情に鑑みてなされたものであり、モアレを抑制することができるコンピュータプログラム、画像処理装置、画像処理方法及びボクセルデータを明らかにする。
【課題を解決するための手段】
【００１０】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、コンピュータプログラムは、コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理とを実行させる。
【発明の効果】
【００１１】
本開示によれば、モアレを抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態の画像処理装置としての３Ｄテクスチャマッピング装置の構成の一例を示すブロック図である。
【図２】ＤＩＣＯＭ形式の断層画像の一例を示す模式図である。
【図３】本実施の形態のカラーマップデータの第１例を示す説明図である。
【図４】本実施の形態のカラーマップデータの第２例を示す説明図である。
【図５】本実施の形態の３Ｄテクスチャマッピング装置による階調圧縮処理の一例を示す説明図である。
【図６】図３で示したカラーマップの一例を切り出したものである。
【図７】比較例として、前述したカラーマップを通す前のＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った一例を示す模式図である。
【図８】本実施の形態のカラーマップを通して作成された暫定ボクセル構造体の不透明度に対してスムージング処理を行った一例を示す模式図である。
【図９】本実施の形態のカラーマップを通して作成された暫定ボクセル構造体のＲＧＢ値及び不透明度に対してスムージング処理を行った一例を示す模式図である。
【図１０】本実施の形態のボクセルのスムージング処理のアルゴリズムの一例を示す模式図である。
【図１１】本実施の形態の３Ｄテクスチャマッピング装置による３Ｄテクスチャマッピングの概念を示す模式図である。
【図１２】本実施の形態の３Ｄテクスチャマッピング装置による３Ｄテクスチャマッピング処理の手順の一例を示すフローチャートである。
【図１３】本実施の形態の３Ｄテクスチャマッピング装置による３Ｄテクスチャマッピング処理の手順の一例を示すフローチャートである。
【図１４】本実施の形態の３Ｄテクスチャマッピング装置によるＲＯＩクリッピング領域外のボクセルの透明化処理の一例を示す説明図である。
【図１５】本実施の形態の３Ｄテクスチャマッピング装置によるダミー透明画像付加処理の一例を示す説明図である。
【図１６】本実施の形態の３Ｄテクスチャマッピング装置による断層画像の外縁部のボクセルの透明化処理の一例を示す説明図である。
【図１７】本実施の形態の３Ｄテクスチャマッピング装置による投影画面設定の一例を示す説明図である。
【図１８】本実施の形態の３Ｄテクスチャマッピング装置による透明ボクセルの色補間処理の手順の一例を示すフローチャートである。
【図１９】本実施の形態の３Ｄテクスチャマッピング装置によるレンダリング処理の手順の一例を示すフローチャートである。
【図２０】３Ｄテクスチャマッピングとの対応付け方法の一例を示す説明図である。
【図２１】本実施の形態の画像処理部の構成の他の例を示すブロック図である。
【図２２】曲線状のモアレが発生する様子の一例を示す模式図である。
【図２３】本実施の形態の３Ｄテクスチャマッピング装置によるモアレ対策結果の第１例を示す説明図である。
【図２４】本実施の形態の３Ｄテクスチャマッピング装置によるモアレ対策結果の第１例を示す説明図である。
【図２５】本実施の形態の３Ｄテクスチャマッピング装置によるモアレ対策結果の第２例を示す説明図である。
【図２６】本実施の形態の３Ｄテクスチャマッピング装置によるモアレ対策結果の第２例を示す説明図である。
【図２７】本実施の形態の画像処理装置としてのレイキャスティング装置の構成の一例を示すブロック図である。
【図２８】本実施の形態のレイキャスティング装置によるボクセル構造体の座標変換の一例を示す模式図である。
【図２９】本実施の形態のレイキャスティング装置による座標変換処理の一例を示す説明図である。
【図３０】本実施の形態のレイキャスティング装置による探索制御マスクデータ生成処理の一例を示す説明図である。
【図３１】本実施の形態のレイキャスティング装置による平行投影の場合のレイキャスティング処理の一例を示す説明図である。
【図３２】本実施の形態のレイキャスティング装置による透視投影の場合のレイキャスティング処理の一例を示す説明図である。
【図３３】本実施の形態のレイキャスティング装置によるレイキャスティング処理の手順の一例を示すフローチャートである。
【図３４】本実施の形態のレイキャスティング装置によるレイキャスティング処理の手順の一例を示すフローチャートである。
【図３５】本実施の形態のレイキャスティング装置によるモアレ対策結果の第１例を示す説明図である。
【図３６】本実施の形態のレイキャスティング装置によるモアレ対策結果の第１例を示す説明図である。
【図３７】本実施の形態のレイキャスティング装置によるモアレ対策結果の第２例を示す説明図である。
【図３８】本実施の形態のレイキャスティング装置によるモアレ対策結果の第２例を示す説明図である。
【発明を実施するための形態】
【００１３】
（第１実施形態）
以下、本開示の実施の形態を図面に基づいて説明する。図１は本実施の形態の画像処理装置としての３Ｄテクスチャマッピング装置１００の構成の一例を示すブロック図である。本実施の形態の３Ｄテクスチャマッピング装置１００は、入力部１０、記憶部１１、出力部１２、画像処理部２０などを備える。画像処理部２０は、階調圧縮処理部２１、暫定ボクセル構造体生成部２２、ボクセル構造体生成部２３、変換処理部２４、レンダリング処理部２５、３Ｄテクスチャ画像生成部２６、積層四角形設定部２７、色補間部２８、ＲＯＩ（Region of Interest）クリッピング処理部２９などを備える。
【００１４】
入力部１０は、取得部としての機能を有し、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する。より具体的には、入力部１０は、観察対象物（例えば、臓器、脳、骨、血管などを内部に含む人体・動物の様々な部位）に対して所定の間隔で断層撮影された複数の２次元の断層画像のＤＩＣＯＭ（Digital Imaging and COmmunications in Medicine）形式の画像データを取得する。
【００１５】
図２はＤＩＣＯＭ形式の断層画像の一例を示す模式図である。図２に示すようにｘｙｚ軸を設定した場合、ｘｙ平面画像である２次元の断層画像が、ｚ軸方向に沿って複数並んでいる。Ｓｘはｘ軸方向の画素数であり、Ｓｙはｙ軸方向の画素数であり、Ｓｚは断層画像の枚数である。なお、３次元ボクセル空間では、ＳｘとＳｙは各々ｘ軸方向とｙ軸方向のボクセル数を表し、Ｓｚはｚ軸方向のボクセル数に対応する。Ｒｘｙはｘ方向及びｙ方向の解像度であり、画素の間隔の逆数、すなわち単位距離あたりの画素数を示す。ｘ軸方向とｙ軸方向の解像度は等しいが、異なっていてもよい。Ｒｚはｚ軸方向の解像度であり、隣り合う断層画像の間隔の逆数、すなわち単位距離あたりの画像数を表す。各断層画像の座標（ｘ，ｙ，ｚ）での画素値をＤｏ（ｘ，ｙ，ｚ）で現す。Ｄｏ（ｘ，ｙ，ｚ）は、−３２７６８以上、３２７６７以下の値を取り得る。画素値Ｄｏ（ｘ，ｙ，ｚ）は、例えば、ＣＴ画像の場合、水が０を示し、水よりも密度の高い組織（例えば、骨など）は正値となり、水よりも密度の低い組織（例えば、脂肪組織など）は負値となる。ボクセル画像の座標（ｘ，ｙ，ｚ）において、ｘ座標は０以上、Ｓｘ−１以下の値をとり、ｙ座標は０以上、Ｓｙ−１以下の値をとり、ｚ座標は０以上、Ｓｚ−１以下の値をとる。
【００１６】
また、入力部１０は、画素値に対応付けてＲＧＢ値及び不透明度が定義されたカラーマップデータを取得する。
【００１７】
図３は本実施の形態のカラーマップデータの第１例を示す説明図である。第１例のカラーマップデータをＣｍａｐ（ｖ，ｃ）で示す。変数ｖは、Ｄｏ（ｘ，ｙ，ｚ）の画素値を示し、Ｄｏ（ｘ，ｙ，ｚ）の範囲と同様に、−３２７６８以上、３２７６７以下の範囲内の数値を表す。変数ｃは、０、１、２、３の値を含み、ｃ＝０は、ＲＧＢのＲ値を示し、ｃ＝１はＧ値を示し、ｃ＝２はＢ値を示す。ｃ＝３は不透明度αを示す。Ｃｍａｐ（ｖ，ｃ）は、０以上、２５５以下の数値を取り得る。図３に示すように、カラーマップデータは、スライス画像の画素値Ｄｏ（ｘ，ｙ，ｚ）とＲＧＢ値及び不透明度αとの関係を定義するものである。例えば、画素値Ｄｏ（ｘ，ｙ，ｚ）が３２７６７の場合、Ｒ値はＲ（３２７６７）となり、Ｇ値はＧ（３２７６７）となり、Ｂ値はＢ（３２７６７）となり、不透明度はα（３２７６７）となる。ここで、Ｒ（３２７６７）、Ｇ（３２７６７）、Ｂ（３２７６７）、及びα（３２７６７）は、画素値３２７６７に対応していることを便宜上示すものであり、実際には適切な数値となる。また、カラーマップデータは、−３２７６８から３２７６７までの全ての画素値に対して定義する必要はなく、ＣＴ画像の場合、通常は−２０４８から２０４８の範囲をとるように調整されるため、−３２７６８から−２０４８の範囲、および２０４８から３２７６７の範囲のＲＧＢ値及び不透明度は全て０に設定するようにしてもよい。
【００１８】
図４は本実施の形態のカラーマップデータの第２例を示す説明図である。第２例のカラーマップデータをＣｍａｐ８（ｖ，ｃ）で示す。後述するように、ＤＩＣＯＭ画像を、例えば、１６ビットから８ビットへ階調圧縮した場合、画素値を、−３２７６８以上、３２７６７以下の範囲から、０以上、２５５以下の範囲とすることができる。Ｃｍａｐ８（ｖ，ｃ）の変数ｖは、０以上、２５５以下の範囲内の数値となる。変数ｃは第１例と同様である。
【００１９】
カラーマップデータＣｍａｐ（ｖ，ｃ）、Ｃｍａｐ８（ｖ，ｃ）を用いることにより、例えば、人体の部位毎に異なる色を付すだけでなく、部位ごとに不透明度を設定することができ、手前に位置する臓器を透明にして奥に隠れている臓器を描出するなど、観察対象を認識しやすくすることができる。
【００２０】
また、入力部１０は、ｘ軸中心の回転角、ｙ軸中心の回転角、ｚ軸中心の回転角、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率、及び注視点から視点までの距離を含む座標変換のパラメータ、ｘｙｚ方向のＲＯＩ（Region of Interest：関心領域）の値、並びに透視変換パラメータなどを取得する。座標変換のパラメータ、ＲＯＩ値、透視変換パラメータの詳細は後述する。
【００２１】
記憶部１１は、入力部１０で取得したデータ、画像処理部２０での処理結果などを記憶することができる。なお、カラーマップデータ、座標変換パラメータ、ＲＯＩ値、透視変換パラメータなどを予め記憶部１１に記憶する構成でもよい。
【００２２】
出力部１２は、画像処理部２０での処理結果、例えば、レンダリング処理部２５で生成したレンダリング画像の画像データを表示装置（不図示）に出力する。
【００２３】
階調圧縮処理部２１は、ＤＩＣＯＭ形式の断層画像を、例えば、８ビットの階調圧縮断層画像にする。
【００２４】
図５は本実施の形態の３Ｄテクスチャマッピング装置１００による階調圧縮処理の一例を示す説明図である。階調圧縮処理部２１は、複数の断層画像のうちの所定の断層画像の画素の最小値及び最大値を特定する。例えば、１からＳｚまでの断層画像のうち、Ｓｚ／２番目の中間の断層画像における全ての画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定することができる。なお、所定のスライス画像としては、本来は全てのスライス画像における全ての画素の最小値及び最大値を特定する方法が正確である。しかし、その場合は、一旦全ての大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持する必要が生じ、階調圧縮効果が半減する。また、この最小値Ｄｍｉｎ及び最大値Ｄｍａｘは階調圧縮のパラメータに使用するだけで、８ビットの階調圧縮断層画像の精度には直接影響しない。そこで、単一のスライス画像の画素の最小値及び最大値を用いて、おおまかに特定する方法をとる。ただし、先頭のスライス画像では被写体が適切に映っていない場合が多いため、中間のスライス画像だけで最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定する方法をとる。これにより、大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持することなく８ビットの階調圧縮断層画像だけをメモリに直接構築することができる。
【００２５】
８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）は、Ｄ８（ｘ，ｙ，ｚ）＝（Ｄｏ（ｘ，ｙ，ｚ）−Ｌｍｉｎ）・２５５／（Ｌｍａｘ−Ｌｍｉｎ）という式により生成することができる。ただし、Ｄ８（ｘ，ｙ，ｚ）＞２５５の場合は、Ｄ８（ｘ，ｙ，ｚ）＝２５５とし、Ｄ８（ｘ，ｙ，ｚ）＜０の場合は、Ｄ８（ｘ，ｙ，ｚ）＝０とする。ここで、Ｌｍｉｎ＝（Ｄｍａｘ−Ｄｍｉｎ）・γ＋Ｄｍｉｎ、Ｌｍａｘ＝（Ｄｍａｘ−Ｄｍｉｎ）・（１−γ）＋Ｄｍｉｎである。γは階調圧縮画像のコントラスト調整幅で、０に近いほどコントラストは増大するが輝度は小さくなる。通常は、γ＝０．１に設定する。レンダリング像の輝度コントラストは、例えば、カラーマップデータなどの種々の設定で調整することができるので、γは固定値でよい。また、０≦Ｄ８（ｘ，ｙ，ｚ）≦２５５、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１である。また、ｘｙ方向の解像度はＲｘｙ、ｚ方向の解像度はＲｚである。
【００２６】
なお、８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）に対しては、図４に示すカラーマップＣｍａｐ８（ｖ，ｃ）を適用することができる。
【００２７】
上述のように、階調圧縮処理部２１は、複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定し、特定した最大値よりも小さい上限値Ｌｍａｘ及び特定した最小値よりも大きい下限値Ｌｍｉｎを算出する。階調圧縮処理部２１は、複数のｘｙ平面画像の各画素の画素値の上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲内を圧縮する。すなわち、階調圧縮処理部２１は、上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲を、例えば、２５６段階に圧縮し、上限値Ｌｍａｘ以上は２５５にし、下限値Ｌｍｉｎ以下は０にする。
【００２８】
画像処理部２０は、複数の離散的な数値とＲＧＢ値及び不透明度との関係を定義した定義情報に基づいて、所定範囲の連続的な数値（ボクセル値）とＲＧＢ値及び不透明度との関係を対応付けたカラーマップを生成する。定義情報は、例えば、ユーザが定義することができる。
【００２９】
暫定ボクセル構造体生成部２２は、ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する。すなわち、暫定ボクセル構造体生成部２２は、生成したカラーマップに基づいて、複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する。ｘｙ平面画像は、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）でもよく、階調圧縮処理部２１により階調圧縮された階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）でもよい。本明細書では、暫定ボクセル構造体をＶｏ（ｘ，ｙ，ｚ，ｃ）で表す。ここで、０≦Ｖｏ（ｘ，ｙ，ｚ，ｃ）≦２５５，ｃ＝０（Ｒ），１（Ｇ），２（Ｂ），３（α）である。
【００３０】
暫定ボクセル構造体は、ＲＧＢ値及び不透明度の要素で構成されるベクトル値が３次元的に詰まったボリュームデータを格子状に離散化して配置したボクセルの集合である。一つのボクセルには、例えば、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）の一つの画素が対応する。暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）は、Ｖｏ（ｘ，ｙ，ｚ，ｃ）＝Ｃｍａｐ（Ｄｏ（ｘ，ｙ，ｚ），ｃ）で表すことができる。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１、０≦ｃ≦３である。上述の式が意味するところは、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）の画素値にカラーマップＣｍａｐ（ｖ，ｃ）を適用して暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）を生成するということである。
【００３１】
また、暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）は、階調圧縮処理部２１により階調圧縮された階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）からも生成でき、Ｖｏ（ｘ，ｙ，ｚ，ｃ）＝Ｃｍａｐ８（Ｄ８（ｘ，ｙ，ｚ），ｃ）で表すことができる。この式が意味するところは、階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）の画素値にカラーマップＣｍａｐ８（ｖ，ｃ）を適用して暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）を生成するということである。
【００３２】
ボクセル構造体生成部２３は、暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）の各ボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、当該ボクセルの不透明度を補正してボクセル構造体を生成する。本明細書では、ボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）で表す。ここで、０≦Ｖ（ｘ，ｙ，ｚ，ｃ）≦２５５，ｃ＝０（Ｒ），１（Ｇ），２（Ｂ），３（α）である。本明細書では、暫定ボクセル構造体からボクセル構造体を生成する処理をボクセルのスムージング処理とも称する。なお、ボクセルのスムージング処理には、不透明度のスムージング処理、ＲＧＢ値及び不透明度のスムージング処理、並びにＲＧＢ値のスムージング処理が含まれる。
【００３３】
次に、ボクセルのスムージング処理について具体的に説明する。スムージング処理は、本明細書で述べるカラーマップを通して作成された暫定ボクセル構造体のＲＧＢ値及び不透明度の個々の値に対して行う方法よりも、カラーマップを通す前のＤＩＣＯＭ画像や階調圧縮断層画像のボクセル値に対して行う方法の方が効率的である。しかし、後者の方法をとると以下に述べる問題が生じる。
【００３４】
図６は図３で示したカラーマップの一例を切り出したものである。図６に示すように、カラーマップは、ボクセル値とＲＧＢ値及び不透明度との関係が対応付けられている。便宜上、図６では、ボクセル値を、２９６〜３０４とし、それぞれのボクセル値に対応してＲＧＢ値及びα（不透明度）が決められている。
【００３５】
図７は比較例として、前述したカラーマップを通す前のＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った一例を示す模式図である。図７に示すように、例えば、ｘ軸方向に並んだ３つのボクセルのボクセル値が、２９６、２９８、３０４であるとする。なお、便宜上、スムージング処理をｘ軸方向に隣接する３ボクセルの平均として説明するが、実際にはｙ軸方向およびｚ軸方向を加味した２７ボクセルの平均をとることが望ましい。ボクセル値のスムージングでは、３つのボクセルの中央のボクセルのボクセル値を両隣のボクセルのボクセル値（２９６、３０４）で平滑化する。これにより、中央のボクセルのボクセル値は、２９８から３００に変更される。平滑化後のボクセル値（３００）に対して図６に例示するカラーマップを適用すると、中央のボクセルのＲＧＢαは、それぞれ０，０，０，８０となる。両隣のボクセルのＲＧＢαと比較すると、隣り合うボクセル間でＲ値、Ｇ値およびα値に同一の値が２つ重複して並んだ後に比較的大きな値の変化が生じ、結果として不連続な縞が発生し、モアレとなって現れる。
【００３６】
図８は本実施の形態のカラーマップを通して作成された暫定ボクセル構造体の不透明度に対してスムージング処理を行った一例を示す模式図である。図７と同様に、ｘ軸方向に並んだ３つのボクセルのボクセル値が、２９６、２９８、３０４であるとする。図６に例示するカラーマップを適用すると、３つのボクセルのＲＧＢαは、それぞれ（４０，０，０，８０）、（２０，０，０，８０）、（０，４０，０，１５０）となる。不透明度のスムージング処理では、３つのボクセルの中央のボクセルの不透明度を両隣のボクセルの不透明度（８０、１５０）で平滑化する。これにより、中央のボクセルの不透明度は、８０から１１５に変更される。不透明度のスムージング処理の前後の不透明度に注目すると、不透明度のスムージング処理により、隣り合うボクセル間の不透明度が滑らかに変化していることが分かる。
【００３７】
図９は本実施の形態のカラーマップを通して作成された暫定ボクセル構造体のＲＧＢ値及び不透明度に対してスムージング処理を行った一例を示す模式図である。図８と同様に、ｘ軸方向に並んだ３つのボクセルのボクセル値が、２９６、２９８、３０４であるとする。図６に例示するカラーマップを適用すると、３つのボクセルのＲＧＢαは、それぞれ（４０，０，０，８０）、（２０，０，０，８０）、（０，４０，０，１５０）となる。ＲＧＢ値及び不透明度のスムージング処理では、３つのボクセルの中央のボクセルのＲＧＢ値及び不透明度を両隣のボクセルのＲＧＢ値及び不透明度で平滑化する。これにより、中央のボクセルのＧ値は０から２０に変更され、不透明度は８０から１１５に変更される。ＲＧＢ値及び不透明度のスムージング処理により、隣り合うボクセル間のＲＧＢ値（図９の例ではＧ値）及び不透明度が滑らかに変化していることが分かる。なお、図示していないが、ＲＧＢ値のみに対してスムージング処理を行った場合も同様である。また、図７〜図９の例では、便宜上、中央のボクセルに対してｘ軸方向の２近傍にある近傍ボクセルを用いて説明したが、本実施の形態のボクセルのスムージング処理は２近傍に限定されるものではない。実際には、ｘｙｚ軸に対して２６近傍の近傍ボクセルのＲＧＢαを用いてスムージング処理を行うことが望ましい。
【００３８】
暫定ボクセル構造体の各ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）に対して、当該ボクセル及び当該ボクセルの近傍に存在する２６個の近傍ボクセルである、Ｖｏ（ｘ−１，ｙ−１，ｚ−１，ｃ）、Ｖｏ（ｘ，ｙ−１，ｚ−１，ｃ）、Ｖｏ（ｘ＋１，ｙ−１，ｚ−１，ｃ）、Ｖｏ（ｘ−１，ｙ，ｚ−１，ｃ）、Ｖｏ（ｘ，ｙ，ｚ−１，ｃ）、Ｖｏ（ｘ＋１，ｙ，ｚ−１，ｃ）、Ｖｏ（ｘ−１，ｙ＋１，ｚ−１，ｃ）、Ｖｏ（ｘ，ｙ＋１，ｚ−１，ｃ）、Ｖｏ（ｘ＋１，ｙ＋１，ｚ−１，ｃ）、Ｖｏ（ｘ−１，ｙ−１，ｚ，ｃ）、Ｖｏ（ｘ，ｙ−１，ｚ，ｃ）、Ｖｏ（ｘ＋１，ｙ−１，ｚ，ｃ）、Ｖｏ（ｘ−１，ｙ，ｚ，ｃ）、Ｖｏ（ｘ，ｙ，ｚ，ｃ）、Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）、Ｖｏ（ｘ−１，ｙ＋１，ｚ，ｃ）、Ｖｏ（ｘ，ｙ＋１，ｚ，ｃ）、Ｖｏ（ｘ＋１，ｙ＋１，ｚ，ｃ）、Ｖｏ（ｘ−１，ｙ−１，ｚ＋１，ｃ）、Ｖｏ（ｘ，ｙ−１，ｚ＋１，ｃ）、Ｖｏ（ｘ＋１，ｙ−１，ｚ＋１，ｃ）、Ｖｏ（ｘ−１，ｙ，ｚ＋１，ｃ）、Ｖｏ（ｘ，ｙ，ｚ＋１，ｃ）、Ｖｏ（ｘ＋１，ｙ，ｚ＋１，ｃ）、Ｖｏ（ｘ−１，ｙ＋１，ｚ＋１，ｃ）、Ｖｏ（ｘ，ｙ＋１，ｚ＋１，ｃ）、Ｖｏ（ｘ＋１，ｙ＋１，ｚ＋１，ｃ）の平均値で０≦ｃ≦３の値を置換する。即ち、ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）に対して平滑化されたボクセルをＶ（ｘ，ｙ，ｚ，ｃ）とすると、平滑化されたボクセルＶ（ｘ，ｙ，ｚ，ｃ）は、式（１）で算出することができる。なお、平滑化はボクセルのスムージング処理と同義である。
【００３９】
【数１】
2019175013.tif 000003
【００４０】
式（１）において、ＲＧＢ値（ｃ＝０、１、２）に対しては平滑化を行わず、不透明度（ｃ＝３）の値のみを平滑化（不透明度のスムージング処理）することができるが、０≦ｃ≦３の４つの値を平滑化（ＲＧＢ値及び不透明度のスムージング処理）することもできる。また、ＲＧＢ値だけを平滑化（ＲＧＢ値スムージング処理）することもできる。
【００４１】
このようにして、暫定ボクセル構造体の各ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）に対してｘｙｚ方向の２６近傍平均値で等方性に平滑化処理を行ってボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成することにより、図７で述べたＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った後にカラーマップを通してボクセル構造体を生成する方法をとることにより生じる、隣接ボクセルのＲＧＢ値や不透明度の重複や段差に伴って発生するモアレを抑制することができる。なお、本明細書では、ボクセルのスムージング処理を行う前後でのボクセル構造体を区別して表すために、スムージング処理前のボクセル構造体を暫定ボクセル構造体と称している。
【００４２】
上述のように、本実施の形態のボクセル構造体のボクセルデータは、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成されるボクセル構造体のボクセルデータを含む構造を有し、ボクセルデータは、ボクセル構造体のボクセルに対して、ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、ボクセルの不透明度が補正されたデータを含み、ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理を実行するのに用いられる。
【００４３】
また、本実施の形態のボクセル構造体のボクセルデータは、さらに、ボクセル構造体のボクセルに対して、ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、ボクセルのＲＧＢ値が補正されたデータを含む。
【００４４】
次に、本実施の形態のボクセルのスムージング処理の高速化方法の一例について説明する。
【００４５】
図７において、比較例として挙げたＤＩＣＯＭ画像や階調圧縮断層画像のボクセル値に対してスムージング処理を行う場合に比べて、本実施の形態の暫定ボクセル構造体のスムージング処理では計算負荷が大きくなる。例えば、ＲＧＢαのすべてに対してスムージング処理を行うと、ＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行う場合に比べ計算負荷は４倍に増大する。また、ＯｐｅｎＧＬ／ＧＰＵを用いる場合でも、スムージング処理はソフトウェアで実行するため、初期レンダリング画像表示の起動まで待時間が長くなる。以下、この点について説明する。
【００４６】
まず、比較例としての、ＤＩＣＯＭ画像や階調圧縮断層画像のボクセル値に対するスムージング処理の場合について説明する。比較例の１６／８ビットのモノクロのボクセルをＤｏ（ｘ，ｙ，ｚ）とすると、スムージング処理後のボクセルのバッファＤ（ｘ，ｙ，ｚ）を新たに確保して、ｘ＝１，…，Ｓｘ−２、ｙ＝１，…，Ｓｙ−２、ｚ＝１，…，Ｓｚ−２に対して、以下の式のように２６近傍ボクセルの平均計算を（Ｓｘ−１）×（Ｓｙ−１）×（Ｓｚ−１）回繰り返す必要がある。
【００４７】
Ｄ（ｘ，ｙ，ｚ）＝｛Σｉ＝-1, 1Σj＝-1, 1Σk＝-1, 1Ｄｏ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ）｝／２７
【００４８】
次に、本実施の形態の暫定ボクセル構造体のスムージング処理の場合について説明する。カラーマップで変換された後のＲＧＢα形式カラーの３２ビットの暫定ボクセル構造体をＶｏ（ｘ，ｙ，ｚ，ｃ）とすると、スムージング処理後のＲＧＢα形式の３２ビットのボクセル構造体のバッファＶ（ｘ，ｙ，ｚ，ｃ）を新たに確保して、ｘ＝１，…，Ｓｘ−２、ｙ＝１，…，Ｓｙ−２、ｚ＝１，…，Ｓｚ−２、ｃ＝０，…，３に対して、以下の式のように２６近傍ボクセルの平均計算を（Ｓｘ−１）×（Ｓｙ−１）×（Ｓｚ−１）×４回繰り返す必要がある。このように、暫定ボクセル構造体のスムージング処理では、ＤＩＣＯＭ画像のボクセル値に対する平滑化処理に比べて計算コストが４倍に増加することが分かる。
【００４９】
Ｖ（ｘ，ｙ，ｚ，ｃ）＝｛Σｉ＝-1, 1Σj＝-1, 1Σk＝-1, 1Ｖｏ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，ｃ）｝／２７
【００５０】
上述の式は、式（１）を形式的に書き替えたものであり、実質的に式（１）と同じである。以下、作業用のボクセルバッファを使用せず、かつ少ない計算コストでスムージング処理を行う手法について説明する。
【００５１】
式（１）の２６近傍の平均計算は、ｘ軸方向の２近傍の平均計算、ｙ軸方向の２近傍の平均計算、及びｚ軸方向の２近傍の平均計算に分けることができる。
【００５２】
すなわち、ボクセルのスムージング処理前のボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）に対して、式（２）から式（１０）に基づいてｘ軸方向の２近傍の平均計算を行う。
【００５３】
【数２】
2019175013.tif 000004
【００５４】
次に、式（２）から式（１０）によって更新されたボクセルＶｏ′（ｘ，ｙ，ｚ，ｃ）に対して、式（１１）から式（１３）に基づいてｙ軸方向の２近傍の平均計算を行う。
【００５５】
最後に、式（１１）から式（１３）によって更新されたボクセルＶｏ′′（ｘ，ｙ，ｚ，ｃ）に対して、式（１４）に基づいてｚ軸方向の２近傍の平均計算を行う。これにより、式（１）の２６近傍の平均計算を行うことと同一の結果を得ることができる。
【００５６】
上述の手法を暫定ボクセル構造体の全ボクセルに適用すると以下の通りになる。すなわち、ＲＧＢα形式の３２ビットのボクセルをＶｏ（ｘ，ｙ，ｚ，ｃ）とすると、ｘ＝１，…，Ｓｘ−２、ｙ＝０，…，Ｓｙ−１、ｚ＝０，…，Ｓｚ−１、ｃ＝０，…，３に対して、ｘ軸方向に２近傍の平均計算を（Ｓｘ−２）×Ｓｙ×Ｓｚ×４回繰り返し、更新されたボクセルをＶｏ′（ｘ，ｙ，ｚ，ｃ）とすると、Ｖｏ′（ｘ，ｙ，ｚ，ｃ）は以下の式のようになる。
【００５７】
Ｖｏ′（ｘ，ｙ，ｚ，ｃ）＝｛Σｉ＝-1, 1Ｖｏ（ｘ＋ｉ，ｙ，ｚ，ｃ）｝／３
【００５８】
更新されたボクセルＶｏ′（ｘ，ｙ，ｚ，ｃ）を用いて、ｘ＝１，…，Ｓｘ−２、ｙ＝１，…，Ｓｙ−２、ｚ＝０，…，Ｓｚ−１、ｃ＝０，…，３に対して、ｙ軸方向に２近傍の平均計算を（Ｓｘ−２）×（Ｓｙ−２）×Ｓｚ×４回繰り返し、更新されたボクセルをＶｏ′′（ｘ，ｙ，ｚ，ｃ）とすると、Ｖｏ′′（ｘ，ｙ，ｚ，ｃ）は以下の式のようになる。
【００５９】
Ｖｏ′′（ｘ，ｙ，ｚ，ｃ）＝｛Σj＝-1, 1Ｖｏ′（ｘ，ｙ＋ｊ，ｚ，ｃ）｝／３
【００６０】
更新されたボクセルＶｏ′′（ｘ，ｙ，ｚ，ｃ）を用いて、ｘ＝１，…，Ｓｘ−２、ｙ＝１，…，Ｓｙ−２、ｚ＝１，…，Ｓｚ−２、ｃ＝０，…，３に対して、ｚ軸方向に２近傍の平均計算を（Ｓｘ−２）×（Ｓｙ−２）×（Ｓｚ−２）×４回繰り返し、更新されたボクセルをＶ（ｘ，ｙ，ｚ，ｃ）とすると、Ｖ（ｘ，ｙ，ｚ，ｃ）は以下の式のようになる。
【００６１】
Ｖ（ｘ，ｙ，ｚ，ｃ）＝｛Σk＝-1, 1Ｖｏ′′（ｘ，ｙ，ｚ＋ｋ，ｃ）｝／３
【００６２】
上記最終段で更新されたボクセルＶ（ｘ，ｙ，ｚ，ｃ）は２６近傍の近傍ボクセルで平均化されたスムージング処理結果と同一になる。すなわち、スムージング対象のボクセルと当該ボクセルの２６近傍の近傍ボクセルとを合計した２７個のボクセルに対する２７回のメモリアクセスを伴うボクセル加算演算を（Ｓｘ−２）×（Ｓｙ−２）×（Ｓｚ−２）×４回行う演算を、スムージング対象のボクセルと当該ボクセルの２近傍の近傍ボクセルとを合計した３個のボクセルに対する３回のメモリアクセスを伴うボクセル加算演算で実現することができ、メモリアクセス回数を少なくすることができる。これにより、ボクセルのスムージング処理を高速化することができる。
【００６３】
上述のように、ボクセル構造体生成部２３は、暫定ボクセル構造体の各ボクセルに対して、当該ボクセルのｘｙｚ方向の近傍に位置する２６近傍ボクセルの不透明度又はＲＧＢ値に基づいて、当該ボクセルの不透明度又はＲＧＢ値を補正してボクセル構造体を生成することができる。
【００６４】
また、ボクセル構造体生成部２３は、暫定ボクセル構造体の各ボクセルに対して、当該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、当該ボクセルの不透明度又はＲＧＢ値を補正して暫定ボクセル構造体を更新する。次に、ボクセル構造体生成部２３は、第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、当該ボクセルの不透明度又はＲＧＢ値を補正して暫定ボクセル構造体を更新する。次に、ボクセル構造体生成部２３は、第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、ボクセルの不透明度又はＲＧＢ値を補正してボクセル構造体を生成することができる。
【００６５】
上述のように、本実施の形態のボクセルデータは、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体のボクセルデータを含む構造を有し、暫定ボクセル構造体のボクセルに対して、ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、ボクセルの不透明度又はＲＧＢ値を補正する処理と、第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、ボクセルの不透明度又はＲＧＢ値を補正する処理と、第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、ボクセルの不透明度又はＲＧＢ値を補正する処理とを実行するのに用いられる。
【００６６】
次に、作業用のボクセルバッファを使用しない手法について説明する。前述のとおり、ＤＩＣＯＭ画像のボクセル値のスムージング処理（図７に示す比較例）では、３次元２６近傍のボクセルの平均化処理を行うために、同一の容量をもつ作業用のボクセルバッファを必要とするのに対し、本実施の形態の暫定ボクセル構造体のスムージング処理では、３回の１次元２近傍の平均化処理に分けることができるので、ボクセル構造体の全ボクセルのデータを格納するための作業用のボクセルバッファが不要となり、１次元２近傍の平均化処理に必要な２ボクセル分のバッファだけでよい。以下、具体的に説明する。
【００６７】
図１０は本実施の形態のボクセルのスムージング処理のアルゴリズムの一例を示す模式図である。図１０に示すように、２ボクセル分の不透明度又はＲＧＢ値を格納できるバッファを第１バッファＶ１（ｃ）、及び第２バッファＶ２（ｃ）とする。図１０に示すように、本実施の形態のボクセルのスムージング処理は、ｘ軸方向、ｙ軸方向及びｚ軸方向のスムージング処理（２近傍の平均化処理）に分けることができる。図１０の下部には、ｘ軸方向のスムージング処理について詳細を図示し、ｘ軸方向に連続する５ボクセルをＶｏ（ｘ−１，ｙ，ｚ，ｃ）、Ｖｏ（ｘ，ｙ，ｚ，ｃ）、Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）、Ｖｏ（ｘ＋２，ｙ，ｚ，ｃ）、Ｖｏ（ｘ＋３，ｙ，ｚ，ｃ）、…とする。実際には、これらの５ボクセルの前後にｘ軸方向にボクセルが続いているが、左端のＶｏ（ｘ−１，ｙ，ｚ，ｃ）がｘ軸方向に先頭のボクセルであるとみなして、以下説明を行う。
【００６８】
Ｖｏ（ｘ，ｙ，ｚ，ｃ）の２近傍の平均値が計算されると、Ｖｏ（ｘ，ｙ，ｚ，ｃ）の２近傍の平均値は第１バッファＶ１（ｃ）に格納される。この時、第１バッファＶ１（ｃ）は空の状態でなくてはならないが、初期状態では空になっている。次に、Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）の２近傍の平均値が計算されると、Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）の２近傍の平均値も同様に第１バッファＶ１（ｃ）に格納されるが、この段階では第１バッファＶ１（ｃ）は空いていない。そのため、第１バッファＶ１（ｃ）に格納されているＶｏ（ｘ，ｙ，ｚ，ｃ）の２近傍の平均値を第２バッファＶ２（ｃ）に移動させ、第１バッファＶ１（ｃ）を空ける。そして、Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）の２近傍の平均値が第１バッファＶ１（ｃ）に格納される。
【００６９】
次に、Ｖｏ（ｘ＋２，ｙ，ｚ，ｃ）の２近傍の平均値が計算されると、Ｖｏ（ｘ＋２，ｙ，ｚ，ｃ）の２近傍の平均値も同様に第１バッファＶ１（ｃ）に格納されるが、第１バッファＶ１（ｃ）は空いていない。そのため、第１バッファＶ１（ｃ）に格納されているＶｏ（ｘ＋１，ｙ，ｚ，ｃ）の２近傍の平均値を第２バッファＶ２（ｃ）に移動させようとするが、第２バッファＶ２（ｃ）も空いていない。そこで、第２バッファＶ２（ｃ）に格納されているＶｏ（ｘ，ｙ，ｚ，ｃ）の２近傍の平均値を、元の暫定ボクセル構造体のボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）に上書し（更新し）、第２バッファＶ２（ｃ）を空ける。続けて、第１バッファＶ１（ｃ）に格納されているＶｏ（ｘ＋１，ｙ，ｚ，ｃ）の２近傍の平均値を第２バッファＶ２（ｃ）に移動させ、第１バッファＶ１（ｃ）を空ける。そして、Ｖｏ（ｘ＋２，ｙ，ｚ，ｃ）の２近傍の平均値が第１バッファＶ１（ｃ）に格納される。以上の処理をまとめると、２近傍の平均値を算出するごとに、次の３つの操作を行えばよい。（１）第２バッファＶ２（ｃ）にデータがある場合は、データを暫定ボクセル構造体の所定のアドレスに転送し上書きする。（２）第１バッファＶ１（ｃ）にデータがある場合は、第１バッファＶ１（ｃ）のデータを第２バッファＶ２（ｃ）に転送する。（３）２近傍の平均値を第１バッファＶ１（ｃ）に格納する。ただし、処理開始時には（１）（２）は実行されず（３）が最初に実行されるため、本実施形態では、操作の順序を（３）（１）（２）の順に変更して以下説明する。（ア）２近傍の平均値を第１バッファＶ１（ｃ）に格納する。（イ）第２バッファＶ２（ｃ）にデータがある場合は、データを暫定ボクセル構造体の所定のアドレスに転送し上書きする。（ウ）第１バッファＶ１（ｃ）のデータを第２バッファＶ２（ｃ）に転送する。これら３つの操作を繰り返しながら末端部まで終了すると、第２バッファＶ２（ｃ）にデータが残るため、第２バッファＶ２（ｃ）に残ったデータを暫定ボクセル構造体の所定のアドレスに転送し上書きし、一連の処理を終了する。
【００７０】
すなわち、ｙ＝０，…，Ｓｙ−１，ｚ＝０，…，Ｓｚ−１の各（ｙ，ｚ）に対し、ｘ軸方向にｘ＝１，…，Ｓｘ−２に対して、（ア）Ｖ１（ｃ）＝｛Ｖｏ（ｘ−１，ｙ，ｚ，ｃ）＋Ｖｏ（ｘ，ｙ，ｚ，ｃ）＋Ｖｏ（ｘ＋１，ｙ，ｚ，ｃ）｝／３（ｃ＝０，…，３）、（イ）ｘ＞１の場合、Ｖｏ（ｘ−１，ｙ，ｚ，ｃ）＝Ｖ２（ｃ）、（ウ）Ｖ２（ｃ）＝Ｖ１（ｃ）（ｃ＝０，…，３）という（ア）〜（ウ）の３つの操作を繰り返し、最後に、Ｖｏ（Ｓｘ−２，ｙ，ｚ，ｃ）＝Ｖ２（ｃ）とし、ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）の（ｙ，ｚ）におけるｘ軸方向の１列（ｘ＝１，…，Ｓｘ−２）を更新する。
【００７１】
次に、更新されたボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）のｘ＝０，…，Ｓｘ−１，ｚ＝０，…，Ｓｚ−１の各（ｘ，ｚ）に対し、ｙ軸方向にｙ＝１，…，Ｓｙ−２に対して、（ア）Ｖ１（ｃ）＝｛Ｖｏ（ｘ，ｙ−１，ｚ，ｃ）＋Ｖｏ（ｘ，ｙ，ｚ，ｃ）＋Ｖｏ（ｘ，ｙ＋１，ｚ，ｃ）｝／３（ｃ＝０，…，３）、（イ）ｙ＞１の場合、Ｖｏ（ｘ，ｙ−１，ｚ，ｃ）＝Ｖ２（ｃ）、（ウ）Ｖ２（ｃ）＝Ｖ１（ｃ）（ｃ＝０，…，３）という（ア）〜（ウ）の３つの操作を繰り返し、最後に、Ｖｏ（ｘ，Ｓｙ−２，ｚ，ｃ）＝Ｖ２（ｃ）とし、ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）の（ｘ，ｚ）におけるｙ軸方向の１列（ｙ＝１，…，Ｓｙ−２）を更新する。
【００７２】
次に、更新されたボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）のｘ＝０，…，Ｓｘ−１，ｙ＝０，…，Ｓｙ−１の各（ｘ，ｙ）に対し、ｚ軸方向にｚ＝１，…，Ｓｚ−２に対して、（ア）Ｖ１（ｃ）＝｛Ｖｏ（ｘ，ｙ，ｚ−１，ｃ）＋Ｖｏ（ｘ，ｙ，ｚ，ｃ）＋Ｖｏ（ｘ，ｙ，ｚ＋１，ｃ）｝／３（ｃ＝０，…，３）、（イ）ｚ＞１の場合、Ｖｏ（ｘ，ｙ，ｚ−１，ｃ）＝Ｖ２（ｃ）、（ウ）Ｖ２（ｃ）＝Ｖ１（ｃ）（ｃ＝０，…，３）という（ア）〜（ウ）の３つの操作を繰り返し、最後に、Ｖｏ（ｘ，ｙ，Ｓｚ−２，ｃ）＝Ｖ２（ｃ）とし、ボクセルＶｏ（ｘ，ｙ，ｚ，ｃ）の（ｘ，ｙ）におけるｚ軸方向の１列（ｚ＝１，…，Ｓｚ−２）を更新する。
【００７３】
上述のように、ボクセル構造体生成部２３は、暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって当該各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶し、第２バッファに記憶されている暫定ボクセル構造体の当該各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって当該直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により暫定ボクセル構造体の当該直前ボクセルの不透明度又はＲＧＢ値を更新し、第１バッファに記憶した補正値を第２バッファに転送する、という３つの操作を繰り返すことにより、暫定ボクセル構造体の各ボクセルのＲＧＢ値又は不透明度を更新してボクセル構造体を生成することができる。
【００７４】
上述のように、本実施の形態のボクセルデータは、暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって当該各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する第１の処理と、第２バッファに記憶されている暫定ボクセル構造体の当該各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって当該直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により暫定ボクセル構造体の当該直前ボクセルの不透明度又はＲＧＢ値を更新する第２の処理と、第１バッファに記憶した補正値を第２バッファに転送する第３の処理とを実行するのに用いられる。
【００７５】
上述のとおり、必要とするバッファを２ボクセル分にすることができ、メモリ容量を大幅に削減することができる。また、１次元２近傍のボクセルの平均化処理に対して２ボクセル分前に算出した２近傍の平均値を元のボクセル構造体に上書きしながら進めることができ、ボクセル構造体の全ボクセル分の作業用メモリを使用せずに高速にスムージング処理を行うことができる。
【００７６】
以下では、ボクセルのスムージング処理が行われた後のボクセル構造体に対する処理について説明する。すなわち、以下では、ボクセル構造体は、ボクセルのスムージング処理が施されているものとする。
【００７７】
ボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）で表す。ここで、０≦Ｖ（ｘ，ｙ，ｚ，ｃ）≦２５５、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）、３（α）、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１である。
【００７８】
また、ボクセル構造体生成部２３は、ＲＧＢ値及び不透明度が所定値であるボクセルを含むボクセル構造体を生成することができる。所定値としては、ＲＧＢ値がＲ＝Ｇ＝Ｂ＝０（すなわち、無色つまり黒色）で、不透明度α＝０（すなわち、透明）とするが、これらはボリュームレンダリング像の計算に寄与しないボクセルの値であることを意味し、ボリュームレンダリング像の計算に寄与しない値であれば、Ｒ＝Ｇ＝Ｂ＝０及び不透明度α＝０に限定しなくてもよい。
【００７９】
色補間部２８は、ボクセル構造体のＲＧＢ値及び不透明度が所定値である対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、色補間して、対象ボクセルのＲＧＢ値を補正する。なお、色補間を色補正とも称する。色補間の詳細は後述する。
【００８０】
３Ｄテクスチャ画像生成部２６は、ＲＧＢ値が色補間されたボクセル構造体のボクセルで構成される３Ｄテクスチャ画像を生成する。すなわち、３Ｄテクスチャ画像生成部２６は、ボクセル構造体生成部２３で生成されたボクセル（ＲＧＢ値及び不透明度が所定値であるボクセルを含む）に基づいて、３Ｄテクスチャ画像を生成する。３Ｄテクスチャ画像のデータは、３Ｄテクスチャマップとも称し、データの実体はボクセル構造体と同一である。３Ｄテクスチャ画像生成部２６は、ボクセル構造体のボリュームをグラフィックＡＰＩ（例えば、ＯｐｅｎＧＬ）の３Ｄテクスチャマップとして登録する。より具体的には、ボクセル構造体のボリュームは、ＣＰＵのメインメモリからＧＰＵのビデオメモリにグラフィックＡＰＩを介して転送され、グラフィックＡＰＩのテクスチャ形式に変換されてビデオメモリに保持される。本願では以降、説明の便宜上グラフィックＡＰＩとしてＯｐｅｎＧＬを対象に処理の内容を説明するが、これに限定されない。
【００８１】
３ＤテクスチャマップをＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）で表す。ここで、０≦Ｔｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）≦２５５、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）、３（α）、０≦ｘｔ≦Ｓｘ−１、０≦ｙｔ≦Ｓｙ−１、０≦ｚｔ≦Ｓｚ−１である。
【００８２】
なお、ボクセル構造体の座標系をＯｐｅｎＧＬのワールド座標系で定義し、ＸＹＺ座標（−１≦ｘ≦１、−１≦ｙ≦１、−１≦ｚ≦１）で表し、３Ｄテクスチャマップの座標系をテクスチャ座標系で定義し、ＯｐｅｎＧＬではテクスチャ座標系をＳＴＲ座標（０≦ｓ≦１、０≦ｔ≦１、０≦ｒ≦１）で表す習慣がある。座標ｓは座標ｘに対応し、座標ｔは座標ｙに対応し、座標ｒは座標ｚに対応する。本実施の形態では、便宜上、ワールド座標系のＸＹＺをＸＹＺ座標と表し、テクスクチャ座標系のＳＴＲ座標をｘｙｚ座標と表す。
【００８３】
積層四角形設定部２７は、ワールド座標系において、ＸＹ座標面で定義される複数の四角形をＺ軸方向に所定の間隔だけずらして並べた積層四角形を設定する。積層四角形は各々が３次元空間上の４つの頂点で定義された四角形である。
【００８４】
変換処理部２４は、テクスチャ座標系に定義された複数のスライス画像で構成される３Ｄテクスチャ画像に対してテクスチャ座標系において所定の変換を行って変換後３Ｄテクスチャ画像を生成する。所定の変換は、透視変換処理、座標変換処理などを含む。
【００８５】
図１１は本実施の形態の３Ｄテクスチャマッピング装置１００による３Ｄテクスチャマッピングの概念を示す模式図である。図１１Ａは積層四角形に対して座標変換前の３Ｄテクスチャマップをマッピングした状態を示し、図１１Ｂは積層四角形に対して座標変換後の３Ｄテクスチャマップをマッピングした状態を示す。ワールド座標（Ｘ，Ｙ，Ｚ）において、ＸＹ座標面上の四角形がＺ軸方向に沿って複数配置されている。視点は、図１１において、投影面（レンダリング像が生成される面）より上側（すなわち、Ｚ軸の正方向）に存在する。ワールド座標系に定義した積層四角形は固定であるため、個々の四角形は、視線に対して常に垂直である。図１１中、積層四角形の内部に図示した楕円形状は、マッピングされた３Ｄテクスチャマップ（ボクセルデータ）を示す。３Ｄテクスチャマップは、テクスチャ座標系において適宜所定の変換が行われるが、ワールド座標系とテクスチャ座標系との対応関係（マッピング）は固定であるため、３Ｄテクスチャマップの変換後に積層四角形にマッピングされている３Ｄテクスチャマップの内容は自動的に変更される。
【００８６】
図１１Ａに示すように、３Ｄテクスチャマッピングでは、ボクセルデータをテクスチャ座標系に３Ｄテクスチャマップとして定義し、３Ｄテクスチャマップをワールド座標系に定義された積層四角形の各四角形に貼り付ける。すなわち、四角形に３Ｄテクスチャマップの各断面（スライス）をマッピングすることにより、３Ｄテクスチャマップを視線に対して垂直な断面の集まりとして再構成する。
【００８７】
図１１Ｂに示すように、視点の変更は、ワールド座標（Ｘ，Ｙ，Ｚ）に定義された積層四角形およびワールド座標系とテクスチャ座標系との対応関係を初期のまま動かさずに、四角形に貼り付けた３Ｄテクスチャマップをテクスチャ座標系で回転させる。これにより、個々の四角形の４頂点と３Ｄテクスチャマップの座標位置（図７では、ｘｙｚ座標で表す）が回転により変更され、視点を変更した画像を得ることができる。
【００８８】
レンダリング処理部２５は、ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する。
【００８９】
具体的には、レンダリング処理部２５は、所定の視点からＺ軸方向に平行な視線上の四角形のＸＹ座標に対応する変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を視点から遠い四角形の順に当該ボクセルのアルファ値を基にアルファブレンディングして得られたＲＧＢ値を、視線が投影面と交差する画素の画素値としてレンダリング画像を生成する。この場合、レンダリング処理部２５は、レンダリング画像のＸＹ座標と視線方向に交差する四角形の交差座標（ＸＹＺ座標）を算出し、算出した交差座標と対応する変換後３Ｄテクスチャ画像のｘｙｚ座標を算出し、算出したｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする。すなわち、３Ｄテクスチャマップが貼り付けられた四角形を、視点から遠い順にアルファブレンディングすることでボリュームレンダリングを行う。これらの手順をＯｐｅｎＧＬなどのグラフィックＡＰＩを用いて指示することで、ＧＰＵの機能を利用した高速処理が可能となる。ＧＰＵの機能を利用することにより、待ち時間を抑制して高速にレンダリング画像を生成することができる。本実施の形態であれば、汎用コンピュータに装着されたビデオカードに搭載されたＧＰＵであっても、０．１秒以内でレンダリング処理が可能であり、対話形式で（あるいはインタラクティブ性を確保して）レンダリング画像をリアルタイムに表示させることができる。
【００９０】
本実施の形態では、３Ｄテクスチャマッピング法を用いるが、一般的な２Ｄテクスチャマッピング法の場合には、以下のような課題がある。すなわち、２Ｄテクスチャマッピング法では、ボクセルデータを構成する各スライスの輪郭形状をワールド座標系において四角形で表現するところは本願と同様であるが、２次元のテクスチャ座標系においてボクセルデータを構成する各スライスの画像を複数の２Ｄテクスチャマップとして定義する点で異なる（本実施の形態では、全スライスの画像を３次元のテクスチャ座標系において単一の３Ｄテクスチャマップとして定義している）。そして、各四角形に対応するいずれかの２Ｄテクスチャマップを各四角形に貼り付ける（本実施の形態では、各四角形の４頂点に対応する３Ｄテクスチャマップ内の４つの座標を対応付けて貼り付けている）。２Ｄテクスチャマップは２次元のテクスチャ座標系において定義されているため、回転は２次元的にしか行えない。そのため、ワールド座標系において、積層した四角形を３次元的に回転させる方法をとらざるを得ない。そうすると、回転角度により奥行関係が崩れ、あるいは２Ｄテクスチャマップが反転し、積層した四角形をＹ軸中心に９０度回転させると、四角形（厚みが０）は描画されず、レンダリング像は真っ黒になる。
【００９１】
また、スライスと視線とのなす角度が小さくなるにつれて投影面積が小さくなり、サンプリングされるデータの数が減少し、ボリュームレンダリングの意義が失われ、実用的なレンダリング像を得ることができない場合がある。即ち、回転角度により、ワールド座標系の積層四角形とテクスチャ座標系の２Ｄテクスチャマップとの対応関係を補正しないと、適切なレンダリング像を得ることができない。
【００９２】
本実施の形態によれば、２Ｄテクスチャマッピング法における課題、あるいはワールド座標を回転する場合に生じる課題を解決することができる。
【００９３】
次に、本実施の形態の３Ｄテクスチャマッピング装置１００の動作について説明する。
【００９４】
図１２及び図１３は本実施の形態の３Ｄテクスチャマッピング装置１００による３Ｄテクスチャマッピング処理の手順の一例を示すフローチャートである。以下では、便宜上、処理の主体を画像処理部２０として説明する。画像処理部２０は、ＤＩＣＯＭ画像の画像データを取得し（Ｓ１１）、カラーマップデータを取得する（Ｓ１２）。なお、カラーマップデータは、図３、図４で例示したものである。
【００９５】
画像処理部２０は、変換パラメータを取得し（Ｓ１３）、ｘｙｚ方向のＲＯＩ値を取得する（Ｓ１４）。なお、変換パラメータは、座標変換パラメータ及び透視変換パラメータなどを含む。変換パラメータの詳細は後述する。画像処理部２０は、ＤＩＣＯＭ画像の階調圧縮処理を行い（Ｓ１５）、階調圧縮断層画像Ｄ８に対してカラーマップ定義を行う（Ｓ１６）。カラーマップ定義は、階調圧縮断層画像Ｄ８の画素値に対して、ＲＧＢ値及び不透明度αを定義する。なお、ステップＳ１５の処理は必須ではなく、ステップＳ１５の処理を実施しない場合には、ＤＩＣＯＭ画像に対してカラーマップ定義を行えばよい。ただし、カラーマップはＣＴ画像の場合、見たい部位ごとに汎用的に定義することが可能で、与えられたＤＩＣＯＭ画像に依存して定義されるものではないため、ステップＳ１６の処理を省略し、あらかじめ定義されたカラーマップを流用することもできる。
【００９６】
画像処理部２０は、カラーマップを適用して暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）を生成する（Ｓ１７）。画像処理部２０は、暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）に対して、ボクセルのスムージング処理を行ってボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成する（Ｓ１８）。画像処理部２０は、ＲＯＩクリッピング領域外のボクセルの透明化処理を行う（Ｓ１９）。
【００９７】
図１４は本実施の形態の３Ｄテクスチャマッピング装置１００によるＲＯＩクリッピング領域外のボクセルの透明化処理の一例を示す説明図である。図１４は、ｚ番目に位置するｘｙ平面画像の一例を図示している。ＲＯＩによるクリッピングでは、ｘ軸方向のＲＯＩとして、Ｘｓ−Ｘｅを設定し、ｙ軸方向のＲＯＩとして、Ｙｓ−Ｙｅを設定し、図１４には図示されていないが、ｚ軸方向のＲＯＩとして、Ｚｓ−Ｚｅを設定する。ここで、０≦Ｘｓ、Ｘｅ≦Ｓｘ−１、０≦Ｙｓ、Ｙｅ≦Ｓｙ−１、０≦Ｚｓ、Ｚｅ≦Ｓｚ−１である。すなわち、ＲＯＩクリッピング処理部２９は、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する。ボクセル構造体生成部２３は、ＲＯＩクリッピング領域外のボクセルの透明化処理を行う。
【００９８】
ボクセルの透明化処理では、ｘ＜Ｘｓまたはｘ＞Ｘｅまたはｙ＜Ｙｓまたはｙ＞Ｙｅまたはｚ＜Ｚｓまたはｚ＞Ｚｅの場合、０≦ｃ≦３に対してＶ（ｘ，ｙ，ｚ，ｃ）＝０、すなわち、Ｒ＝Ｇ＝Ｂ＝α＝０とする（すなわち、画素の色を無色つまり黒色で、透明にする）。図１４の例では、ｘ＜Ｘｓ、ｘ＞Ｘｅ、ｙ＜Ｙｓ、及びｙ＞Ｙｅを充足する座標（ｘ，ｙ）の画素の色を無色（黒色）にし、不透明度をα＝０（透明）にする。
【００９９】
なお、色補間部２８は、後述のステップＳ２４において、ＲＯＩクリッピング領域外など透明化処理されたボクセルを含む無色・透明なボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセル（不透明ボクセル）のＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値を色補間する。ただし、透明なボクセルであっても、透明化処理されたものでなく、ＲＧＢ値のいずれかに１以上の値が設定されている場合（肺野の空気など）は、色補間を行わない。
【０１００】
上述のように、本実施の形態のボクセル構造体のボクセルデータにおいて、ボクセル構造体は、ボリュームレンダリング処理の対象領域外であって、ＲＧＢ値及び不透明度が所定値である対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値が色補間されたデータを含む。
【０１０１】
ＲＯＩクリッピング切断面に限らず、ボリュームレンダリング処理の対象領域である不透明領域（不透明度が１以上の値をもつようにした領域）とボリュームレンダリング処理の対象領域外である透明領域（不透明度が０の値をもつようにした領域）との境界面がモアレの発生源になる。（詳細は後述するが、座標変換により境界面において階段状のパターンが生成されるためである。）そもそも、断層画像には人体・撮影治具（寝台など）など被写体以外の背景部が存在することが一般的で、背景部は空気で無色・透明であるため、不透明な被写体との境界面が元々存在し、モアレの発生源になり得るため、背景部に対して後述の補正対象領域と一緒に色補間を行う必要がある。
【０１０２】
ＲＯＩクリッピング切断面に限らず、断層画像の最初のスライスまたは／かつ最後のスライスがそのまま不透明領域と透明領域との境界面となり、当該境界面がモアレの発生源になる場合がある。人体の一部である胸部・腹部などに対してＣＴスキャンされた断層画像の最初のスライスより手前及び最後のスライスの後方には画像データが存在せず、無色・透明な空間としてボリュームレンダリング処理されるため、ＲＯＩクリッピング切断面と同様な特質をもつ。即ち、断層画像の最初のスライスと最後のスライスは、必然的に不透明領域と透明領域の境界面となり、モアレ発生源となる。そこで、最初のスライスより手前及び最後のスライスの後方の領域にボクセルを追加して無色・透明にし、後続処理である色補間することにより、併せてモアレの発生を抑制することができる。色補間の詳細は後述する。
【０１０３】
画像処理部２０は、ｚ方向の両端に新たにＲＧＢ値及び不透明度が所定値とされた（ここでは、無色・透明な）ダミー透明画像を付加し（Ｓ２０）、ボクセル構造体にダミー透明画像に対応するボクセルを追加する（Ｓ２１）。ダミー透明画像に対応するボクセルが追加されたボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）と表す。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ＋１である。
【０１０４】
図１５は本実施の形態の３Ｄテクスチャマッピング装置１００によるダミー透明画像付加処理の一例を示す説明図である。ｚ軸方向にスライス間隔で並んだ元の断層画像のｚ軸方向の両端に、全ての画素のＲＧＢ値及び不透明度が所定値とされた（ここでは、無色・透明に設定した）ダミー透明画像を追加する。すなわち、ボクセル構造体生成部２３は、複数のｘｙ平面画像を間にしてｚ軸方向の両端に配置されたダミーｘｙ平面画像の各画素に対応し、ＲＧＢ値及び不透明度が所定値とされたダミーボクセルを付加したボクセル構造体を生成する。具体的には、ボクセル構造体生成部２３は、断層画像のｚ軸方向の両端にダミー透明画像に対応するボクセルを追加する。所定値としては、当該ボクセルがボリュームレンダリング像の生成に寄与しないように、ＲＧＢ値をＲ＝Ｇ＝Ｂ＝０に、不透明度をα＝０（すなわち、無色・透明）とすることができるが、ボリュームレンダリング像の生成に寄与しない値であれば、ＲＧＢ値をＲ＝Ｇ＝Ｂ＝０に限定しなくてもよく、不透明度をα＝０に限定しなくてもよい。
【０１０５】
なお、色補間部２８は、後述のステップＳ２４において、生成したボクセル構造体のボクセルのＲＧＢ値及び不透明度が所定値である対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値を色補間する。ただし、透明なボクセルであっても、ＲＧＢ値のいずれかに所定値以外の値（ここでは、１以上の値）が設定されている場合（例えば、肺野の空気など）は、色補間を行わない。
【０１０６】
上述のように、本実施の形態のボクセル構造体のボクセルデータにおいて、ボクセル構造体は、複数のｘｙ平面画像を間にしてｚ軸方向の両端に配置されたダミーｘｙ平面画像の各画素に対応し、ＲＧＢ値及び不透明度が所定値とされたボクセルであるダミーボクセルを含み、ボクセルデータは、ダミーボクセルが付加されたボクセル構造体のＲＧＢ値及び不透明度が所定値である対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値が色補間されたデータを含む。
【０１０７】
ＲＯＩクリッピング切断面に限らず、断層画像の周辺部がそのまま不透明領域と透明領域との境界面となり、モアレの発生源になる場合がある。例えば、ＣＴスキャンの倍率設定により、人体の断層面の周辺部が切れた状態で撮像されることがあり、その場合、ＲＯＩクリッピングの指示を行わなくても、図１４において、ｘ＝０、ｙ＝０、ｘ＝Ｓｘ−１、ｙ＝Ｓｙ−１のいずれかを満たす面は、ｘ＜０、ｙ＜０、ｘ＞Ｓｘ−１、ｙ＞Ｓｙ−１のいずれかの断層画像の外側領域には画像データが存在せず、無色・透明な空間としてボリュームレンダリング処理されるため、ＲＯＩクリッピング切断面と同様な特質をもつ。即ち、ｘ＝０、ｙ＝０、ｘ＝Ｓｘ−１、ｙ＝Ｓｙ−１のいずれかを満たす平面は、必然的に不透明領域と透明領域の境界面となり、モアレ発生源となる。そこで、ＲＯＩクリッピングの指示の有無を問わず、ｘ＝０、ｙ＝０、ｘ＝Ｓｘ−１、ｙ＝Ｓｙ−１のいずれかを満たす１ボクセル幅の外縁部の全てのボクセルに対して、図１４の斜線部と同様に無色・透明にし、後続処理である色補間を併せて行う。即ち、画像処理部２０は、階調圧縮断層画像の外縁部（ボーダー部とも称する）の画素に対応するボクセルの透明化処理を行う（Ｓ２２）。なお、後述のステップＳ２３の処理を行うか否かにかかわらず、ステップＳ２２の処理は実施する。なお、外縁部とは、画像の外側ではなく、画像内の領域であって、画像の縁にあたる部分を意味する。
【０１０８】
図１６は本実施の形態の３Ｄテクスチャマッピング装置１００による断層画像の外縁部のボクセルの透明化処理の一例を示す説明図である。ｚ軸方向にスライス間隔で並んだ断層画像それぞれの外縁部の画素に対応するボクセルの色をＲ＝Ｇ＝Ｂ＝０（無色）にし、不透明度αを０（透明）にする。すなわち、ボクセル構造体生成部２３は、断層画像の外縁部の画素に対応するボクセルを無色・透明にする。ここで、外縁部とは、例えば、断層画像内の領域であって縁から１画素分とすることができる。ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）は、Ｖ（ｘ，ｙ，ｚ，ｃ）＝０（ｘ＝０またはｘ＝Ｓｘ−１またはｙ＝０またはｙ＝Ｓｙ−１またはｚ＝０またはｚ＝Ｓｚ＋１、０≦ｃ≦３）となる。すなわち、ボクセル構造体生成部２３は、複数のｘｙ平面画像の外縁部の各画素に対応し、ＲＧＢ値及び不透明度が所定値とされたボクセルを含むボクセル構造体を生成する。具体的には、ボクセル構造体生成部２３は、断層画像の外縁部の画素に対応するボクセルを無色・透明にする。なお、外縁部は１画素に限定しなくてもよい。所定値としては、ＲＧＢ値をＲ＝Ｇ＝Ｂ＝０で不透明度α＝０（すなわち、画素の色を無色つまり黒色で、透明）とすることができるが、ボリュレームレンダリングに寄与しないボクセルの値であれば、ＲＧＢ値をＲ＝Ｇ＝Ｂ＝０に限定しなくてもよく、不透明度をα＝０に限定しなくてもよい。
【０１０９】
なお、色補間部２８は、後述のステップＳ２４において、断層画像の外縁部の無色・透明な画素に対応するボクセルの対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値を色補間する。ただし、透明なボクセルであっても、ＲＧＢ値のいずれかに所定値以外の値（ここでは、１以上の値）が設定されている場合（例えば、肺野の空気など）は、色補間を行わない。
【０１１０】
上述のように、本実施の形態のボクセル構造体のボクセルデータにおいて、ボクセル構造体は、複数のｘｙ平面画像の外縁部の各画素に対応し、ＲＧＢ値及び不透明度が所定値とされたボクセルを含み、ボクセルデータは、ボクセルを含むボクセル構造体のＲＧＢ値及び不透明度が所定値である対象ボクセルに対して、対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、対象ボクセルのＲＧＢ値が色補間されたデータを含む。
【０１１１】
画像処理部２０は、ボクセルの陰影値を算出する（Ｓ２３）。ただし、ステップＳ２３の処理は、必須ではなく、ステップＳ２３の処理を実施しない場合には、ステップＳ２４の処理に進めばよい。
【０１１２】
ボクセルの陰影値の算出は、以下のようにすることができる。すなわち、ボクセル構造体生成部２３は、ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出し、算出した勾配ベクトル及び所定の光源ベクトルに基づいてボクセルの陰影値を算出する。
【０１１３】
より具体的には、ボクセル構造体生成部２３は、ボクセル構造体のボクセルの不透明度と、当該ボクセルの近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する。ボクセル構造体生成部２３は、ボクセルと近傍ボクセルとの距離並びにボクセル及び近傍ボクセルそれぞれの不透明度の差分に基づいてボクセルの勾配ベクトルを算出する。この場合、近傍ボクセルとの距離を用いるにあたり、ＸＹ方向とＺ方向の解像度が異なることを考慮し、ボクセル構造体生成部２３は、勾配ベクトルのｚ軸方向の成分をｚ軸方向の変倍率Ｒｘｙ／Ｒｚで補正することが必要である。
【０１１４】
光源ベクトル（Ｌｘ，Ｌｙ，Ｌｚ）は、例えば、（Ｌｘ，Ｌｙ，Ｌｚ）＝（０．５７７３５，０．５７７３５，０．５７７３５）の如く、平行光源で単位ベクトルとして指定する。また、環境光成分をＡｂとする。ここで、０≦Ａｂ≦１である。例えば、Ａｂ＝０．２とする。
【０１１５】
０≦ｘ≦Ｓｘ−２、０≦ｙ≦Ｓｙ−２、０≦ｚ≦Ｓｚの範囲のボクセル（ｘ，ｙ，ｚ）の勾配ベクトル（Ｇｘ，Ｇｙ，Ｇｚ）は、式（１５）、（１６）、（１７）で算出することができる。本実施の形態では、２６近傍のボクセル値と中央のボクセルのボクセル値との差分により高精度に勾配ベクトルを算出することができる。勾配ベクトルを算出する際に、ボクセルは座標変換前でｚ方向変倍処理が行われていないため、ｘｙ方向とｚ方向とでは解像度が異なる点に留意し、勾配ベクトルのｚ方向成分Ｇｚの変倍補正（Ｒｘｙ／Ｒｚの乗算）を行う。
【０１１６】
【数３】
2019175013.tif 000005
【０１１７】
Ｇ＝｛Ｇｘ2 ＋Ｇｙ2 ＋Ｇｚ2 ｝1/2 とする（Ｇｘの２乗とＧｙの２乗とＧｚの２乗との和の平方根をＧとする）。Ｇ≧１の場合、陰影値Ｓ（ｘ，ｙ，ｚ）は、拡散反射成分のみ算出し、式（１８）で与えられる。これにより、視線ベクトルを変更してボクセルを回転させると、立体感を表現することができる。なお、視線を変えても、座標の回転処理を行う前であり、勾配ベクトルは変化しないので、鏡面反射成分は加えない。ボクセル構造体生成部２３は、算出した輝度値に基づいてボクセルのＲＧＢ値を補正する。陰影計算後のボクセルをＶ′（ｘ，ｙ，ｚ，ｃ）で表すと、ボクセルのＲＧＢ値の補正は、０≦ｃ≦２の範囲で式（１９）を適用することにより行うことができる。
【０１１８】
ＯｐｅｎＧＬを用いた３Ｄテクスチャマッピング法では、ハードウエアレンダリングにおいて、ボクセルの勾配ベクトル、陰影計算に係る処理はサポートされていないため、陰影値として常にα値が与えられている。しかし、本実施の形態では、疑似的に陰影計算を行うことができる。すなわち、陰影計算を正確に行うためには、ボクセルの座標変換後に行う必要があるが、座標変換はハードウエアレンダリングで一緒に行われるため、座標変換前にハードウエアレンダリングに投入するボクセルデータに予め陰影計算結果を組み込むことにより、疑似的に陰影が付与されたレンダリング像を得ることができる。
【０１１９】
断層画像の外縁部や背景部のボクセルではＧ＜１となることがあり、その場合、陰影計算を行わずに、一律に無色・透明（Ｒ＝Ｇ＝Ｂ＝α＝０）にする。すなわち、陰影計算後のボクセルをＶ′（ｘ，ｙ，ｚ，ｃ）で表すと、Ｖ′（ｘ，ｙ，ｚ，ｃ）＝０（ｃ＝０，１，２，３）とする。これは、前述のステップＳ２２と同等の処理である。
【０１２０】
画像処理部２０は、透明ボクセルの色補間処理を行う（Ｓ２４）。なお、色補間処理の詳細は後述する。
【０１２１】
画像処理部２０は、色補間したボクセル構造体を３Ｄテクスチャマップとして登録し（Ｓ２５）、投影画面を設定する（Ｓ２６）。
【０１２２】
図１７は本実施の形態の３Ｄテクスチャマッピング装置１００による投影画面設定の一例を示す説明図である。変換処理部２４は、レンダリング画像のスクリーンサイズ（縦横画素数、縦横アスペクト比率）を設定する。変換処理部２４は、平行投影（通常の外観レンダリング）又は透視投影（内視鏡モード）のいずれかを設定する。そして、変換処理部２４は、透視投影が設定された場合、透視投影パラメータを設定する。透視投影パラメータは、例えば、カメラの視野角度（焦点距離）、視点位置（視点と注視点で構成され、前者は目の位置で後者は見ている対象物上の位置で、双方ともＺ軸上に設定される。一般に、注視点はワールド座標系の原点に固定）、クリッピング位置（視点からのＺ軸上の距離、近方及び遠方の２箇所）などを含む。なお、クリッピング位置は、近方だけでもよい。図１７に示すように、平行投影の場合には、視点からの視線は全てＺ軸に平行となり、視点は仮想的に左方向に無限遠に離れた位置にあることを想定しているため、Ｚ軸方向に定義されている全ての積層四角形がレンダリング対象になる。一方、透視投影の場合には、視点からの視野角度に応じて、視線が広がり、レンダリング対象も近方クリッピングによって制限されている。
【０１２３】
画像処理部２０は、レンダリング処理を行い（Ｓ２７）、フレームメモリ上にレンダリング画像を生成し（Ｓ２８）、処理を終了する。なお、レンダリング処理の詳細は後述する。
【０１２４】
図１８は本実施の形態の３Ｄテクスチャマッピング装置１００による透明ボクセルの色補間処理の手順の一例を示すフローチャートである。画像処理部２０は、ボクセル構造体の、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ＋１のすべてのボクセルから無色・透明のボクセルを抽出する（Ｓ１０１）。すなわち、式（２０）を満たすボクセルを抽出する。
【０１２５】
【数４】
2019175013.tif 000006
【０１２６】
画像処理部２０は、抽出したボクセルのうち対象ボクセルの近傍ボクセルであって不透明なボクセルを特定する（Ｓ１０２）。対象ボクセルのｘｙｚ座標を（ｘ，ｙ，ｚ）とすると、−１≦ｉ≦１、−１≦ｊ≦１、−１≦ｋ≦１の範囲の対象ボクセルの近傍の２６近傍ボクセルの中からＶ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，３）＞０を満たす不透明ボクセルを特定し、式（２１）の定義に従いその個数をＣとする。すなわち、ボクセル構造体生成部２３は、対象ボクセルに係る近傍ボクセルのうち、不透明度が所定値より大きい近傍ボクセルを特定する。所定値としては、ボリュームレンダリングに寄与しない不透明度α＝０（すなわち、透明）とすることができるが、ボリュームレンダリングに寄与しなければ、不透明度をα＝０に限定しなくてもよい。
【０１２７】
画像処理部２０は、Ｃ＞０であるか即ち不透明ボクセルの有無を判定し（Ｓ１０３）、Ｃ＞０である場合、即ち不透明ボクセルがある場合（Ｓ１０３でＹＥＳ）、不透明ボクセルのＲＧＢ値の平均値で対象ボクセルのＲＧＢ値を更新し（Ｓ１０４）、後述のステップＳ１０６の処理を行う。ＲＧＢ値の平均値をＲａ、Ｇａ、Ｂａとすると、平均値は式（２２）、（２３）、（２４）によりＶ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，３）＞０を満たす不透明ボクセルの各々Ｒ値Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，０）、Ｇ値Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，１）、Ｂ値Ｖ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，２）の総和で算出することができる。また、無色・透明の対象ボクセルのＲＧＢ値の更新は、式（２５）、（２６）、（２７）により行うことができる。
【０１２８】
Ｃ＝０である場合、即ち不透明ボクセルがない場合（Ｓ１０３でＮＯ）、画像処理部２０は、対象ボクセルのＲＧＢ値を０（すなわち、Ｒａ＝Ｇａ＝Ｂａ＝０）とし（Ｓ１０５）、抽出した無色・透明のボクセルのすべての対象ボクセルの色補間を終了したか否かを判定する（Ｓ１０６）。すべての対象ボクセルの色補間を終了していない場合（Ｓ１０６でＮＯ）、画像処理部２０は、ステップＳ１０２以降の処理を続け、すべての対象ボクセルの色補間を終了した場合（Ｓ１０６でＹＥＳ）、処理を終了する。
【０１２９】
色補間処理は、画像処理部２０の色補間部２８が行う。より具体的には、色補間部２８は、特定した近傍ボクセルのＲＧＢ値の統計値に基づいて、対象ボクセルのＲＧＢ値を色補間する。統計値は、平均値を用いることができるが、平均値に限定しなくてもよく、例えば、中央値などを用いることもできる場合がある。
【０１３０】
上述のように、本実施の形態のボクセル構造体のボクセルデータは、対象ボクセルに係る近傍ボクセルのうち、不透明度が所定値より大きい近傍ボクセル（すなわち、不透明度αが１以上のボクセル）のＲＧＢ値の統計値に基づいて、対象ボクセルのＲＧＢ値が色補間されたデータを含む。
【０１３１】
図１９は本実施の形態の３Ｄテクスチャマッピング装置１００によるレンダリング処理の手順の一例を示すフローチャートである。画像処理部２０は、３Ｄテクスチャマップに対するスケーリング及びｚ方向変倍処理を行い（Ｓ１１１）、３Ｄテクスチャマップに対する回転処理を行う（Ｓ１１２）。
【０１３２】
画像処理部２０は、３Ｄテクスチャマップに対するオフセット処理を行い（Ｓ１１３）、複数の四角形で構成される積層四角形を設定する（Ｓ１１４）。画像処理部２０は、積層四角形を構成する各四角形と３Ｄテクスチャマップとの対応付けを行う（Ｓ１１５）。
【０１３３】
図２０は３Ｄテクスチャマッピングとの対応付け方法の一例を示す説明図である。図２０Ａに示すように、ＤＩＣＯＭ断層画像をＲＧＢα形式に変換し、グラフィックＡＰＩを介して３Ｄテクスチャマップとして登録する。そして、図２０Ｂに示すように、積層四角形を定義し、３Ｄテクスチャマッピングを行う。この場合、ワールド座標系における各四角形の４頂点の３次元ワールド座標とテクスチャ座標系における３Ｄテクスチャマップの３次元テクスチャ座標とを対応付ける。図２０に示すように、（−１，−１，ｚ）、（−１，１，ｚ）、（１，−１，ｚ）、（１，１，ｚ）の４頂点で構成される四角形に対して、ワールド座標の（−１，−１，ｚ）は、テクスチャ座標（０，０，ｒ）に対応付けられている。
【０１３４】
また、３Ｄテクスチャマッピングを設定する場合、積層四角形設定部２７は、複数のｘｙ平面画像の数及びダミーｘｙ平面画像の数の合計値と同数の四角形をＺ軸方向に並べた積層四角形を設定する。
【０１３５】
積層四角形における四角形の数は任意に設定することができるが、四角形の数と断層画像の枚数とが一致しない場合、Ｚ軸方向に補間処理が働き、座標変換による座標値の丸め誤差が累積し、ストライプ・格子状のモアレが発生する。
【０１３６】
そこで、積層四角形における四角形の数、３Ｄテクスチャマップに登録する２Ｄ断層画像の枚数を元のＤＩＣＯＭ形式の断層画像の枚数＋２枚（ｚ軸方向に追加したダミー透明画像）にする。３Ｄボクセル構造体を構築する際、ＸＹＺ３次元の解像度を統一させた方が、後処理がしやすくなるため、２Ｄ断層画像のスライス間を補間して元のＤＩＣＯＭ形式の断層画像の枚数よりも増やす処理が一般的に行われるが、本実施の形態の方が、モアレを抑制する観点から、より好ましい。
【０１３７】
画像処理部２０は、積層四角形に３Ｄテクスチャマップを貼り付けながらスキャンコンバージョンを行い、視点から遠い四角形の順にアルファブレンディング処理を行い（Ｓ１１６）、処理を終了する。
【０１３８】
より具体的には、あらかじめレンダリング画像のＲＧＢ値は全て背景色（例えば、Ｒ＝Ｇ＝Ｂ＝０）で初期化しておく。レンダリング処理部２５は、視点から最も遠い四角形に３Ｄテクスチャマップを貼り付け、図１７で定義したレンダリング画像に平行投影または透視投影を行い、投影された四角形のワールド座標系におけるＸＹＺ座標の（−１，−１，−１）からＸ軸方向及びＹ軸方向に、投影されたレンダリング画像における画素間隔に対応する間隔ｕ（レンダリング画像の１画素に対応するワールド座標の間隔をｕとする。例えばｕ＝０．００２）でスキャンコンバージョンを行う。スキャンコンバージョンされた、各ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１）（ｉ，ｊはレンダリング画像の座標値で、例えば０≦ｉ，ｊ≦５１１の整数）において、各々対応するテクスチャ座標（２ｉｕ，２ｊｕ，０）を算出し、算出したテクスチャ座標に基づいて３Ｄテクスチャマップを参照しＲＧＢ値及び不透明度を取得して、対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されているＲＧＢ値とアルファブレンディング処理を行い、対応するレンダリング画像の座標（ｉ，ｊ）のＲＧＢ値を更新する。このようにして、視点から最も遠い単一の四角形についてアルファブレンディング処理が終了すると、Ｚ座標をｖ（四角形がＺ軸方向に配置されているワールド座標の間隔をｖとする。例えば、ｖ＝２／Ｓｚ）だけ増やし、視点方向に次に近い四角形（−１＋ｉｕ，−１＋ｊｕ，−１＋ｖ）について同様の処理を繰り返してレンダリング画像を更新する。全ての四角形についてスキャンコンバージョンしてワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）（ｋは四角形の番号で、０≦ｋ≦Ｓｚ−１の整数）に対してアルファブレンディングの処理が終了するとレンダリング画像が完成する。
【０１３９】
アルファブレンディング処理は、式（２８）、（２９）、（３０）を用いることができる。
【０１４０】
【数５】
2019175013.tif 000007
【０１４１】
ここで、Ｒ′、Ｇ′、Ｂ′は、投影面において更新されるレンダリング画像のＲＧＢ値である。Ｒ、Ｇ、Ｂは、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する３Ｄテクスチャマップのボクセル（２ｉｕ，２ｊｕ，２ｋｖ）におけるＲＧＢ値であり、重ねる色の値に相当する。αも、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する３Ｄテクスチャマップのボクセル（２ｉｕ，２ｊｕ，２ｋｖ）におけるα値であり、重ねる割合を制御する。また、Ｒｂ、Ｇｂ、Ｂｂは、ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されているＲＧＢ値であり、当該四角形に対して視点と反対側に１つ前に位置する四角形に対して式（２８）、（２９）、（３０）に基づいて算出されたＲ′、Ｇ′、Ｂ′の値に一致し、視点から最も遠い四角形に対して算出する場合は背景色（例えば、Ｒｂ＝Ｇｂ＝Ｂｂ＝０）が与えられる。
【０１４２】
図２１は本実施の形態の画像処理部２０の構成の他の例を示すブロック図である。図２１に示すように、画像処理部２０は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＧＰＵ２０４、ビデオメモリ２０５、記録媒体読取部２０６などで構成することができる。記録媒体１（例えば、ＣＤ−ＲＯＭ等の光学可読ディスク記憶媒体）に記録されたコンピュータプログラム又はデータを記録媒体読取部２０６（例えば、光学ディスクドライブ）で読み取ってＲＡＭ２０３に格納することができる。ハードディスク（図示しない）に格納しコンピュータプログラム実行時にＲＡＭ２０３に格納してもよい。記録媒体１やＲＯＭ２０２、ＲＡＭ２０３、ハードディスク等のコンピュータ可読記憶媒体は、コンピュータで実行および／または処理するための、記録された命令（コンピュータプログラム）および／またはデータをもたらす、任意の非一時的有形記憶媒体を意味する。ＲＡＭ２０３に格納されたコンピュータプログラムをＣＰＵ２０１で実行させることにより、階調圧縮処理部２１、暫定ボクセル構造体生成部２２、ボクセル構造体生成部２３、変換処理部２４、レンダリング処理部２５、３Ｄテクスチャ画像生成部２６、積層四角形設定部２７、色補間部２８、ＲＯＩクリッピング処理部２９で行う処理を実行することができる。なお、ＣＰＵ２０１は、セントラル・プロセッシングユニットの略称とし、１又は複数のコア（プロセッサ）で構成されてＲＡＭ２０３と連携して動作するのに対し、ＧＰＵ２０４は、グラフィックス・プロセッシングユニットで、多くのグラフィックス処理に特化したプロセッサで構成されてビデオメモリ２０５と連携して動作する。また、コンピュータプログラムは、記録媒体読取部２０６で読み取る構成に代えて、インターネットなどのネットワークを介して他のコンピュータまたはネットワークデバイス等からダウンロードすることもできる。
【０１４３】
また、ＣＰＵ２０１は、ＧＰＵ２０４に対してレンダリング処理などの命令を出力する。ＧＰＵ２０４は、命令を解釈し、レンダリング処理などの所要の処理を実行する。ＧＰＵ２０４のプログラミングには、一般にグラフィクスＡＰＩ（例えば、ＯｐｅｎＧＬなど）を用いることができる。例えば、コンピュータプログラムは、ＣＰＵ２０１に、変換処理、レンダリング処理を実行するための指令をＧＰＵ２０４に出力する処理を実行させることができる。
【０１４４】
次に、モアレの発生パターンについて説明する。ボリュームレンダリング像においてモアレが発生する理由は、断層画像を積層合成する点にある。モアレのタイプとしては、曲線状のパターンがある。
【０１４５】
図２２は曲線状のモアレが発生する様子の一例を示す模式図である。発生原因は、断層画像（スライス画像）に元々自然に存在する知覚可能な規則性をもたないパターンである。このようなパターンをもつ複数の断層画像を座標変換（ｘｙｚ軸回りの回転）することにより、各断層画像に存在する前述の規則性をもたないパターンがずれて合成されることにより、これらのパターンが線状に連結し、結果として、ボリュームレンダリング像に曲線状の縞模様が形成され、知覚可能なモアレとして認識される。
【０１４６】
図２３及び図２４は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第１例を示す説明図である。図２３Ａは、比較例でありＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った後にカラーマップを適用した場合を示す。図２３Ｂ、図２４Ａ及び図２４Ｂは本実施の形態のカラーマップを適用した後の暫定ボクセル構造体に対してスムージング処理を実施した場合を示し、図２３Ｂはボクセルの不透明度αのみスムージング処理を行った場合を示し、図２４ＡはボクセルのＲＧＢ値及び不透明度αのスムージング処理を行った場合を示し、図２４ＢはボクセルのＲＧＢ値のみスムージング処理を行った場合を示す。なお、図２３及び図２４では、３Ｄテクスチャマッピング法に基づくＯｐｅｎＧＬ／ＧＰＵ版で陰影なしでカラーマップを適用し、前述の透明画素の色補間を実施している。
【０１４７】
図２３Ａに示すように、比較例では曲線状の縞模様が発生している。図２３Ｂでは縞模様が消えていることが分かる。また、図２４Ａでも縞模様が消えているが、図２３Ｂと対比すると画像が若干ぼけて見える。ただし、ユーザの好みに応じて、図２３Ｂ又は図２４Ａのいずれでも用いることができる。また、図２４Ｂでは縞模様が若干残っている。従って、ボクセルのＲＧＢ値のみのスムージング処理を行うよりも、不透明度αのみのスムージング、あるいはＲＧＢ値及び不透明度αのすべてのスムージング処理を行う方が好ましい。
【０１４８】
図２５及び図２６は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第２例を示す説明図である。図２５Ａは、比較例でありＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った後にカラーマップを適用した場合を示す。図２５Ｂ、図２６Ａ及び図２６Ｂは本実施の形態のカラーマップを適用した後の暫定ボクセル構造体に対してスムージング処理を実施した場合を示し、図２５Ｂはボクセルの不透明度αのみスムージング処理を行った場合を示し、図２６ＡはボクセルのＲＧＢ値及び不透明度αのスムージング処理を行った場合を示し、図２６ＢはボクセルのＲＧＢ値のみスムージング処理を行った場合を示す。なお、図２５及び図２６では、３Ｄテクスチャマッピング法に基づくＯｐｅｎＧＬ／ＧＰＵ版で陰影ありでカラーマップを適用し、前述の透明画素の色補間を実施している。
【０１４９】
図２５Ａに示すように、比較例では曲線状の縞模様が発生している。図２５Ｂでは縞模様が消えていることが分かる。また、図２６Ａでも縞模様が消えているが、図２５Ｂと対比すると画像が若干ぼけて見える。ただし、ユーザの好みに応じて、図２５Ｂ又は図２６Ａのいずれでも用いることができる。また、図２６Ｂでは縞模様が若干残っている。従って、ボクセルのＲＧＢ値のみのスムージング処理を行うよりも、不透明度αのみのスムージング、あるいはＲＧＢ値及び不透明度αのすべてのスムージング処理を行う方が好ましい。
【０１５０】
（第２実施形態）
前述の第１実施形態では、ボリュームレンダリング手法として３Ｄテクスチャマッピングの例を説明したが、本実施の形態のボクセルのスムージング処理は、レイキャスティングにも適用することができる。以下、レイキャスティングについて説明する。
【０１５１】
図２７は本実施の形態の画像処理装置としてのレイキャスティング装置１２０の構成の一例を示すブロック図である。本実施の形態のレイキャスティング装置１２０は、入力部１０、記憶部１１、出力部１２、画像処理部３０などを備える。画像処理部３０は、階調圧縮処理部３１、暫定ボクセル構造体生成部３２、ボクセル構造体生成部３３、座標変換処理部３４、レイキャスティング処理部３５、探索制御マスク生成部３６、及びＲＯＩクリッピング処理部３７などを備える。
【０１５２】
なお、入力部１０、記憶部１１、出力部１２、階調圧縮処理部３１、暫定ボクセル構造体生成部３２、ボクセル構造体生成部３３、及びＲＯＩクリッピング処理部３７は、第１実施形態の場合と同様であるので、説明は省略する。
【０１５３】
図２８は本実施の形態のレイキャスティング装置１２０によるボクセル構造体の座標変換の一例を示す模式図である。図２８Ａは、後述の座標変換前のボクセル構造体を示し、図２８Ｂは、座標変換後のボクセル構造体を示す。まず、座標変換前のボクセル構造体は、ボクセル構造体生成部３３によって生成されたボクセル構造体である。ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）は、暫定ボクセル構造体をＶｏ（ｘ，ｙ，ｚ，ｃ）とすると、Ｖ（ｘ，ｙ，ｚ，ｃ）＝｛Σｉ＝-1, 1Σj＝-1, 1Σk＝-1, 1Ｖｏ（ｘ＋ｉ，ｙ＋ｊ，ｚ＋ｋ，ｃ）｝／２７と表すことができる。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１、０≦ｃ≦３である。以下では、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を３次元ボクセル画像とも称する。
【０１５４】
座標変換処理部３４は、生成された３次元ボクセル画像に対して、入力部１０で取得した座標変換パラメータを用いて所定の座標変換を行って変換後ボクセル画像を生成する。すなわち、座標変換処理部３４は、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対して、所定の座標変換処理を施して、変換後のボクセル構造体を生成する。変換後のボクセル構造体をＶ′（ｘ，ｙ，ｚ′，ｃ）と表す。変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）は、Ｖ′（ｘ，ｙ，ｚ′，ｃ）＝Ｍａｔｒｉｘ（４×４）・Ｖ（ｘ，ｙ，ｚ，ｃ）で表すことができる。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ′≦Ｓｚ′−１、０≦ｃ≦３である。なお、ｚ′は、ｚ軸に対して解像度をｘｙ軸と一致させるような補正を施したもので、ｚ′＝ｚ・Ｒｘｙ／Ｒｚ、Ｓｚ′＝Ｓｚ・Ｒｘｙ／Ｒｚである。Ｍａｔｒｉｘ（４×４）は、座標変換を施すための変換行列であり、具体的な変換式は後述する。
【０１５５】
図２８Ａに示すように、レンダリング像が生成される投影面の向きと、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）のｚ軸方向が一致していないと、後述のレイキャスティング処理が複雑になる。そこで、図２８Ｂに示すように、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）のｘｙｚ軸を回転させて、例えば、座標変換後のｚ′軸が投影面に対して垂直方向にすることにより、レイキャスティング処理を簡単にすることができる。
【０１５６】
図２９は本実施の形態のレイキャスティング装置１２０による座標変換処理の一例を示す説明図である。図２９に示すように、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）は、変換前のボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）に対して、ＲＯＩによるクリッピングを行い、関心領域を設定し、その後座標変換を行うことにより求めることができる。ＲＯＩによるクリッピングでは、ｘ軸方向のＲＯＩとして、Ｘｓ−Ｘｅを設定し、ｙ軸方向のＲＯＩとして、Ｙｓ−Ｙｅを設定し、ｚ軸方向のＲＯＩとして、Ｚｓ−Ｚｅを設定する。ここで、０≦Ｘｓ＜Ｘｅ≦Ｓｘ−１、０≦Ｙｓ＜Ｙｅ≦Ｓｙ−１、０≦Ｚｓ＜Ｚｅ≦Ｓｚ−１である。変換前のボクセル構造体において、関心領域以外のボクセルＲＧＢ値および不透明度は全て０であるとみなして、座標変換処理を行う。
【０１５７】
座標変換は、例えば、スケーリング、ｚ方向変倍処理、オフセット、回転、透視変換の順番で行うことができるが、４×４の変換行列で定義可能な範囲であれば、各処理の順番は、図２９の例に限定されない。
【０１５８】
スケーリングは、ｘｙｚ軸方向で同一の拡大縮小倍率Ｓｃａｌｅを用いる。
【０１５９】
ｚ方向変倍処理は、ｚ方向の画素の物理的な間隔をｘｙ方向の画素の物理的な間隔に合わせるための処理である。ｚ方向変倍処理では、ｚ方向変倍率Ｓｃｚ（＝Ｒｘｙ／Ｒｚ）を用いる。
【０１６０】
オフセットは、ｘ軸方向、ｙ軸方向、ｚ軸方向に平行移動させるための処理である。オフセットでは、ｘ軸方向のオフセットＸｏｆｆ、ｙ軸方向のオフセットＹｏｆｆ、ｚ軸方向のオフセットＺｏｆｆを用いる。
【０１６１】
回転は、ｘ軸回り、ｙ軸回り、ｚ軸回りに回転させるための処理である。回転では、ｘ軸中心の回転角Ｒｘ、ｙ軸中心の回転角Ｒｙ、ｚ軸中心の回転角Ｒｚ（角度の単位は全てラジアン）を用いる。
【０１６２】
透視変換は、いわゆる内視鏡モードで画像を表示させるための処理である。透視変換では、注視点（原点、なお、オフセットがある場合、オフセット後の原点）からｚ軸方向の視点までの距離Ｄｉｓｔを用いる。なお、平行投影の場合には、Ｄｉｓｔ＝０と設定する。
【０１６３】
上述のクリッピング、座標変換により、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の値が決定される。なお、スケーリング、ｚ方向変倍処理、オフセット、回転、透視変換の各処理は、変換行列Ｍａｔｒｉｘ（４×４）に纏めることができる。
【０１６４】
探索制御マスク生成部３６は、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のｘｙ座標毎に、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルの不透明度αが０（透明）でない視線上の最小値及び最大値を特定する。
【０１６５】
図３０は本実施の形態のレイキャスティング装置１２０による探索制御マスクデータ生成処理の一例を示す説明図である。図３０では、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）をｘｚ′平面から見た場合を示す。投影面はｘｙ平面となる。探索制御マスク生成部３６は、探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成する。ここで、ｓ＝０（有効なボクセルの範囲の開始点）又は１（有効なボクセルの範囲の終了点）である。
【０１６６】
図３０に示すように、２次元座標（ｘ，ｙ）毎に、ｚ軸方向に探索対象とする有効なボクセルの範囲を設定する。有効なボクセルとは、不透明度αが０でない値を有するボクセルである。不透明度αが０とは、透明であるということであり、レンダリング像において当該ボクセルは計算対象から外され表示されない。
【０１６７】
０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１の座標（ｘ，ｙ）毎に、ｚ′＝０からｚ′＝Ｓｚ′−１に向かってｚ′を一つずつ増やして、最初にＶ′（ｘ，ｙ，ｚ１，３）＞０を満たすｚ１を探索する。また、同じ座標（ｘ，ｙ）について、ｚ′＝Ｓｚ′−１からｚ′＝０に向かってｚ′を一つずつ減らして、最初にＶ′（ｘ，ｙ，ｚ２，３）＞０を満たすｚ２を探索する。すなわち、ｚ′が、少なくともｚ１とｚ２では、Ｖ′（ｘ，ｙ，ｚ′，３）＞０を満たし、ボクセルの不透明度αは０でないが、ｚ′がｚ１とｚ２の間では、Ｖ′（ｘ，ｙ，ｚ′，３）＝０となることもある。即ち、ｚ１は有効なボクセルが存在するｚ′の最小値であり、ｚ２は最大値となる。探索制御マスクデータＭ（ｘ，ｙ，ｓ）は、Ｍ（ｘ，ｙ，０）＝ｚ１となり、Ｍ（ｘ，ｙ，１）＝ｚ２となる。
【０１６８】
なお、ｚ１＝ｚ２、あるいは、ｚ１、ｚ２が見つからない場合、Ｍ（ｘ，ｙ，０）＝Ｍ（ｘ，ｙ，１）＝−１とする。
【０１６９】
探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成することにより、有効でないボクセルを除外して、後続のレイキャスティング処理を行うことができるので、レイキャスティング処理の負荷を軽減することができ、ボリュームレンダリング処理を高速化することができる。
【０１７０】
レイキャスティング処理部３５は、ボクセル構造体（変換後ボクセル構造体）に対してボリュームレンダリング処理を行ってレンダリング画像を生成する。
【０１７１】
具体的には、レイキャスティング処理部３５は、所定の視点から所定の透過強度を有する仮想光線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に向かってｚ′方向に照射したときに、ｚ′軸上のボクセル毎に当該ボクセルの不透明度αに基づく仮想光線の吸収・減衰度を考慮しながらボクセル通過後の強度を算出し、透過強度が所定の下限以下になる最深点のボクセルを決定する。そして、最深点のボクセルより視点方向に仮想光線が通過した各ボクセルを逆に辿りながら、各ボクセルのＲＧＢ値及び不透明度αを基にＲＧＢ値を累積加算した値を、当該視線が投影面と交差する画素の画素値としてレンダリング画像を生成する。仮想光線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に向かってｚ′方向に照射し、最深点のボクセルを決定する過程で、各ボクセルのＲＧＢ値及び不透明度α並びに仮想光線の透過強度の積を累積加算することにより、投影面と交差する画素の画素値を同時に算出する方法もとれる。本願では後者の方法に基づいて以下説明する。
【０１７２】
図３１は本実施の形態のレイキャスティング装置１２０による平行投影の場合のレイキャスティング処理の一例を示す説明図である。図３１では、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）を３次元的にボクセルデータが詰まった立方体として図示している。変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のｘｙ軸に平行な投影面（レンダリング像）が、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）から所要距離だけ離隔して配置されているとする。図３１のように、視点が無限遠点に位置する場合が一般的に使用される平行投影で（本来はＤｉｓｔ＝∞であるが、本願ではＤｉｓｔ＝０と設定）、視点からボクセル構造体内部に向かう全ての視線がｚ′軸と平行になる。レイキャスティング処理（ボリュームレンダリング）では、不透明度αに基づいて半透明表示（αブレンディング）を行うことによって、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部を可視化する。すなわち、可視化は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルが有するボクセル値（ＲＧＢ値及び不透明度α）によって実現される。
【０１７３】
図３２は本実施の形態のレイキャスティング装置１２０による透視投影の場合のレイキャスティング処理の一例を示す説明図である。図３２のように視点が投影面に比較的接近している場合（本願ではＤｉｓｔ＞０）が透視投影で、内視鏡表示の際は、投影面や視点がボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部に没入することもある。図３１の場合と同様に、レイキャスティング処理（ボリュームレンダリング）では、不透明度αに基づいて半透明表示（αブレンディング）を行うことによって、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部を可視化する。すなわち、可視化は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルが有するボクセル値（ＲＧＢ値及び不透明度α）によって実現される。
【０１７４】
図３１及び図３２に示すように、視点から視線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部に伸ばし、視線上にあるサンプリング点（ボクセル）において当該ボクセルのＲＧＢ値と不透明度αに基づいてＲＧＢ輝度値を視線に沿って累積計算し、累積計算した値を、当該視線が投影面と交差する位置のピクセル（画素の画素値）としてレンダリング像を生成する。この際に、前述の探索制御マスクＭ（ｘ，ｙ，０）とＭ（ｘ，ｙ，１）との間のｚ′について累積計算を行う。なお、レイキャスティング処理の詳細は後述する。
【０１７５】
次に、本実施の形態のレイキャスティング装置１２０の動作について説明する。
【０１７６】
図３３及び図３４は本実施の形態のレイキャスティング装置１２０によるレイキャスティング処理の手順の一例を示すフローチャートである。以下では、便宜上、処理の主体を画像処理部３０として説明する。画像処理部３０は、ＤＩＣＯＭ画像の画像データを取得し（Ｓ４１）、カラーマップデータを取得する（Ｓ４２）。なお、カラーマップデータは、図３、図４で例示したものである。
【０１７７】
画像処理部３０は、座標変換パラメータを取得し（Ｓ４３）、ｘｙｚ方向のＲＯＩ値を取得する（Ｓ４４）。なお、座標変換パラメータ、ＲＯＩ値は、図２９で例示したものである。画像処理部３０は、ＤＩＣＯＭ画像の階調圧縮処理を行い（Ｓ４５）、階調圧縮断層画像Ｄ８に対してカラーマップ定義を行う（Ｓ４６）。カラーマップ定義は、階調圧縮断層画像Ｄ８の画素値に対して、ＲＧＢ値及び不透明度αを定義する。なお、ステップＳ４５の処理は必須ではなく、ステップＳ４５の処理を実施しない場合には、ＤＩＣＯＭ画像に対してカラーマップ定義を行えばよい。
【０１７８】
画像処理部３０は、カラーマップを適用して暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）を生成する（Ｓ４７）。画像処理部３０は、暫定ボクセル構造体Ｖｏ（ｘ，ｙ，ｚ，ｃ）に対して、ボクセルのスムージング処理を行ってボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成する（Ｓ４８）。ボクセルのスムージング処理は、不透明度のみのスムージング処理でもよく、ＲＧＢ値及び不透明度のスムージング処理でもよい。
【０１７９】
画像処理部３０は、陰影計算を行うか否かを判定し（Ｓ４９）、陰影計算を行う場合（Ｓ４９でＹＥＳ）、陰影計算を行い（Ｓ５０）、後述のステップＳ５１の処理を行う。陰影計算を行わない場合（Ｓ４９でＮＯ）、画像処理部３０は、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対して座標変換処理を行い（Ｓ５１）、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）を生成する（Ｓ５２）。
【０１８０】
画像処理部３０は、探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成し（Ｓ５３）、レイキャスティング処理を行い（Ｓ５４）、レンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）を生成し（Ｓ５５）、処理を終了する。ここで、０≦Ｉｍａｇｅ（ｘ，ｙ，ｃ）≦２５５、ｃ＝０（Ｒ）、ｃ＝１（Ｇ）、ｃ＝２（Ｂ）である。
【０１８１】
本実施の形態の画像処理部３０は、第１実施形態の画像処理部２０と同様に、図２１に例示する構成とすることができる。ただし、ＧＰＵ２０４及びビデオメモリ２０５は具備しなくてもよい。
【０１８２】
図３５及び図３６は本実施の形態のレイキャスティング装置１２０によるモアレ対策結果の第１例を示す説明図である。図３５Ａは、比較例でありＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った後にカラーマップを適用した場合を示す。図３５Ｂ、図３６Ａ及び図３６Ｂは本実施の形態のカラーマップを適用した後の暫定ボクセル構造体に対してスムージング処理を実施した場合を示し、図３５Ｂはボクセルの不透明度αのみスムージング処理を行った場合を示し、図３６ＡはボクセルのＲＧＢ値及び不透明度αのスムージング処理を行った場合を示し、図３６ＢはボクセルのＲＧＢ値のみスムージング処理を行った場合を示す。なお、図３５及び図３６では、レイキャスティング法に基づくＣＰＵ版で陰影なしでカラーマップを適用している。
【０１８３】
図３５Ａに示すように、比較例では斑点状の色ずれが発生している。図３５Ｂでは斑点状の色ずれが消えていることが分かる。また、図３６Ａでも斑点状の色ずれが消えているが、図３５Ｂと対比すると画像が若干ぼけて見える。ただし、ユーザの好みに応じて、図３５Ｂ又は図３６Ａのいずれでも用いることができる。また、図３６Ｂでは斑点状の色ずれが若干残っている。従って、ボクセルのＲＧＢ値のみのスムージング処理を行うよりも、不透明度αのみのスムージング、あるいはＲＧＢ値及び不透明度αのすべてのスムージング処理を行う方が好ましい。
【０１８４】
図３７及び図３８は本実施の形態のレイキャスティング装置１２０によるモアレ対策結果の第２例を示す説明図である。図３７Ａは、比較例でありＤＩＣＯＭ画像のボクセル値に対してスムージング処理を行った後にカラーマップを適用した場合を示す。図３７Ｂ、図３８Ａ及び図３８Ｂは本実施の形態のカラーマップを適用した後の暫定ボクセル構造体に対してスムージング処理を実施した場合を示し、図３７Ｂはボクセルの不透明度αのみスムージング処理を行った場合を示し、図３８ＡはボクセルのＲＧＢ値及び不透明度αのスムージング処理を行った場合を示し、図３８ＢはボクセルのＲＧＢ値のみスムージング処理を行った場合を示す。なお、図３７及び図３８では、レイキャスティング法に基づくＣＰＵ版で陰影ありでカラーマップを適用している。
【０１８５】
図３７Ａに示すように、比較例では斑点状の色ずれが発生している。図３７Ｂでは斑点状の色ずれが消えていることが分かる。また、図３８Ａでも斑点状の色ずれが消えているが、図３７Ｂと対比すると画像が若干ぼけて見える。ただし、ユーザの好みに応じて、図３７Ｂ又は図３８Ａのいずれでも用いることができる。また、図３８Ｂでは斑点状の色ずれが若干残っている。従って、ボクセルのＲＧＢ値のみのスムージング処理を行うよりも、不透明度αのみのスムージング、あるいはＲＧＢ値及び不透明度αのすべてのスムージング処理を行う方が好ましい。
【０１８６】
上述のように、第１及び第２実施形態によれば、従来と同等なリアルタイム性及び処理速度を維持しながら、カラーマップ適用時のモアレの発生を抑制することができる。
【０１８７】
本実施の形態のコンピュータプログラムは、コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理とを実行させる。
【０１８８】
本実施の形態のコンピュータプログラムは、コンピュータに、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記ボクセルのＲＧＢ値を補正してボクセル構造体を生成する処理と、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理とを実行させる。
【０１８９】
本実施の形態のコンピュータプログラムは、コンピュータに、前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の近傍に位置する２６近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理を実行させる。
【０１９０】
本実施の形態のコンピュータプログラムは、コンピュータに、前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、前記第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、前記第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理とを実行させる。
【０１９１】
本実施の形態のコンピュータプログラムは、コンピュータに、前記暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって前記各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する処理と、第２バッファに記憶されている前記暫定ボクセル構造体の前記各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって前記直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により前記暫定ボクセル構造体の前記直前ボクセルの不透明度又はＲＧＢ値を更新する処理と、前記第１バッファに記憶した前記補正値を前記第２バッファに転送する処理とを実行させる。
【０１９２】
本実施の形態のコンピュータプログラムは、コンピュータに、複数の離散的な数値とＲＧＢ値及び不透明度との関係を定義した定義情報に基づいて、所定範囲の連続的な数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップを生成する処理と、生成したカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理とを実行させる。
【０１９３】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体の不透明度が所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と、ＲＧＢ値が補正されたボクセル構造体のボクセルで構成される３Ｄテクスチャ画像を生成する処理と、前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行させる。
【０１９４】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像を間にしてｚ軸方向の両端に配置されたダミーｘｙ平面画像の各画素に対応し、不透明度が前記所定値とされたダミーボクセルを付加したボクセル構造体を生成する処理と、生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理とを実行させる。
【０１９５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像の数及び前記ダミーｘｙ平面画像の数の合計値と同数の前記四角形をＺ軸方向に並べた積層四角形を設定する処理を実行させる。
【０１９６】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像の外縁部の各画素に対応し、不透明度が前記所定値とされたボクセルを含むボクセル構造体を生成する処理と、生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理とを実行させる。
【０１９７】
本実施の形態のコンピュータプログラムは、コンピュータに、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、前記ボクセル構造体のボクセルのうちｘｙｚ座標が前記対象領域外のボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理とを実行させる。
【０１９８】
本実施の形態のコンピュータプログラムは、コンピュータに、前記視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、算出したｘｙｚ座標に対応する前記変換後３Ｄテクスチャ画像のｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする処理とを実行させる。
【０１９９】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出する処理と、算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、算出した陰影値に基づいて前記ボクセル構造体のボクセルのＲＧＢ値を補正する処理とを実行させる。
【０２００】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体のボクセルの不透明度と、該ボクセルの近傍に位置する近傍ボクセルそれぞれの不透明度との差分を算出する処理と、前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理とを実行させる。
【０２０１】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出することができないボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理とを実行させる。
【０２０２】
本実施の形態のコンピュータプログラムは、コンピュータに、ｘ軸中心、ｙ軸中心及びｚ軸中心の回転角、視野角度、視点位置、クリッピング位置、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率を含む前記所定の変換のパラメータを取得する処理と、前記３Ｄテクスチャ画像に対して、取得したパタメータを用いた所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理とを実行させる。
【０２０３】
本実施の形態のコンピュータプログラムは、コンピュータに、前記変換後３Ｄテクスチャ画像を生成する処理及び前記レンダリング画像を生成する処理を実行するための指令をＧＰＵに出力する処理を実行させる。
【０２０４】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体に対して所定の座標変換を行ってボクセル画像を生成する処理と、所定の視点から仮想光線を前記ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルのＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行させる。
【０２０５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理とを実行させる。
【０２０６】
本実施の形態の画像処理装置は、ボリュームレンダリング処理を行う画像処理装置であって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する暫定ボクセル構造体生成部と、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成するボクセル構造体生成部と、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成するレンダリング画像生成部とを備える。
【０２０７】
本実施の形態の画像処理方法は、ボリュームレンダリング処理を行う画像処理方法であって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成し、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成し、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する。
【０２０８】
本実施の形態のボクセルデータは、ボクセル構造体のボクセルデータであって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成されるボクセル構造体のボクセルデータを含む構造を有し、前記ボクセルデータは、前記ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度が補正されたデータを含み、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理を実行するのに用いられる。
【０２０９】
本実施の形態のボクセルデータにおいて、前記ボクセルデータは、前記ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記ボクセルのＲＧＢ値が補正されたデータを含む。
【０２１０】
本実施の形態のボクセルデータは、ボクセル構造体のボクセルデータであって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体のボクセルデータを含む構造を有し、前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、前記第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、前記第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理とを実行するのに用いられる。
【０２１１】
本実施の形態のボクセルデータは、前記暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって前記各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する処理と、第２バッファに記憶されている前記暫定ボクセル構造体の前記各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって前記直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により前記暫定ボクセル構造体の前記直前ボクセルの不透明度又はＲＧＢ値を更新する処理と、前記第１バッファに記憶した前記補正値を前記第２バッファに転送する処理とを実行するのに用いられる。
【符号の説明】
【０２１２】
１０  入力部
１１  記憶部
１２  出力部
２０、３０  画像処理部
２１、３１  階調圧縮処理部
２２、３２  暫定ボクセル構造体生成部
２３、３３  ボクセル構造体生成部
２４  変換処理部
２５  レンダリング処理部
２６  ３Ｄテクスチャ画像生成部
２７  積層四角形設定部
２８  色補間部
２９、３７  ＲＯＩクリッピング処理部
３４  座標変換処理部
３５  レイキャスティング処理部
３６  探索制御マスク生成部
１００  ３Ｄテクスチャマッピング装置
１２０  レイキャスティング装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ＧＰＵ
２０５  ビデオメモリ
２０６  記録媒体読取部
【図１】
2019175013.tif 000008
【図２】
2019175013.tif 000009
【図３】
2019175013.tif 000010
【図４】
2019175013.tif 000011
【図５】
2019175013.tif 000012
【図６】
2019175013.tif 000013
【図７】
2019175013.tif 000014
【図８】
2019175013.tif 000015
【図９】
2019175013.tif 000016
【図１０】
2019175013.tif 000017
【図１１】
2019175013.tif 000018
【図１２】
2019175013.tif 000019
【図１３】
2019175013.tif 000020
【図１４】
2019175013.tif 000021
【図１５】
2019175013.tif 000022
【図１６】
2019175013.tif 000023
【図１７】
2019175013.tif 000024
【図１８】
2019175013.tif 000025
【図１９】
2019175013.tif 000026
【図２０】
2019175013.tif 000027
【図２１】
2019175013.tif 000028
【図２２】
2019175013.tif 000029
【図２３】
2019175013.tif 000030
【図２４】
2019175013.tif 000031
【図２５】
2019175013.tif 000032
【図２６】
2019175013.tif 000033
【図２７】
2019175013.tif 000034
【図２８】
2019175013.tif 000035
【図２９】
2019175013.tif 000036
【図３０】
2019175013.tif 000037
【図３１】
2019175013.tif 000038
【図３２】
2019175013.tif 000039
【図３３】
2019175013.tif 000040
【図３４】
2019175013.tif 000041
【図３５】
2019175013.tif 000042
【図３６】
2019175013.tif 000043
【図３７】
2019175013.tif 000044
【図３８】
2019175013.tif 000045
【手続補正書】
【提出日】平成30年8月20日(2018.8.20)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本開示は、コンピュータプログラム、画像処理装置及び画像処理方法に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本開示は、斯かる事情に鑑みてなされたものであり、モアレを抑制することができるコンピュータプログラム、画像処理装置及び画像処理方法を明らかにする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、コンピュータプログラムは、コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、所定範囲の数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理とを実行させる。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
所定範囲の数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記ボクセルのＲＧＢ値を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と
を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の近傍に位置する２６近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルのｘｙｚ方向の３つの軸方向のうちの第１軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第１軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第２軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と、
前記第２軸方向の２近傍ボクセルによってボクセルの不透明度又はＲＧＢ値が補正された暫定ボクセル構造体のボクセルに対して、前記３つの軸方向のうちの第３軸方向の近傍に位置する２近傍ボクセルの不透明度又はＲＧＢ値に基づいて、前記ボクセルの不透明度又はＲＧＢ値を補正する処理と
を実行させるコンピュータプログラム。
【請求項５】
コンピュータに、
前記暫定ボクセル構造体の各ボクセルの２近傍ボクセルによって前記各ボクセルの不透明度又はＲＧＢ値を補正した補正値を第１バッファに記憶する処理と、
第２バッファに記憶されている前記暫定ボクセル構造体の前記各ボクセルの直前に処理された直前ボクセルの２近傍ボクセルによって前記直前ボクセルの不透明度又はＲＧＢ値を補正した直前補正値により前記暫定ボクセル構造体の前記直前ボクセルの不透明度又はＲＧＢ値を更新する処理と、
前記第１バッファに記憶した前記補正値を前記第２バッファに転送する処理と
を実行させる請求項４に記載のコンピュータプログラム。
【請求項６】
コンピュータに、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、
特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、
前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、
圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項７】
コンピュータに、
前記ボクセル構造体に対して所定の座標変換を行ってボクセル画像を生成する処理と、
所定の視点から仮想光線を前記ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルのＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理と
を実行させる請求項１から請求項６のいずれか一項に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成する処理と、
前記ボクセル構造体の不透明度が所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と、
ＲＧＢ値が補正されたボクセル構造体のボクセルで構成される３Ｄテクスチャ画像を生成する処理と、
前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、
３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、
所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項９】
コンピュータに、
前記複数のｘｙ平面画像を間にしてｚ軸方向の両端に配置されたダミーｘｙ平面画像の各画素に対応し、不透明度が前記所定値とされたダミーボクセルを付加したボクセル構造体を生成する処理と、
生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
前記複数のｘｙ平面画像の数及び前記ダミーｘｙ平面画像の数の合計値と同数の前記四角形をＺ軸方向に並べた積層四角形を設定する処理を実行させる請求項８に記載のコンピュータプログラム。
【請求項１１】
コンピュータに、
前記複数のｘｙ平面画像の外縁部の各画素に対応し、不透明度が前記所定値とされたボクセルを含むボクセル構造体を生成する処理と、
生成したボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１２】
コンピュータに、
ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、
前記ボクセル構造体のボクセルのうちｘｙｚ座標が前記対象領域外のボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、
前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１３】
コンピュータに、
前記視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、
算出したｘｙｚ座標に対応する前記変換後３Ｄテクスチャ画像のｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１４】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出する処理と、
算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、
算出した陰影値に基づいて前記ボクセル構造体のボクセルのＲＧＢ値を補正する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１５】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度と、該ボクセルの近傍に位置する近傍ボクセルそれぞれの不透明度との差分を算出する処理と、
前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１６】
コンピュータに、
前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出することができないボクセルに対して、該ボクセルの不透明度に前記所定値を設定する処理と、
前記所定値が設定されたボクセル構造体のボクセルのうち不透明度が前記所定値である対象ボクセルに対して、該対象ボクセルの近傍に位置する近傍ボクセルのＲＧＢ値に基づいて、前記対象ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１７】
コンピュータに、
ｘ軸中心、ｙ軸中心及びｚ軸中心の回転角、視野角度、視点位置、クリッピング位置、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率を含む前記所定の変換のパラメータを取得する処理と、
前記３Ｄテクスチャ画像に対して、取得したパタメータを用いた所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と
を実行させる請求項８に記載のコンピュータプログラム。
【請求項１８】
コンピュータに、
前記変換後３Ｄテクスチャ画像を生成する処理及び前記レンダリング画像を生成する処理を実行するための指令をＧＰＵに出力する処理を実行させる請求項８に記載のコンピュータプログラム。
【請求項１９】
コンピュータに、
複数の離散的な数値とＲＧＢ値及び不透明度との関係を定義した定義情報に基づいて、所定範囲の連続的な数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップを生成する処理と、
生成したカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する処理と
を実行させる請求項４から請求項１８のいずれか一項に記載のコンピュータプログラム。
【請求項２０】
ボリュームレンダリング処理を行う画像処理装置であって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、
所定範囲の数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成する暫定ボクセル構造体生成部と、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成するボクセル構造体生成部と、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成するレンダリング画像生成部と
を備える画像処理装置。
【請求項２１】
ボリュームレンダリング処理を行う画像処理方法であって、
ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、
所定範囲の数値とＲＧＢ値及び不透明度との関係を対応付けたカラーマップに基づいて、前記複数のｘｙ平面画像それぞれの各画素の値に対応するＲＧＢ値及び不透明度を有するボクセルで構成される暫定ボクセル構造体を生成し、
前記暫定ボクセル構造体のボクセルに対して、該ボクセルの近傍に位置する近傍ボクセルの不透明度に基づいて、前記ボクセルの不透明度を補正してボクセル構造体を生成し、
前記ボクセル構造体に対してボリュームレンダリング処理を行ってレンダリング画像を生成する画像処理方法。