(57)【要約】      （修正有）【課題】待ち時間を抑制して高速にレンダリング画像を生成するコンピュータプログラムを提供する。【解決手段】コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理と、３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の四角形のＸＹ座標に対応する変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を当該ボクセルの不透明度に基づいて視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行させる。【選択図】図９
2019114034.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：関心領域）の値、並びに透視変換パラメータなどを取得する。座標変換のパラメータ、ＲＯＩ値、透視変換パラメータの詳細は後述する。
【００１８】
記憶部１１は、入力部１０で取得したデータ、画像処理部２０での処理結果などを記憶することができる。なお、カラーマップデータ、座標変換パラメータ、ＲＯＩ値、透視変換パラメータなどを予め記憶部１１に記憶する構成でもよい。
【００１９】
出力部１２は、画像処理部２０での処理結果、例えば、レンダリング処理部２５で生成したレンダリング画像の画像データを表示装置（不図示）に出力する。
【００２０】
階調圧縮処理部２１は、ＤＩＣＯＭ形式の断層画像を、例えば、８ビットの階調圧縮断層画像にする。
【００２１】
図５は本実施の形態の３Ｄテクスチャマッピング装置１００による階調圧縮処理の一例を示す説明図である。階調圧縮処理部２１は、複数の断層画像のうちの所定の断層画像の画素の最小値及び最大値を特定する。例えば、１からＳｚまでの断層画像のうち、Ｓｚ／２番目の中間の断層画像における全ての画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定することができる。なお、所定のスライス画像としては、本来は全てのスライス画像における全ての画素の最小値及び最大値を特定する方法が正確である。しかし、その場合は、一旦全ての大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持する必要が生じ、階調圧縮効果が半減する。また、この最小値Ｄｍｉｎ及び最大値Ｄｍａｘは階調圧縮のパラメータに使用するだけで、８ビットの階調圧縮断層画像の精度には直接影響しない。そこで、単一のスライス画像の画素の最小値及び最大値を用いて、おおまかに特定する方法をとる。ただし、先頭のスライス画像では被写体が適切に映っていない場合が多いため、中間のスライス画像だけで最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定する方法をとる。これにより、大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持することなく８ビットの階調圧縮断層画像だけをメモリに直接構築することができる。
【００２２】
８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）は、Ｄ８（ｘ，ｙ，ｚ）＝（Ｄｏ（ｘ，ｙ，ｚ）−Ｌｍｉｎ）・２５５／（Ｌｍａｘ−Ｌｍｉｎ）という式により生成することができる。ただし、Ｄ８（ｘ，ｙ，ｚ）＞２５５の場合は、Ｄ８（ｘ，ｙ，ｚ）＝２５５とし、Ｄ８（ｘ，ｙ，ｚ）＜０の場合は、Ｄ８（ｘ，ｙ，ｚ）＝０とする。ここで、Ｌｍｉｎ＝（Ｄｍａｘ−Ｄｍｉｎ）・γ＋Ｄｍｉｎ、Ｌｍａｘ＝（Ｄｍａｘ−Ｄｍｉｎ）・（１−γ）＋Ｄｍｉｎである。γは階調圧縮画像のコントラスト調整幅で、０に近いほどコントラストは増大するが輝度は小さくなる。通常は、γ＝０．１に設定する。レンダリング像の輝度コントラストは、例えば、カラーマップデータなどの種々の設定で調整することができるので、γは固定値でよい。また、０≦Ｄ８（ｘ，ｙ，ｚ）≦２５５、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１である。また、ｘｙ方向の解像度はＲｘｙ、ｚ方向の解像度はＲｚである。
【００２３】
なお、８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）に対しては、図４に示すカラーマップＣｍａｐ８（ｖ，ｃ）を適用することができる。
【００２４】
上述のように、階調圧縮処理部２１は、複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定し、特定した最大値よりも小さい上限値Ｌｍａｘ及び特定した最小値よりも大きい下限値Ｌｍｉｎを算出する。階調圧縮処理部２１は、複数のｘｙ平面画像の各画素の画素値の上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲内を圧縮する。すなわち、階調圧縮処理部２１は、上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲を、例えば、２５６段階に圧縮し、上限値Ｌｍａｘ以上は２５５にし、下限値Ｌｍｉｎ以下は０にする。
【００２５】
平滑化処理部２２は、複数のｘｙ平面画像それぞれの任意の注目画素及び当該注目画素の近傍画素の画素値に基づいて、複数のｘｙ平面画像を平滑化する。ｘｙ平面画像は、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）でもよく、階調圧縮処理部２１により階調圧縮された階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）でもよい。
【００２６】
図６は本実施の形態の３Ｄテクスチャマッピング装置１００による平滑化処理の一例を示す説明図である。図６の例では、階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）を図示しているが、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）でもよい。図６は、一の断層画像の注目画素Ｄ８（ｘ，ｙ，ｚ）と当該注目画素の近傍に存在する８個の近傍画素Ｄ８（ｘ−１，ｙ−１，ｚ）、Ｄ８（ｘ，ｙ−１，ｚ）、Ｄ８（ｘ＋１，ｙ−１，ｚ）、Ｄ８（ｘ−１，ｙ，ｚ）、Ｄ８（ｘ＋１，ｙ，ｚ）、Ｄ８（ｘ−１，ｙ＋１，ｚ）、Ｄ８（ｘ，ｙ＋１，ｚ）、Ｄ８（ｘ＋１，ｙ＋１，ｚ）を示す。ｘｙｚ座標の平滑化された画像をＤ（ｘ，ｙ，ｚ）とすると、Ｄ（ｘ，ｙ，ｚ）は、注目画素を含む近傍画素の画素値の平均値となる。
【００２７】
すなわち、より具体的には、平滑化処理部２２は、複数のｘｙ平面画像それぞれの一のｘｙ平面画像上の任意の注目画素及び当該注目画素の一のｘｙ平面画像での近傍画素の画素値に基づいて、一のｘｙ平面画像を平滑化する。
【００２８】
階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）、あるいはＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）のｘｙ面での８近傍平均値で異方性（ｚ方向を除くという意味）平滑処理を行うことにより、複数の断層画像に元々自然に存在する知覚可能な規則性をもたないパターンが回転によりずれ、線状に連結することにより発生するモアレを抑制することができる。
【００２９】
ボクセル構造体生成部２３は、各ボクセルに対してＲＧＢ値及び不透明度αが定められ、平滑化した複数のｘｙ平面画像それぞれの各画素に対応するボクセルで構成されるボクセル構造体を生成する。より具体的には、ボクセル構造体生成部２３は、平滑化した複数のｘｙ平面画像それぞれの各画素の画素値に対応するカラーマップデータのＲＧＢ値及び不透明度を対応付けてＲＧＢ値及び不透明度αを設定し、ボクセル構造体を生成する。すなわち、ボクセル構造体は、ボクセルが３次元的に詰まった構成（ボリュームとも称する）をなし、各ボクセルは、ボクセル値（ＲＧＢ値及び不透明度α）を有する。
【００３０】
ボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）で表す。ここで、０≦Ｖ（ｘ，ｙ，ｚ，ｃ）≦２５５、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）、３（α）、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１である。
【００３１】
３Ｄテクスチャ画像生成部２６は、複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成する。３Ｄテクスチャ画像のデータは、３Ｄテクスチャマップとも称し、データの実体はボクセル構造体と同一である。３Ｄテクスチャ画像生成部２６は、ボクセル構造体のボリュームをグラフィックＡＰＩ（例えば、ＯｐｅｎＧＬ）の３Ｄテクスチャマップとして登録する。より具体的には、ボクセル構造体のボリュームは、ＣＰＵのメインメモリからＧＰＵのビデオメモリにグラフィックＡＰＩを介して転送され、グラフィックＡＰＩのテクスチャ形式に変換されてビデオメモリに保持される。本願では以降、説明の便宜上グラフィックＡＰＩとしてＯｐｅｎＧＬを対象に処理の内容を説明するが、これに限定されない。
【００３２】
３ＤテクスチャマップをＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）で表す。ここで、０≦Ｔｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）≦２５５、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）、３（α）、０≦ｘｔ≦Ｓｘ−１、０≦ｙｔ≦Ｓｙ−１、０≦ｚｔ≦Ｓｚ−１である。
【００３３】
なお、ボクセル構造体の座標系をＯｐｅｎＧＬのワールド座標系で定義し、ＸＹＺ座標（−１≦ｘ≦１、−１≦ｙ≦１、−１≦ｚ≦１）で表し、３Ｄテクスチャマップの座標系をテクスチャ座標系で定義し、ＯｐｅｎＧＬではテクスチャ座標系をＳＴＲ座標（０≦ｓ≦１、０≦ｔ≦１、０≦ｒ≦１）で表す習慣がある。座標ｓは座標ｘに対応し、座標ｔは座標ｙに対応し、座標ｒは座標ｚに対応する。本実施の形態では、便宜上、ワールド座標系のＸＹＺをＸＹＺ座標と表し、テクスクチャ座標系のＳＴＲ座標をｘｙｚ座標と表す。
【００３４】
積層四角形設定部２７は、ワールド座標系において、ＸＹ座標面で定義される複数の四角形をＺ軸方向に所定の間隔だけずらして並べた積層四角形を設定する。積層四角形は各々が３次元空間上の４つの頂点で定義された四角形である。
【００３５】
変換処理部２４は、変換後３Ｄテクスチャ画像生成部としての機能を有し、テクスチャ座標系に定義された複数のスライス画像で構成される３Ｄテクスチャ画像に対してテクスチャ座標系において所定の変換を行って変換後３Ｄテクスチャ画像を生成する。所定の変換は、透視変換処理、座標変換処理などを含む。
【００３６】
図７は本実施の形態の３Ｄテクスチャマッピング装置１００による３Ｄテクスチャマッピングの概念を示す模式図である。図７Ａは積層四角形に対して座標変換前の３Ｄテクスチャマップをマッピングした状態を示し、図７Ｂは積層四角形に対して座標変換後の３Ｄテクスチャマップをマッピングした状態を示す。ワールド座標（Ｘ，Ｙ，Ｚ）において、ＸＹ座標面上の四角形がＺ軸方向に沿って複数配置されている。視点は、図７において、投影面（レンダリング像が生成される面）より上側（すなわち、Ｚ軸の正方向）に存在する。ワールド座標系に定義した積層四角形は固定であるため、個々の四角形は、視線に対して常に垂直である。図７中、積層四角形の内部に図示した楕円形状は、マッピングされた３Ｄテクスチャマップ（ボクセルデータ）を示す。３Ｄテクスチャマップは、テクスチャ座標系において適宜所定の変換が行われるが、ワールド座標系とテクスチャ座標系との対応関係（マッピング）は固定であるため、３Ｄテクスチャマップの変換後に積層四角形にマッピングされている３Ｄテクスチャマップの内容は自動的に変更される。
【００３７】
図７Ａに示すように、３Ｄテクスチャマッピングでは、ボクセルデータをテクスチャ座標系に３Ｄテクスチャマップとして定義し、３Ｄテクスチャマップをワールド座標系に定義された積層四角形の各四角形に貼り付ける。すなわち、四角形に３Ｄテクスチャマップの各断面（スライス）をマッピングすることにより、３Ｄテクスチャマップを視線に対して垂直な断面の集まりとして再構成する。
【００３８】
図７Ｂに示すように、視点の変更は、ワールド座標（Ｘ，Ｙ，Ｚ）に定義された積層四角形およびワールド座標系とテクスチャ座標系との対応関係を初期のまま動かさずに、四角形に貼り付けた３Ｄテクスチャマップをテクスチャ座標系で回転させる。これにより、個々の四角形の４頂点と３Ｄテクスチャマップの座標位置（図７では、ｘｙｚ座標で表す）が回転により変更され、視点を変更した画像を得ることができる。
【００３９】
レンダリング処理部２５は、所定の視点からＺ軸方向に平行な視線上の四角形のＸＹ座標に対応する変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を視点から遠い四角形の順に当該ボクセルのアルファ値を基にアルファブレンディングして得られたＲＧＢ値を、視線が投影面と交差する画素の画素値としてレンダリング画像を生成する。この場合、レンダリング処理部２５は、レンダリング画像のＸＹ座標と視線方向に交差する四角形の交差座標（ＸＹＺ座標）を算出し、算出した交差座標と対応する変換後３Ｄテクスチャ画像のｘｙｚ座標を算出し、算出したｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする。すなわち、３Ｄテクスチャマップが貼り付けられた四角形を、視点から遠い順にアルファブレンディングすることでボリュームレンダリングを行う。これらの手順をＯｐｅｎＧＬなどのグラフィックＡＰＩを用いて指示することで、ＧＰＵの機能を利用した高速処理が可能となる。ＧＰＵの機能を利用することにより、待ち時間を抑制して高速にレンダリング画像を生成することができる。本実施の形態であれば、汎用コンピュータに装着されたビデオカードに搭載されたＧＰＵであっても、０．１秒以内でレンダリング処理が可能であり、対話形式で（あるいはインタラクティブ性を確保して）レンダリング画像をリアルタイムに表示させることができる。
【００４０】
上述のように、本実施の形態のボクセル構造体のボクセルデータは、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成されるボクセル構造体のボクセルデータを含む構造を有し、ボクセル構造体のボクセルで構成される３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の四角形のＸＹ座標に対応する変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を視点から遠い四角形の順に当該ボクセルのアルファ値を基にアルファブレンディングして得られたＲＧＢ値を、視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行するのに用いられる。
【００４１】
本実施の形態では、３Ｄテクスチャマッピング法を用いるが、一般的な２Ｄテクスチャマッピング法の場合には、以下のような課題がある。すなわち、２Ｄテクスチャマッピング法では、ボクセルデータを構成する各スライスの輪郭形状をワールド座標系において四角形で表現するところは本願と同様であるが、２次元のテクスチャ座標系においてボクセルデータを構成する各スライスの画像を複数の２Ｄテクスチャマップとして定義する点で異なる（本実施の形態では、全スライスの画像を３次元のテクスチャ座標系において単一の３Ｄテクスチャマップとして定義している）。そして、各四角形に対応するいずれかの２Ｄテクスチャマップを各四角形に貼り付ける（本実施の形態では、各四角形の４頂点に対応する３Ｄテクスチャマップ内の４つの座標を対応付けて貼り付けている）。２Ｄテクスチャマップは２次元のテクスチャ座標系において定義されているため、回転は２次元的にしか行えない。そのため、ワールド座標系において、積層した四角形を３次元的に回転させる方法をとらざるを得ない。そうすると、回転角度により奥行関係が崩れ、あるいは２Ｄテクスチャマップが反転し、積層した四角形をＹ軸中心に９０度回転させると、四角形（厚みが０）は描画されず、レンダリング像は真っ黒になる。
【００４２】
また、スライスと視線とのなす角度が小さくなるにつれて投影面積が小さくなり、サンプリングされるデータの数が減少し、ボリュームレンダリングの意義が失われ、実用的なレンダリング像を得ることができない場合がある。即ち、回転角度により、ワールド座標系の積層四角形とテクスチャ座標系の２Ｄテクスチャマップとの対応関係を補正しないと、適切なレンダリング像を得ることができない。
【００４３】
本実施の形態によれば、上述のような課題を解決することができる。
【００４４】
次に、本実施の形態の３Ｄテクスチャマッピング装置１００の動作について説明する。
【００４５】
図８及び図９は本実施の形態の３Ｄテクスチャマッピング装置１００による３Ｄテクスチャマッピング処理の手順の一例を示すフローチャートである。以下では、便宜上、処理の主体を画像処理部２０として説明する。画像処理部２０は、ＤＩＣＯＭ画像の画像データを取得し（Ｓ１１）、カラーマップデータを取得する（Ｓ１２）。なお、カラーマップデータは、図３、図４で例示したものである。
【００４６】
画像処理部２０は、変換パラメータを取得し（Ｓ１３）、ｘｙｚ方向のＲＯＩ値を取得する（Ｓ１４）。なお、変換パラメータは、座標変換パラメータ及び透視変換パラメータなどを含む。変換パラメータの詳細は後述する。画像処理部２０は、ＤＩＣＯＭ画像の階調圧縮処理を行い（Ｓ１５）、階調圧縮断層画像Ｄ８に対してカラーマップ定義を行う（Ｓ１６）。カラーマップ定義は、階調圧縮断層画像Ｄ８の画素値に対して、ＲＧＢ値及び不透明度αを定義する。なお、ステップＳ１５の処理は必須ではなく、ステップＳ１５の処理を実施しない場合には、ＤＩＣＯＭ画像に対してカラーマップ定義を行えばよい。ただし、カラーマップはＣＴ画像の場合、見たい部位ごとに汎用的に定義することが可能で、与えられたＤＩＣＯＭ画像に依存して定義されるものではないため、ステップＳ１６の処理を省略し、あらかじめ定義されたカラーマップを流用することもできる。
【００４７】
画像処理部２０は、階調圧縮断層画像Ｄ８の平滑化処理を行い（Ｓ１７）、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成する（Ｓ１８）。画像処理部２０は、ボクセルの陰影値を算出する（Ｓ１９）。ただし、ステップＳ１９の処理は、必須ではなく、ステップＳ１９の処理を実施しない場合には、ステップＳ２１の処理に進めばよい。
【００４８】
ボクセルの陰影値の算出は、以下のようにすることができる。すなわち、補正処理部２９は、ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出し、算出した勾配ベクトル及び所定の光源ベクトルに基づいてボクセルの陰影値を算出する。
【００４９】
より具体的には、補正処理部２９は、ボクセル構造体のボクセルの不透明度と、当該ボクセルの近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する。補正処理部２９は、ボクセルと近傍ボクセルとの距離並びにボクセル及び近傍ボクセルそれぞれの不透明度の差分に基づいてボクセルの勾配ベクトルを算出する。この場合、近傍ボクセルとの距離を用いるにあたり、ＸＹ方向とＺ方向の解像度が異なることを考慮し、補正処理部２９は、勾配ベクトルのｚ軸方向の成分をｚ軸方向の変倍率Ｒｘｙ／Ｒｚで補正することが必要である。
【００５０】
光源ベクトル（Ｌｘ，Ｌｙ，Ｌｚ）は、例えば、（Ｌｘ，Ｌｙ，Ｌｚ）＝（０．５７７３５，０．５７７３５，０．５７７３５）の如く、平行光源で単位ベクトルとして指定する。また、環境光成分をＡｂとする。ここで、０≦Ａｂ≦１である。例えば、Ａｂ＝０．２とする。
【００５１】
０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１の範囲のボクセル（ｘ，ｙ，ｚ）の勾配ベクトル（Ｇｘ，Ｇｙ，Ｇｚ）は、式（１）、（２）、（３）で算出することができる。本実施の形態では、２６近傍のボクセル値と中央のボクセルのボクセル値との差分により高精度に勾配ベクトルを算出することができる。勾配ベクトルを算出する際に、ボクセルは座標変換前でｚ方向変倍処理が行われていないため、ｘｙ方向とｚ方向とでは解像度が異なる点に留意し、勾配ベクトルのｚ方向成分Ｇｚの変倍補正（Ｒｘｙ／Ｒｚの乗算）を行う。
【００５２】
【数１】
2019114034.tif 000003
【００５３】
Ｇ＝｛Ｇｘ2 ＋Ｇｙ2 ＋Ｇｚ2 ｝1/2 とする（Ｇｘの２乗とＧｙの２乗とＧｚの２乗との和の平方根をＧとする）。Ｇ≧１の場合、陰影値Ｓ（ｘ，ｙ，ｚ）は、拡散反射成分のみ算出し、式（４）で与えられる。これにより、視線ベクトルを変更してボクセルを回転させると、立体感を表現することができる。なお、視線を変えても、座標の回転処理を行う前であり、勾配ベクトルは変化しないので、鏡面反射成分は加えない。
【００５４】
Ｇ＜１の場合、あるいは、ｘ＝０またはｘ＝Ｓｘ−１またはｙ＝０またはｙ＝Ｓｙ−１またはｚ＝０またはｚ＝Ｓｚ−１（すなわち、境界部のボクセル）の場合、陰影値Ｓ（ｘ，ｙ，ｚ）としてやや明るい固定値、例えば、０．８を与える。
【００５５】
すなわち、補正処理部２９は、勾配ベクトルを算出することができないボクセルに所定の比較的明るい（例えば、取り得る最大値の５０％以上、陰影値の最大値が１．０の場合は０．５以上の明るい）陰影値を付与することができる。ここで、取り得る最大値とは、理論上あり得る最大値である。これにより、ストライプ・格子状のモアレの発生を抑制することができる。
【００５６】
画像処理部２０は、ボクセルのＲＧＢ値を補正する（Ｓ２０）。具体的は、補正処理部２９は、算出した陰影値に基づいてボクセルのＲＧＢ値を補正する。陰影計算後のボクセルをＶ′（ｘ，ｙ，ｚ，ｃ）で表すと、ボクセルのＲＧＢ値の補正は、０≦ｃ≦２の範囲で式（５）を適用することにより行うことができる。
【００５７】
上述のように、本実施の形態のボクセル構造体のボクセルデータは、ボクセル構造体のボクセルデータであって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成されるボクセル構造体のボクセルデータであり、当該ボクセルのＲＧＢ値が、当該ボクセル構造体のボクセル不透明度に関する勾配ベクトル及び所定の光源ベクトルから算出される当該ボクセルの陰影値に基づき補正された、ボクセル構造体のデータ構造を有し、不透明度及び補正したＲＧＢ値が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の四角形のＸＹ座標に対応する３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行するのに用いられる。
【００５８】
ＯｐｅｎＧＬを用いた３Ｄテクスチャマッピング法では、ハードウエアレンダリングにおいて、ボクセルの勾配ベクトル、陰影計算に係る処理はサポートされていないため、陰影値として常にα値が与えられている。しかし、本実施の形態では、疑似的に陰影計算を行うことができる。すなわち、陰影計算を正確に行うためには、ボクセルの座標変換後に行う必要があるが、座標変換はハードウエアレンダリングで一緒に行われるため、座標変換前にハードウエアレンダリングに投入するボクセルデータに予め陰影計算結果を組み込むことにより、疑似的に陰影が付与されたレンダリング像を得ることができる。
【００５９】
画像処理部２０は、陰影計算後のボクセル構造体を３Ｄテクスチャマップとして登録する（Ｓ２１）。なお、３Ｄテクスチャマップへの登録処理の詳細は後述する。画像処理部２０は、投影画面を設定する（Ｓ２２）。
【００６０】
図１０は本実施の形態の３Ｄテクスチャマッピング装置１００による投影画面設定の一例を示す説明図である。変換処理部２４は、レンダリング画像のスクリーンサイズ（縦横画素数、縦横アスペクト比率）を設定する。変換処理部２４は、平行投影（通常の外観レンダリング）又は透視投影（内視鏡モード）のいずれかを設定する。そして、変換処理部２４は、透視投影が設定された場合、透視投影パラメータを設定する。透視投影パラメータは、例えば、カメラの視野角度（焦点距離）、視点位置（視点と注視点で構成され、前者は目の位置で後者は見ている対象物上の位置で、双方ともＺ軸上に設定される。一般に、注視点はワールド座標系の原点に固定）、クリッピング位置（視点からのＺ軸上の距離、近方及び遠方の２箇所）などを含む。なお、クリッピング位置は、近方だけでもよい。図１０に示すように、平行投影の場合には、視点からの視線は全てＺ軸に平行となり、視点は仮想的に左方向に無限遠に離れた位置にあることを想定しているため、Ｚ軸方向に定義されている全ての積層四角形がレンダリング対象になる。一方、透視投影の場合には、視点からの視野角度に応じて、視線が広がり、レンダリング対象も近方クリッピングによって制限されている。
【００６１】
画像処理部２０は、レンダリング処理を行い（Ｓ２３）、フレームメモリ上にレンダリング画像を生成し（Ｓ２４）、処理を終了する。なお、レンダリング処理の詳細は後述する。
【００６２】
図１１は本実施の形態の３Ｄテクスチャマッピング装置１００による３Ｄテクスチャマップ登録処理の手順の一例を示すフローチャートである。画像処理部２０は、ＲＯＩ値に乱数を加算して、クリッピング領域を更新する（Ｓ１０１）。
【００６３】
具体的には、ＲＯＩクリッピング処理部３０は、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する。乱数発生部２８は、所定範囲内の乱数、例えば、０から３２７６７までの乱数Ｒｎｄを発生する。ＲＯＩクリッピング処理部３０は、設定したｘｙｚ座標に所定範囲内の乱数を加算する。すなわち、式（６）、（７）、（８）、（９）、（１０）、（１１）により、ＲＯＩの６つの座標値Ｘｓ、Ｘｅ、Ｙｓ、Ｙｅ、Ｚｓ、Ｚｅに対して、例えば、−０．１から＋１．１の範囲で乱数を発生させて、３ＤテクスチャマップＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）に一つのボクセルを転送する都度、新規に発生させた乱数を加算して更新したＲＯＩの６つの座標値Ｘｓ′、Ｘｅ′、Ｙｓ′、Ｙｅ′、Ｚｓ′、Ｚｅ′を得る。
【００６４】
【数２】
2019114034.tif 000004
【００６５】
なお、Ｘｓ′＜０の場合には、Ｘｓ′＝０とし、Ｘｅ′＞Ｓｘ−１の場合には、Ｘｅ′＝Ｓｘ−１とする。Ｙｓ′＜０の場合には、Ｙｓ′＝０とし、Ｙｅ′＞Ｓｙ−１の場合には、Ｙｅ′＝Ｓｙ−１とする。また、Ｚｓ′＜０の場合には、Ｚｓ′＝０とし、Ｚｅ′＞Ｓｚ−１の場合には、Ｚｅ′＝Ｓｚ−１とする。
【００６６】
画像処理部２０は、３Ｄテクスチャマップの座標値に乱数を加算して転送元のボクセルの座標値を決定する（Ｓ１０２）。
【００６７】
具体的には、３Ｄテクスチャ画像生成部２６は、３Ｄテクスチャマップのボクセルのｘｙｚ座標に所定範囲内の乱数を加算し、乱数を加算したｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とするボクセル構造体のボクセルを特定することにより、転送元のボクセルの座標値を決定する。
【００６８】
例えば、３ＤテクスチャマップＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）に一つのボクセルＶ（ｘ，ｙ，ｚ，ｃ）又は陰影計算後のボクセルＶ′（ｘ，ｙ，ｚ，ｃ）を転送するにあたり、所定範囲、例えば、−０．１から＋１．１の範囲で乱数を発生させて、転送先の３ＤテクスチャマップＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）に対応する転送元のボクセルの座標値（ｘｔ，ｙｔ，ｚｔ）に乱数を加算し、転送元のボクセルの座標値（ｘ，ｙ，ｚ）を決定する。転送元のボクセルの座標値（ｘ，ｙ，ｚ）は、式（１２）、（１３）、（１４）で求めることができる。
【００６９】
【数３】
2019114034.tif 000005
【００７０】
画像処理部２０は、決定した座標値のボクセルを３Ｄテクスチャマップに転送する（Ｓ１０３）。ただし、ｘ＜Ｘｓ′またはｘ＞Ｘｅ′またはｙ＜Ｙｓ′またはｙ＞Ｙｅ′またはｚ＜Ｚｓ′またはｚ＞Ｚｅ′の場合、３ＤテクスチャマップＴｅｘ（ｘｔ，ｙｔ，ｚｔ，ｃ）に０を転送する（０≦ｃ≦３）。
【００７１】
すなわち、３Ｄテクスチャ画像生成部２６は、ボクセル構造体の転送元のボクセルのｘｙｚ座標が、乱数を加算して更新したクリッピング領域外にある場合、ボクセルのＲＧＢ値及び不透明度を所定値に設定する。例えば、ＲＧＢ＝０、不透明度α＝０とする。
【００７２】
上述のように、本実施の形態のボクセル構造体のボクセルデータは、視線上の四角形のＸＹ座標に対応する３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、算出したｘｙｚ座標が変換後３Ｄテクスチャ画像の範囲外である場合、算出したｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に所定値を付与する処理とを実行するのに用いられる。
【００７３】
また、ｘ＜Ｘｓ′またはｘ＞Ｘｅ′またはｙ＜Ｙｓ′またはｙ＞Ｙｅ′またはｚ＜Ｚｓ′またはｚ＞Ｚｅ′の場合以外では、３ＤテクスチャマップＴｅｘ（ｘｔ，ｙｔ，ｚｔ）にボクセルＶ（ｘ，ｙ，ｚ，ｃ）又は陰影計算後のボクセルＶ′（ｘ，ｙ，ｚ，ｃ）を転送する。
【００７４】
すなわち、３Ｄテクスチャ画像生成部２６は、乱数を加算して更新したボクセル構造体の転送元のボクセルのｘｙｚ座標が、乱数を加算して更新したクリッピング領域内にある場合、当該ボクセルのボクセル値を転送して３Ｄテクスチャマップを生成する。
【００７５】
画像処理部２０は、すべてのボクセルを転送したか否かを判定し（Ｓ１０４）、すべてのボクセルを転送していない場合（Ｓ１０４でＮＯ）、ステップＳ１０１以降の処理を続け、すべてのボクセルを転送した場合（Ｓ１０４でＹＥＳ）、処理を終了する。これにより、３Ｄテクスチャ画像を生成することができる。
【００７６】
図１２は３Ｄテクスチャマッピングの一例を示す模式図である。図１２において、ワールド座標を（Ｘ，Ｙ，Ｚ）とし、テクスチャ座標を（Ｓ，Ｔ，Ｒ）とする。テクスチャ座標は、０から１までの範囲に正規化され、０≦Ｓ、Ｔ、Ｒ≦１となる。ワールド座標（Ｘ，Ｙ，Ｚ）の原点に対応するテクスチャ座標は（０．５，０．５，０．５）となる。
【００７７】
３Ｄテクスチャマッピングでは、２Ｄテクスチャマッピングと異なり、ユーザが定義した積層四角形の内部だけでなく、積層四角形間の空間やワールド座標系内における積層四角形外の空間にも３Ｄテクスチャマップが貼られる。そうすると、図１２に示すように、テクスチャ座標の下限（０，０，０）を逸脱した座標（−０．１，−０．１，ｒ）に位置する３Ｄテクスチャマップが貼られる場合がある。また、同様に、テクスチャ座標の上限（１，１，１）を逸脱した座標（１．１，１．１，ｒ）に位置する３Ｄテクスチャマップが貼られる場合もある。このように定義されたテクスチャ座標を逸脱した座標においては、初期設定としてＲ＝Ｇ＝Ｂ＝α＝０の値が貼られる。そうすると、３Ｄテクスチャマップの回転に伴って、３Ｄテクスチャマップが貼られた積層四角形の各四角形の内部（α＞０）と外部（α＝０）との境界において、階段状の周期的なパターンが発生し、これらが積層することにより、ストライプ・格子状のモアレが発生する場合がある。
【００７８】
補正処理部２９は、四角形のＸＹＺ座標に対応する変換後の３Ｄテクスチャマップのｘｙｚ座標がテクスチャ座標空間を逸脱している場合、３Ｄテクスチャマップのｘｙｚ座標に対応するボクセルのＲＧＢ値に所定値（例えば、取り得る最大値の５０％以上の明るいグレーの値、ＲＧＢ値の最大値が各々２５５の場合は、Ｒ＝Ｇ＝Ｂ＞１２８）を付与し、当該ボクセルの不透明度に０を付与する。ここで、取り得る最大値とは、理論上あり得る最大値である。これにより、ストライプ・格子状のモアレの発生を抑制することができる。
【００７９】
図１３は本実施の形態の３Ｄテクスチャマッピング装置１００によるレンダリング処理の手順の一例を示すフローチャートである。画像処理部２０は、３Ｄテクスチャマップに対するスケーリング及びｚ方向変倍処理を行い（Ｓ１１１）、３Ｄテクスチャマップに対する回転処理を行う（Ｓ１１２）。
【００８０】
画像処理部２０は、３Ｄテクスチャマップに対するオフセット処理を行い（Ｓ１１３）、複数の四角形で構成される積層四角形を設定する（Ｓ１１４）。画像処理部２０は、積層四角形を構成する各四角形と３Ｄテクスチャマップとの対応付けを行う（Ｓ１１５）。
【００８１】
図１４は３Ｄテクスチャマッピングとの対応付け方法の一例を示す説明図である。図１４Ａに示すように、ＤＩＣＯＭ断層画像をＲＧＢα形式に変換し、グラフィックＡＰＩを介して３Ｄテクスチャマップとして登録する。そして、図１４Ｂに示すように、積層四角形を定義し、３Ｄテクスチャマッピングを行う。この場合、ワールド座標系における各四角形の４頂点の３次元ワールド座標とテクスチャ座標系における３Ｄテクスチャマップの３次元テクスチャ座標とを対応付ける。図１４に示すように、（−１，−１，ｚ）、（−１，１，ｚ）、（１，−１，ｚ）、（１，１，ｚ）の４頂点で構成される四角形に対して、ワールド座標の（−１，−１，ｚ）は、テクスチャ座標（０，０，ｒ）に対応付けられている。
【００８２】
また、３Ｄテクスチャマッピングを設定する場合、積層四角形設定部２７は、複数のｘｙ平面画像の数と同数の四角形をＺ軸方向に並べた積層四角形を設定する。
【００８３】
積層四角形における四角形の数は任意に設定することができるが、四角形の数と断層画像の枚数とが一致しない場合、Ｚ軸方向に補間処理が働き、座標変換による座標値の丸め誤差が累積し、ストライプ・格子状のモアレが発生する。
【００８４】
そこで、積層四角形における四角形の数、３Ｄテクスチャマップに登録する２Ｄ断層画像の枚数を同一にする。この場合、２Ｄ断層画像の枚数を元のＤＩＣＯＭ形式の断層画像の枚数と同一にすることができる。３Ｄボクセル構造体を構築する際、ＸＹＺ３次元の解像度を統一させた方が、後処理がしやすくなるため、２Ｄ断層画像のスライス間を補間して元のＤＩＣＯＭ形式の断層画像の枚数よりも増やす処理が一般的に行われるが、本実施の形態の方が、モアレを抑制する観点から、より好ましい。
【００８５】
画像処理部２０は、積層四角形に３Ｄテクスチャマップを貼り付けながらスキャンコンバージョンを行い、視点から遠い四角形の順にアルファブレンディング処理を行い（Ｓ１１６）、処理を終了する。
【００８６】
より具体的には、あらかじめレンダリング画像のＲＧＢ値は全て背景色（例えば、Ｒ＝Ｇ＝Ｂ＝０）で初期化しておく。レンダリング処理部２５は、視点から最も遠い四角形に３Ｄテクスチャマップを貼り付け、図１０で定義したレンダリング画像に平行投影または透視投影を行い、投影された四角形のワールド座標系におけるＸＹＺ座標の（−１，−１，−１）からＸ軸方向及びＹ軸方向に、投影されたレンダリング画像における画素間隔に対応する間隔ｕ（レンダリング画像の１画素に対応するワールド座標の間隔をｕとする。例えばｕ＝０．００２）でスキャンコンバージョンを行う。スキャンコンバージョンされた、各ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１）（ｉ，ｊはレンダリング画像の座標値で、例えば０≦ｉ，ｊ≦５１１の整数）において、各々対応するテクスチャ座標（２ｉｕ，２ｊｕ，０）を算出し、算出したテクスチャ座標に基づいて３Ｄテクスチャマップを参照しＲＧＢ値及び不透明度を取得して、対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されているＲＧＢ値とアルファブレンディング処理を行い、対応するレンダリング画像の座標（ｉ，ｊ）のＲＧＢ値を更新する。このようにして、視点から最も遠い単一の四角形についてアルファブレンディング処理が終了すると、Ｚ座標をｖ（四角形がＺ軸方向に配置されているワールド座標の間隔をｖとする。例えば、ｖ＝２／Ｓｚ）だけ増やし、視点方向に次に近い四角形（−１＋ｉｕ，−１＋ｊｕ，−１＋ｖ）について同様の処理を繰り返してレンダリング画像を更新する。全ての四角形についてスキャンコンバージョンしてワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）（ｋは四角形の番号で、０≦ｋ≦Ｓｚ−１の整数）に対してアルファブレンディングの処理が終了するとレンダリング画像が完成する。
【００８７】
アルファブレンディング処理は、式（１５）、（１６）、（１７）を用いることができる。
【００８８】
【数４】
2019114034.tif 000006
【００８９】
ここで、Ｒ′、Ｇ′、Ｂ′は、投影面において更新されるレンダリング画像のＲＧＢ値である。Ｒ、Ｇ、Ｂは、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する３Ｄテクスチャマップのボクセル（２ｉｕ，２ｊｕ，２ｋｖ）におけるＲＧＢ値であり、重ねる色の値に相当する。αも、四角形のワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応する３Ｄテクスチャマップのボクセル（２ｉｕ，２ｊｕ，２ｋｖ）におけるα値であり、重ねる割合を制御する。また、Ｒｂ、Ｇｂ、Ｂｂは、ワールド座標（−１＋ｉｕ，−１＋ｊｕ，−１＋ｋｖ）に対応するレンダリング画像の座標（ｉ，ｊ）に既に記録されているＲＧＢ値であり、当該四角形に対して視点と反対側に１つ前に位置する四角形に対して式（１５）、（１６）、（１７）に基づいて算出されたＲ′、Ｇ′、Ｂ′の値に一致し、視点から最も遠い四角形に対して算出する場合は背景色（例えば、Ｒｂ＝Ｇｂ＝Ｂｂ＝０）が与えられる。
【００９０】
図１５は本実施の形態の画像処理部２０の構成の他の例を示すブロック図である。図１５に示すように、画像処理部２０は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＧＰＵ２０４、ビデオメモリ２０５、記録媒体読取部２０６などで構成することができる。記録媒体１に記録されたコンピュータプログラムを記録媒体読取部２０６で読み取ってＲＡＭ２０３に格納することができる。ＲＡＭ２０３に格納されたコンピュータプログラムをＣＰＵ２０１で実行させることにより、階調圧縮処理部２１、平滑化処理部２２、ボクセル構造体生成部２３、変換処理部２４、レンダリング処理部２５、３Ｄテクスチャ画像生成部２６、積層四角形設定部２７、乱数発生部２８、補正処理部２９、ＲＯＩクリッピング処理部３０で行う処理を実行することができる。なお、ＣＰＵ２０１は、セントラル・プロセッシングユニットで、通常は複数のコア（プロセッサ）で構成されてＲＡＭ２０３と連携して動作するのに対し、ＧＰＵ２０４は、グラフィックス・プロセッシングユニットで、多くのグラフィックス処理に特化したプロセッサで構成されてビデオメモリ２０５と連携して動作する。また、コンピュータプログラムは、記録媒体読取部２０６で読み取る構成に代えて、インターネットなどのネットワークを介してダウンロードすることもできる。
【００９１】
また、ＣＰＵ２０１は、ＧＰＵ２０４に対してレンダリング処理などの命令を出力する。ＧＰＵ２０４は、命令を解釈し、レンダリング処理などの所要の処理を実行する。ＧＰＵ２０４のプログラミングには、一般にグラフィクスＡＰＩ（例えば、ＯｐｅｎＧＬなど）を用いることができる。例えば、コンピュータプログラムは、ＣＰＵ２０１に、変換処理、レンダリング処理を実行するための指令をＧＰＵ２０４に出力する処理を実行させることができる。
【００９２】
次に、モアレの発生パターンについて説明する。ボリュームレンダリング像においてモアレが発生する理由は、断層画像を積層合成する点にある。モアレのタイプとしては、第１のタイプとして、曲線状のパターンがある。また、第２のパターンとして、ストライプ・格子状のパターンがある。なお、曲線状のパターン、ストライプ・格子状のパターンは厳密に分離されるものではなく、ボリュームレンダリング像では、両者が複合的に混ざって存在する。以下では、説明の便宜上、分けて説明する。まず、第１の曲線状のパターンについて説明する。
【００９３】
図１６は曲線状のモアレが発生する様子の一例を示す模式図である。発生原因は、断層画像（スライス画像）に元々自然に存在する知覚可能な規則性をもたないパターンである。このようなパターンをもつ複数の断層画像を座標変換（ｘｙｚ軸回りの回転）することにより、各断層画像に存在する前述の規則性をもたないパターンがずれて合成されることにより、これらのパターンが線状に連結し、結果として、ボリュームレンダリング像に曲線状の縞模様が形成され、知覚可能なモアレとして認識される。
【００９４】
図１７は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第１例を示す説明図である。図１７Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図１７Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００の平滑化処理部２２により、各断層画像に対して図６で説明したような２Ｄ空間（ｘｙ平面）で平滑化処理を行った場合を示す。図１７Ａでは曲線状の縞模様が発生しているが、図１７Ｂでは、縞模様が消えていることが分かる。
【００９５】
次に、モアレの第２のパターンであるストライプ・格子状のパターンについて説明する。
【００９６】
図１８はストライプ・格子状のモアレが発生する様子の一例を示す模式図である。ストライプ・格子状のパターンの特徴は、第１のパターンと異なり、モアレ発生源は、断層画像そのものにはなく、３Ｄテクスチャマッピング処理の過程で計算により発生した人工的パターンにある。３Ｄテクスチャマップの各断層画像を座標変換（ｘｙｚ軸回りの回転）することにより、座標変換という実数演算の過程で端数を切り捨てて整数化し、整数値のｘｙｚ座標で変換前のボクセル値を参照する過程で、丸め誤差の累積により周期的なパターンが発生し、座標変換後の３Ｄテクスチャマップの断層画像に加わる。個々の断層画像に加わった周期的パターンは知覚できないレベルの微弱なものであるが、複数の断層画像がアルファブレンディング処理により重なり、重なる時のズレ幅が各周期的パターンの位相条件を満たせば、互いに強めあって、いわゆる干渉縞が発生し、ストライプ・格子状のモアレとして知覚可能なレベルになる。
【００９７】
図１９は座標変換時の丸め誤差の発生の様子の一例を示す説明図である。図１９では、便宜上、ボクセルを２次元で表している。座標変換前のボクセルを、横方向をｘ軸方向、縦方向をｚ軸方向として、Ｖ１１、Ｖ１２、…、Ｖ４９で表す。ｚ軸中心に回転させる座標変換によって、参照するｘ座標値は、実数値のｘ座標の整数化に伴う丸め誤差が累積する。例えば、算出された実数のｘ座標値は、左から右に向かって、１．３、２．６、３．９、５．２、６．５、７．８とする。
【００９８】
例えば、算出された実数のｘ座標値が、１．３の場合、座標変換後のボクセルは、Ｖ１１×０．７＋Ｖ１２×０．３により、座標変換前のＶ１１及びＶ１２を参照し、０．３という端数に基づく重みを乗算しながら補間されて求めることができる。また、算出された実数のｘ座標値が、２．６の場合、座標変換後のボクセルは、Ｖ１２×０．４＋Ｖ１３×０．６により、座標変換前のＶ１２及びＶ１３を参照し、０．６という端数に基づく重みを乗算しながら補間されて求めることができる。また、算出された実数のｘ座標値が、３．９の場合、座標変換後のボクセルは、座標変換前のＶ１３×０．１＋Ｖ１４×０．９により、Ｖ１３及びＶ１４を参照し、０．９という端数に基づく重みを乗算しながら補間されて求めることができる。また、算出された実数のｘ座標値が、５．２の場合、座標変換後のボクセルは、Ｖ１５×０．８＋Ｖ１６×０．２により、座標変換前のＶ１５及びＶ１６を参照し、０．２いう端数に基づく重みを乗算しながら補間されて求めることができる。
【００９９】
このように、座標変換後の左から４番目のボクセルは、座標変換前のボクセルＶ１４とＶ１５とで補間されず、Ｖ１５とＶ１６とで補間され、座標変換後の左から３番目のボクセルと４番目のボクセルとの間では、ボクセル値に段差が生じる。ただし、この段差はＶ１１からＶ１９で形成される単一の層（断層画像）では知覚可能なレベルではない。しかし、図１９に示されるように、同様な段差がＶ２１からＶ４９で形成される３つの層にも同一の箇所で発生すると、結果として、ｚ軸方向に沿ってストライプ・格子状のモアレとして知覚可能になる。
【０１００】
前述の問題に対する対策として丸め誤差にゆらぎを与える方法を提案する。図２０は本実施の形態の３Ｄテクスチャマッピング装置１００による丸め誤差分散の様子の一例を示す説明図である。丸め誤差分散は、前述の図１１におけるステップＳ１０１、Ｓ１０２、Ｓ１０３の処理及び図１２に例示した構成、あるいは図１３におけるステップＳ１１５の処理及び図１４に例示した構成により行うことができる。図２０に示すように、座標変換前のボクセルは図１９の例と同一である。参照するｘ座標値は、乱数によってボクセルの座標値にゆらぎを付加し、あるいは乱数によってボクセルの座標値及びＲＯＩ設定座標にゆらぎを付加しているので、参照するｘ座標値は、ｚ座標値毎に異なる。例えば、上から２番目のｘ座標値は、左から右に向かって、２．１、３．２、４．９、６．１、７．１、８．０となっている。また、上から３番目のｘ座標値は、左から右に向かって、１．２、２．４、３．５、４．８、５．９、６．９となっている。また、上から４番目のｘ座標値は、左から右に向かって、２．３、３．１、４．４、５．９、６．５、７．８となっている。そうすると、１層目と２層目では図１９と同様に左から３番目と４番目のボクセルの間に段差が残っているが、３層目と４層目では段差が消失し、これらが重なると、ｚ軸方向に沿って発生していたストライプ・格子状のモアレが知覚できなくなる。
【０１０１】
上述のように、本実施の形態によれば、実数値の座標値を整数化した際に生じる丸め誤差が分散（実際には、ｘｙｚ方向に分散）し、周期的なムラが解消するので、座標変換後のボクセル値にストライプ又は格子状の差が発生しないので、ストライプ・格子状のモアレが低減される。
【０１０２】
図２１は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第２例を示す説明図である。図２１Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図２１Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００により、３Ｄテクスチャマップを構築する際、図１１のステップＳ１０２の処理に基づいて座標値に乱数でゆらぎを与えた場合を示す。図２１Ａでは斜め縞模様が発生しているが、図２１Ｂでは縞模様が消えていることが分かる。
【０１０３】
図２２は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第３例を示す説明図である。図２２Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図２２Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００により、ＲＯＩクリッピング処理時に図１１のステップＳ１０１の処理に基づいてクリッピング座標値に乱数でゆらぎを与えた場合を示す。図２２Ａではクリップ面全体に縞模様が発生しているが、図２２Ｂでは縞模様が消えていることが分かる。
【０１０４】
図２３は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第４例を示す説明図である。図２３Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図２３Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００により、図１２の説明に基づいて図１の補正処理部２９が、テクスチャ座標系外の画素値のボータ色を一律に、Ｒ＝Ｇ＝Ｂ＝２５５、α＝０にした場合を示す。図２３Ａでは縞模様が発生しているが、図２３Ｂでは縞模様が消えていることが分かる。
【０１０５】
図２４は３Ｄテクスチャマッピング動作の問題の一例を示す説明図である。図２４Ａは初期位置を示し、図２４Ｂは回転操作した場合を示す。図２４は３Ｄテクスチャマッピングの動作検証のため、テクスチャ座標系を逸脱した場合に、不透明度にあえてα＞０の値を設定し反対側に折り返してリピートさせてマッピングするモードに設定したものである。通常の使用形態では積層四角形の外側は、α＝０に設定しているため表示されないが、定義した積層四角形の上下左右前後にも３Ｄテクスチャが貼られており、像の周辺に仮想的な窓ガラスが存在することになり、モアレ発生の要因になると推定される。
【０１０６】
図２５は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第５例を示す説明図である。図２５Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図２５Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００により、図１の補正処理部２９が画像のエッジ部のボクセルに高輝度の陰影値を与えた場合を示す。図２５Ａではエッジ部に縞模様が発生しているが、図２５Ｂでは縞模様が消えていることが分かる。
【０１０７】
図２６は本実施の形態の３Ｄテクスチャマッピング装置１００によるモアレ対策結果の第６例を示す説明図である。図２６Ａは、比較例であり本実施の形態のモアレ対策を実施していない場合を示す。図２６Ｂは、本実施の形態の３Ｄテクスチャマッピング装置１００により、図１の積層四角形設定部２７が断層画像の枚数、テクスチャ枚数、積層四角形の四角形の数を同一にした場合を示す。図２６Ａでは縞模様が発生しているが、図２６Ｂでは縞模様が消えていることが分かる。
【０１０８】
上述のように、本実施の形態によれば、待ち時間を抑制して高速にレンダリング画像を生成することができる。また、レンダリング像の画質劣化を抑えながら、各種のモアレ（曲線状のモアレ、ストライプ・格子状のモアレ）の発生を抑制することができる。
【０１０９】
本実施の形態のコンピュータプログラムは、コンピュータに、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、前記複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理と、前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理と
を実行させる。
【０１１０】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成されるボクセル構造体を生成する処理と、生成したボクセル構造体のボクセルで構成される３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１１１】
本実施の形態のコンピュータプログラムは、コンピュータに、前記３Ｄテクスチャ画像のボクセルのｘｙｚ座標に所定範囲内の乱数を加算する処理と、乱数を加算したｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とする前記ボクセル構造体のボクセルを特定する処理と、特定したボクセルで構成される３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１１２】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像の数と同数の前記四角形をＺ軸方向に並べた積層四角形を設定する処理を実行させる。
【０１１３】
本実施の形態のコンピュータプログラムは、コンピュータに、前記視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、算出したｘｙｚ座標に対応する前記変換後３Ｄテクスチャ画像のｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に基づいてアルファブレンディングする処理とを実行させる。
【０１１４】
本実施の形態のコンピュータプログラムは、コンピュータに、算出したｘｙｚ座標が前記変換後３Ｄテクスチャ画像の範囲外である場合、算出したｘｙｚ座標に対応するボクセルのＲＧＢ値の各々に取り得る最大値の５０％以上の明るい所定値を付与し、前記ボクセルの不透明度に０を付与する処理を実行させる。
【０１１５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出する処理と、算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、算出した陰影値に基づいて前記ボクセルのＲＧＢ値を補正する処理と、不透明度及び補正したＲＧＢ値が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１１６】
本実施の形態のコンピュータプログラムは、コンピュータに、前記ボクセル構造体のボクセルの不透明度と、該ボクセルの近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する処理と、前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理とを実行させる。
【０１１７】
本実施の形態のコンピュータプログラムは、コンピュータに、前記勾配ベクトルのｚ軸方向の成分を所定の変倍率で補正する処理を実行させる。
【０１１８】
本実施の形態のコンピュータプログラムは、コンピュータに、前記勾配ベクトルを算出することができないボクセルに取り得る最大値の５０％以上の明るい陰影値を付与する処理を実行させる。
【０１１９】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像それぞれの一のｘｙ平面画像上の任意の注目画素及び該注目画素の前記一のｘｙ平面画像での近傍画素の画素値に基づいて、前記一のｘｙ平面画像を平滑化する処理と、平滑化した前記複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１２０】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、圧縮した前記複数のｘｙ平面画像それぞれの任意の注目画素及び該注目画素の近傍画素の画素値に基づいて、前記複数のｘｙ平面画像を平滑化する処理とを実行させる。
【０１２１】
本実施の形態のコンピュータプログラムは、コンピュータに、画素値に対応付けてＲＧＢ値及び不透明度が定義されたカラーマップデータを取得する処理と、前記平滑化した複数のｘｙ平面画像それぞれの各画素に対応するボクセルのＲＧＢ値及び不透明度に前記カラーマップデータのＲＧＢ値及び不透明度を対応付けて３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１２２】
本実施の形態のコンピュータプログラムは、コンピュータに、ｘ軸中心、ｙ軸中心及びｚ軸中心の回転角、視野角度、視点位置、クリッピング位置、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率を含む前記所定の変換のパラメータを取得する処理と、前記３Ｄテクスチャ画像に対して、取得したパタメータを用いた所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１２３】
本実施の形態のコンピュータプログラムは、コンピュータに、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、設定したｘｙｚ座標に所定範囲内の乱数を加算する処理と、生成したボクセル構造体のボクセルのｘｙｚ座標が、乱数を加算したｘｙｚ座標で画定される対象領域内にある場合、前記ボクセルで構成される３Ｄテクスチャ画像を生成する処理とを実行させる。
【０１２４】
本実施の形態のコンピュータプログラムは、コンピュータに、生成したボクセル構造体のボクセルのｘｙｚ座標が、乱数を加算したｘｙｚ座標で画定される対象領域外にある場合、前記ボクセルのＲＧＢ値及び不透明度を所定値に設定する処理とを実行させる。
【０１２５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記変換後３Ｄテクスチャ画像を生成する処理及び前記レンダリング画像を生成する処理を実行するための指令をＧＰＵに出力する処理を実行させる。
【０１２６】
本実施の形態の画像処理装置は、３Ｄテクスチャマッピング法を用いたボリュームレンダリング処理を行う画像処理装置であって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、前記複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成する３Ｄテクスチャ画像生成部と、前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する変換後３Ｄテクスチャ画像生成部と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する積層四角形設定部と、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成するレンダリング画像生成部とを備える。
【０１２７】
本実施の形態の画像処理方法は、３Ｄテクスチャマッピング法を用いたボリュームレンダリング処理を行う画像処理装置による画像処理方法であって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、前記複数のｘｙ平面画像それぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成される３Ｄテクスチャ画像を生成し、前記３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成し、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定し、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する。
【０１２８】
本実施の形態のボクセルデータは、ボクセル構造体のボクセルデータであって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成されるボクセル構造体のボクセルデータを含む構造を有し、前記ボクセル構造体のボクセルで構成される３Ｄテクスチャ画像に対して所定の変換を行って変換後３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記変換後３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行するのに用いられる。
【０１２９】
本実施の形態のボクセルデータは、ボクセル構造体のボクセルデータであって、ｚ軸方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応し、ＲＧＢ値及び不透明度が定められたボクセルで構成されるボクセル構造体のボクセルデータであり、前記ボクセルのＲＧＢ値が、前記ボクセル構造体のボクセル不透明度に関する勾配ベクトル及び所定の光源ベクトルから算出される前記ボクセルの陰影値に基づき補正された、ボクセル構造体のデータ構造を有し、不透明度及び補正したＲＧＢ値が定められたボクセルで構成される３Ｄテクスチャ画像を生成する処理と、３次元空間のＸＹ座標面上の四角形をＺ軸方向に並べた積層四角形を設定する処理と、所定の視点からＺ軸方向に平行な視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のボクセルのＲＧＢ値を前記ボクセルの不透明度に基づいて前記視点から遠い四角形の順にアルファブレンディングして得られたＲＧＢ値を、前記視線が投影面と交差する画素の画素値としてレンダリング画像を生成する処理とを実行するのに用いられる。
【０１３０】
本実施の形態のボクセルデータは、前記視線上の前記四角形のＸＹ座標に対応する前記３Ｄテクスチャ画像のｘｙｚ座標を算出する処理と、算出したｘｙｚ座標が前記変換後３Ｄテクスチャ画像の範囲外である場合、算出したｘｙｚ座標に対応するボクセルのＲＧＢ値及び不透明度に所定値を付与する処理とを実行するのに用いられる。
【符号の説明】
【０１３１】
１０  入力部
１１  記憶部
１２  出力部
２０  画像処理部
２１  階調圧縮処理部
２２  平滑化処理部
２３  ボクセル構造体生成部
２４  変換処理部
２５  レンダリング処理部
２６  ３Ｄテクスチャ画像生成部
２７  積層四角形設定部
２８  乱数発生部
２９  補正処理部
３０  ＲＯＩクリッピング処理部
１００  ３Ｄテクスチャマッピング装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  ＧＰＵ
２０５  ビデオメモリ
２０６  記録媒体読取部
【図１】
2019114034.tif 000007
【図２】
2019114034.tif 000008
【図３】
2019114034.tif 000009
【図４】
2019114034.tif 000010
【図５】
2019114034.tif 000011
【図６】
2019114034.tif 000012
【図７】
2019114034.tif 000013
【図８】
2019114034.tif 000014
【図９】
2019114034.tif 000015
【図１０】
2019114034.tif 000016
【図１１】
2019114034.tif 000017
【図１２】
2019114034.tif 000018
【図１３】
2019114034.tif 000019
【図１４】
2019114034.tif 000020
【図１５】
2019114034.tif 000021
【図１６】
2019114034.tif 000022
【図１７】
2019114034.tif 000023
【図１８】
2019114034.tif 000024
【図１９】
2019114034.tif 000025
【図２０】
2019114034.tif 000026
【図２１】
2019114034.tif 000027
【図２２】
2019114034.tif 000028
【図２３】
2019114034.tif 000029
【図２４】
2019114034.tif 000030
【図２５】
2019114034.tif 000031
【図２６】
2019114034.tif 000032