(57)【要約】      （修正有）【課題】ジャギーの発生を抑制することができるコンピュータプログラム、画像処理装置、方法を提供する。【解決手段】ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する。３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成し、変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する。座標オフセット値を既に設定された値と異なる値に更新しながら変換後ボクセル画像の生成と暫定レンダリング画像の生成とを一回以上繰り返し、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する。【選択図】なし【特許請求の範囲】
【請求項１】
コンピュータに、レイキャスティング法を用いたボリュームレンダリング処理を実行させるためのコンピュータプログラムであって、
コンピュータに、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理と、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する処理と、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理と、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返す処理と、
生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
前記変換後ボクセル画像のボクセルの整数のｘｙｚ座標の少なくとも一つの座標値に実数の座標オフセット値を加算した座標値に対して前記所定の座標変換の逆変換を行ってｘｙｚ座標の実数値を算出する処理と、
算出したｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とする前記３次元ボクセル画像の複数のボクセルを特定する処理と、
特定した前記３次元ボクセル画像の複数のボクセルのボクセル値を補間して前記変換後ボクセル画像を生成する処理と、
前記変換後ボクセル画像を生成した後に、前記座標オフセット値を変更する処理と
を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
前記３次元ボクセル画像のボクセルの座標値に該ボクセルの座標間隔の２分の１以下の座標オフセット値を加える処理を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
前記複数の暫定レンダリング画像の対応する各画素の画素値を平均化して前記レンダリング画像を生成する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
コンピュータに、
所定の視点から仮想光線を前記変換後ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルに対応する前記３次元ボクセル画像のＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値として暫定レンダリング画像を生成する処理を実行させる請求項１から請求項４のいずれか一項にコンピュータプログラム。
【請求項６】
コンピュータに、
前記３次元ボクセル画像のボクセルの不透明度に関する勾配ベクトルを算出する処理と、
算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、
算出した陰影値に基づいて前記ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項１から請求項５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
コンピュータに、
前記３次元ボクセル画像のボクセルの不透明度と、該ボクセルの前記３次元ボクセル画像における近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する処理と、
前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理と
を実行させる請求項６に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、
特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、
前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、
前記ｘｙ平面画像の圧縮された画素値に対してＲＧＢ値及び不透明度が定められ、圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理と
を実行させる請求項１から請求項７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
コンピュータに、
ｘｙｚ軸の回転角、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率、注視点から視点までの距離を含む前記所定の座標変換のパラメータを取得する処理と、
前記３次元ボクセル画像に対して、取得したパタメータを用いた前記所定の座標変換を行って変換後ボクセル画像を生成する処理と
を実行させる請求項１から請求項８のいずれか一項に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、
前記３次元ボクセル画像のボクセルのｘｙｚ座標が前記対象領域外にある場合、前記ボクセルのＲＧＢ値及び不透明度を所定値に設定する処理と
を実行させる請求項１から請求項９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理装置であって、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成するボクセル画像生成部と、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する変換後ボクセル画像生成部と、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する暫定レンダリング画像生成部と、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像を生成する処理と前記暫定レンダリング画像を生成する処理とを一回以上繰り返す複数画像生成制御部と、
生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成するレンダリング画像生成部と
を備える画像処理装置。
【請求項１２】
レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理方法であって、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成し、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成し、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成し、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返し、
生成された複数の暫定レンダリング画像に基づいてレンダリング画像を生成する画像処理方法。
【請求項１３】
３次元ボクセル画像のデータであって、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応するボクセルのボクセルデータであって、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成され、
前記ボクセルの不透明度に関する勾配ベクトル及び所定の光源ベクトルに基づく前記ボクセルの陰影値によって補正されたＲＧＢ値を有するデータ構造を有し、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する処理と、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理と、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返す処理と、
生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理と
を実行するのに用いられる３次元ボクセル画像のデータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラム、画像処理装置、画像処理方法及び３次元ボクセル画像のデータに関する。
【背景技術】
【０００２】
医療分野においては、ＣＴ（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：関心領域）の値を取得する。座標変換のパラメータ、ＲＯＩ値の詳細は後述する。
【００１８】
記憶部１１は、入力部１０で取得したデータ、画像処理部２０での処理結果などを記憶することができる。なお、カラーマップデータ、座標変換パラメータ、ＲＯＩ値などを予め記憶部１１に記憶する構成でもよい。
【００１９】
出力部１２は、画像処理部２０での処理結果、例えば、レイキャスティング処理部２５で生成したレンダリング画像の画像データを表示装置（不図示）に出力する。
【００２０】
階調圧縮処理部２１は、ＤＩＣＯＭ形式の断層画像を、例えば、８ビットの階調圧縮断層画像にする。
【００２１】
図５は本実施の形態のレイキャスティング装置１００による階調圧縮処理の一例を示す説明図である。階調圧縮処理部２１は、複数のスライス画像のうちの所定のスライス画像の画素の最小値及び最大値を特定する。例えば、１からＳｚまでのスライス画像のうち、Ｓｚ／２番目の中間のスライス画像における全ての画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定することができる。なお、所定のスライス画像としては、本来は全てのスライス画像における全ての画素の最小値及び最大値を特定する方法が正確である。しかし、その場合は、一旦全ての大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持する必要が生じ、階調圧縮効果が半減する。また、この最小値Ｄｍｉｎ及び最大値Ｄｍａｘは階調圧縮のパラメータに使用するだけで、８ビットの階調圧縮断層画像の精度には直接影響しない。そこで、単一のスライス画像の画素の最小値及び最大値を用いて、おおまかに特定する方法をとる。ただし、先頭のスライス画像では被写体が適切に映っていない場合が多いため、中間のスライス画像だけで最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定する方法をとる。これにより、大容量の１６ビットのＤＩＣＯＭ形式の断層画像をメモリに保持することなく８ビットの階調圧縮断層画像だけをメモリに直接構築することができる。
【００２２】
８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）は、Ｄ８（ｘ，ｙ，ｚ）＝（Ｄｏ（ｘ，ｙ，ｚ）−Ｌｍｉｎ）・２５５／（Ｌｍａｘ−Ｌｍｉｎ）という式により生成することができる。ただし、Ｄ８（ｘ，ｙ，ｚ）＞２５５の場合は、Ｄ８（ｘ，ｙ，ｚ）＝２５５とし、Ｄ８（ｘ，ｙ，ｚ）＜０の場合は、Ｄ８（ｘ，ｙ，ｚ）＝０とする。ここで、Ｌｍｉｎ＝（Ｄｍａｘ−Ｄｍｉｎ）・γ＋Ｄｍｉｎ、Ｌｍａｘ＝（Ｄｍａｘ−Ｄｍｉｎ）・（１−γ）＋Ｄｍｉｎである。γは階調圧縮画像のコントラスト調整幅で、０に近いほどコントラストは増大するが輝度は小さくなる。通常は、γ＝０．１に設定する。レンダリング像の輝度コントラストは、例えば、カラーマップデータなどの種々の設定で調整することができるので、γは固定値でよい。また、０≦Ｄ８（ｘ，ｙ，ｚ）≦２５５、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１である。また、ｘｙ方向の解像度はＲｘｙ、ｚ方向の解像度はＲｚである。
【００２３】
なお、８ビットの階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）に対しては、図４に示すカラーマップＣｍａｐ８（ｖ，ｃ）を適用することができる。
【００２４】
上述のように、階調圧縮処理部２１は、複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値Ｄｍｉｎ及び最大値Ｄｍａｘを特定し、特定した最大値よりも小さい上限値Ｌｍａｘ及び特定した最小値よりも大きい下限値Ｌｍｉｎを算出する。階調圧縮処理部２１は、複数のｘｙ平面画像の各画素の画素値の上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲内を圧縮する。すなわち、階調圧縮処理部２１は、上限値Ｌｍａｘ及び下限値Ｌｍｉｎの範囲を、例えば、２５６段階に圧縮し、上限値Ｌｍａｘ以上は２５５にし、下限値Ｌｍｉｎ以下は０にする。
【００２５】
ボクセル構造体生成部２３は、ボクセル画像生成部としての機能を有し、ＲＧＢ値及び不透明度αが定められ、複数のｘｙ平面画像それぞれの各画素に対応するボクセルで構成される３次元ボクセル画像を生成する。より具体的には、ボクセル構造体生成部２３は、複数のｘｙ平面画像それぞれの各画素の画素値に対応するカラーマップデータのＲＧＢ値及び不透明度を対応付けてＲＧＢ値及び不透明度αを設定し、３次元ボクセル画像を生成する。以下、３次元ボクセル画像をボクセル構造体とも称する。
【００２６】
図６は本実施の形態のボクセル構造体の一例を示す模式図である。図６Ａは、後述の座標変換前のボクセル構造体を示し、図６Ｂは、座標変換後のボクセル構造体を示す。まず、座標変換前のボクセル構造体について説明する。ボクセル構造体は、ＲＧＢ値及び不透明度αの要素で構成されるベクトル値が３次元的に詰まったボリュームデータを格子状に離散化して配置したボクセルの集合である。一つのボクセルには、例えば、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）の一つの画素が対応する。座標変換前のボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）で表すと、Ｖ（ｘ，ｙ，ｚ，ｃ）＝Ｃｍａｐ（Ｄｏ（ｘ，ｙ，ｚ），ｃ）で表すことができる。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１、０≦ｃ≦３である。上述の式が意味するところは、ＤＩＣＯＭ画像Ｄｏ（ｘ，ｙ，ｚ）の画素値にカラーマップＣｍａｐ（ｖ，ｃ）を適用してボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成するということである。
【００２７】
また、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）は、階調圧縮処理部２１により階調圧縮された階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）からも生成でき、Ｖ（ｘ，ｙ，ｚ，ｃ）＝Ｃｍａｐ８（Ｄ８（ｘ，ｙ，ｚ），ｃ）で表すことができる。この式が意味するところは、階調圧縮断層画像Ｄ８（ｘ，ｙ，ｚ）の画素値にカラーマップＣｍａｐ８（ｖ，ｃ）を適用してボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成するということである。
【００２８】
平滑化処理部２２は、生成された３次元ボクセル画像に対して平滑化を行う。これは、複数のスライス画像に知覚可能な不規則なパターンが回転によりずれて重なり連結することにより発生するモアレを抑制するためである。平滑化は、３次元ボクセル画像の各ボクセルＶ（ｘ，ｙ，ｚ，ｃ）のＲＧＢ値及び不透明度を、当該ボクセル及び当該ボクセルの２６近傍ボクセルのＲＧＢ値及び不透明度の平均値に置換することにより行う。
【００２９】
３次元ボクセル画像の各ボクセルＶ（ｘ，ｙ，ｚ，ｃ）に対して、当該ボクセル及び当該ボクセルの近傍に存在する２６個の近傍ボクセルである、Ｖ（ｘ−１，ｙ−１，ｚ−１，ｃ）、Ｖ（ｘ，ｙ−１，ｚ−１，ｃ）、Ｖ（ｘ＋１，ｙ−１，ｚ−１，ｃ）、Ｖ（ｘ−１，ｙ，ｚ−１，ｃ）、Ｖ（ｘ，ｙ，ｚ−１，ｃ）、Ｖ（ｘ＋１，ｙ，ｚ−１，ｃ）、Ｖ（ｘ−１，ｙ＋１，ｚ−１，ｃ）、Ｖ（ｘ，ｙ＋１，ｚ−１，ｃ）、Ｖ（ｘ＋１，ｙ＋１，ｚ−１，ｃ）、Ｖ（ｘ−１，ｙ−１，ｚ，ｃ）、Ｖ（ｘ，ｙ−１，ｚ，ｃ）、Ｖ（ｘ＋１，ｙ−１，ｚ，ｃ）、Ｖ（ｘ−１，ｙ，ｚ，ｃ）、Ｖ（ｘ，ｙ，ｚ，ｃ）、Ｖ（ｘ＋１，ｙ，ｚ，ｃ）、Ｖ（ｘ−１，ｙ＋１，ｚ，ｃ）、Ｖ（ｘ，ｙ＋１，ｚ，ｃ）、Ｖ（ｘ＋１，ｙ＋１，ｚ，ｃ）、Ｖ（ｘ−１，ｙ−１，ｚ＋１，ｃ）、Ｖ（ｘ，ｙ−１，ｚ＋１，ｃ）、Ｖ（ｘ＋１，ｙ−１，ｚ＋１，ｃ）、Ｖ（ｘ−１，ｙ，ｚ＋１，ｃ）、Ｖ（ｘ，ｙ，ｚ＋１，ｃ）、Ｖ（ｘ＋１，ｙ，ｚ＋１，ｃ）、Ｖ（ｘ−１，ｙ＋１，ｚ＋１，ｃ）、Ｖ（ｘ，ｙ＋１，ｚ＋１，ｃ）、Ｖ（ｘ＋１，ｙ＋１，ｚ＋１，ｃ）の平均値で０≦ｃ≦３の値を置換する。即ち、ボクセルＶ（ｘ，ｙ，ｚ，ｃ）に対して平滑化されたボクセルをＶ‘（ｘ，ｙ，ｚ，ｃ）とすると、平滑化されたボクセルＶ‘（ｘ，ｙ，ｚ，ｃ）は、式（１）で算出することができる。
【００３０】
【数１】
2019145015.tif 000002
【００３１】
式（１）では０≦ｃ≦３の４つの値を平滑化しているが、ＲＧＢ値（ｃ＝０、１、２）に対しては平滑化を行わず、不透明度（ｃ＝３）の値のみを平滑化するようにしてもよい。そうすると、処理負荷が１／４に削減され、平滑化に伴う画像のボケが軽減される。
【００３２】
このようにして、３次元ボクセルＶ（ｘ，ｙ，ｚ，ｃ）に対してｘｙｚ方向の２６近傍平均値で等方性に平滑化処理を行うことにより、複数のスライス画像に知覚可能な不規則なパターンが回転によりずれて重なり連結することにより発生するモアレを抑制することができる。尚、以降の説明では、平滑化した３次元ボクセルＶ‘（ｘ，ｙ，ｚ，ｃ）を改めてＶ（ｘ，ｙ，ｚ，ｃ）と表す。
【００３３】
座標変換処理部２４は、変換後ボクセル画像生成部としての機能を有し、生成した３次元ボクセル画像に対して、入力部１０で取得した座標変換パラメータを用いて所定の座標変換を行って変換後ボクセル画像を生成する。すなわち、座標変換処理部２４は、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対して、所定の座標変換処理を施して、変換後のボクセル構造体を生成する。変換後のボクセル構造体をＶ′（ｘ，ｙ，ｚ′，ｃ）と表す。変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）は、Ｖ′（ｘ，ｙ，ｚ′，ｃ）＝Ｍａｔｒｉｘ（４×４）・Ｖ（ｘ，ｙ，ｚ，ｃ）で表すことができる。ここで、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ′≦Ｓｚ′−１、０≦ｃ≦３である。なお、ｚ′は、ｚ軸に対して解像度をｘｙ軸と一致させるような補正を施したもので、ｚ′＝ｚ・Ｒｘｙ／Ｒｚ、Ｓｚ′＝Ｓｚ・Ｒｘｙ／Ｒｚである。Ｍａｔｒｉｘ（４×４）は、座標変換を施すための変換行列であり、具体的な変換式は後述する。
【００３４】
図６Ａに示すように、レンダリング像が生成される投影面の向きと、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）のｚ軸方向が一致していないと、後述のレイキャスティング処理が複雑になる。そこで、図６Ｂに示すように、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）のｘｙｚ軸を回転させて、例えば、座標変換後のｚ′軸が投影面に対して垂直方向にすることにより、レイキャスティング処理を簡単にすることができる。
【００３５】
図７は本実施の形態のレイキャスティング装置１００による座標変換処理の一例を示す説明図である。図７に示すように、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）は、変換前のボクセル構造体をＶ（ｘ，ｙ，ｚ，ｃ）に対して、ＲＯＩによるクリッピングを行い、関心領域を設定し、その後座標変換を行うことにより求めることができる。ＲＯＩクリッピング処理部３０は、ｘ軸方向のＲＯＩとして、Ｘｓ−Ｘｅを設定し、ｙ軸方向のＲＯＩとして、Ｙｓ−Ｙｅを設定し、ｚ軸方向のＲＯＩとして、Ｚｓ−Ｚｅを設定する。ここで、０≦Ｘｓ＜Ｘｅ≦Ｓｘ−１、０≦Ｙｓ＜Ｙｅ≦Ｓｙ−１、０≦Ｚｓ＜Ｚｅ≦Ｓｚ−１である。変換前のボクセル構造体において、関心領域以外のボクセルＲＧＢ値および不透明度は全て０であるとみなして、座標変換処理を行う。
【００３６】
座標変換は、例えば、スケーリング、ｚ方向変倍処理、オフセット、回転、透視変換の順番で行うことができるが、４×４の変換行列で定義可能な範囲であれば、各処理の順番は、図７の例に限定されない。なお、後述の逆変換における各処理の順番は、座標変換での各処理の順番と逆の順番とし、前記変換行列の逆行列を施すことになる。
【００３７】
スケーリングは、ｘｙｚ軸方向で同一の拡大縮小倍率Ｓｃａｌｅを用いる。
【００３８】
ｚ方向変倍処理は、ｚ方向の画素の物理的な間隔をｘｙ方向の画素の物理的な間隔に合わせるための処理である。ｚ方向変倍処理では、ｚ方向変倍率Ｓｃｚ（＝Ｒｘｙ／Ｒｚ）を用いる。
【００３９】
オフセットは、ｘ軸方向、ｙ軸方向、ｚ軸方向に平行移動させるための処理である。オフセットでは、ｘ軸方向のオフセットＸｏｆｆ、ｙ軸方向のオフセットＹｏｆｆ、ｚ軸方向のオフセットＺｏｆｆを用いる。
【００４０】
回転は、ｘ軸回り、ｙ軸回り、ｚ軸回りに回転させるための処理である。回転では、ｘ軸中心の回転角Ｒｘ、ｙ軸中心の回転角Ｒｙ、ｚ軸中心の回転角Ｒｚ（角度の単位は全てラジアン）を用いる。
【００４１】
透視変換は、いわゆる内視鏡モードで画像を表示させるための処理である。透視変換では、注視点（原点、なお、オフセットがある場合、オフセット後の原点）からｚ軸方向の視点までの距離Ｄｉｓｔを用いる。なお、平行投影の場合には、Ｄｉｓｔ＝０と設定する。
【００４２】
上述のクリッピング、座標変換により、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の値が決定される。なお、スケーリング、ｚ方向変倍処理、オフセット、回転、透視変換の各処理は、変換行列Ｍａｔｒｉｘ（４×４）に纏めることができる。
【００４３】
本実施の形態では、座標変換サブサンプル・オフセットを加えながら、座標変換処理及び後述のレイキャスティング処理を複数回（少なくとも２回）行う。座標変換の際には、前述のｘ軸方向、ｙ軸方向、ｚ軸方向に平行移動させるオフセットに加え、座標変換サブサンプル・オフセット（請求項記載の座標オフセット値）も用いられる。前述のｘ軸方向、ｙ軸方向、ｚ軸方向に平行移動させるオフセットは、数画素単位に視覚的に判別可能なレベルに被写体を移動させるために用いるマクロな移動であるのに対し、座標変換サブサンプル・オフセットは、最大１画素の範囲で視覚的に判別不可能なレベルに被写体を微小に移動させるために用いるミクロな移動で、被写体のエッジ部に発生する画素単位の階段状のギザ（ジャギー、エリアシングと呼ばれる）を軽減するために行う。座標変換サブサンプル・オフセットは、ｘ軸方向の値をｄｘ、ｙ軸方向の値をｄｙ、ｚ軸方向の値をｄｚで表すことができる。
【００４４】
サブサンプル・オフセット設定部２８は、座標変換サブサンプル・オフセットの初期値（例えば、ｄｘ＝ｄｙ＝ｄｚ＝０）を座標変換の都度、既に設定された座標変換サブサンプル・オフセットの値と異なる値に更新して座標変換サブサンプル・オフセット値を設定する。座標変換の回数をＬ（＞１）とすると、座標変換の都度、ｄｘ＝ｄｘ＋１／Ｌ、ｄｙ＝ｄｙ＋１／Ｌ、ｄｚ＝ｄｚ＋１／Ｌという式で座標変換サブサンプル・オフセットを更新することができる。
【００４５】
座標変換処理部２４は、複数画像生成制御部としての機能も有し、ボクセル構造体生成部２３で生成された３次元ボクセル画像のボクセルの座標値に所定の座標変換サブサンプル・オフセットを加えて、入力部１０で取得した座標変換パラメータを用いて所定の座標変換を複数回（Ｌ回）行って、複数の変換後ボクセル画像を生成する。例えば、座標変換の回数を２回（Ｌ＝２）とすると、１回目の座標変換では、座標変換サブサンプル・オフセットの値はｄｘ＝ｄｙ＝ｄｚ＝０（初期値）となり、２回目の座標変換（座標変換サブサンプル・オフセットの値の更新の１回目）では、ｄｘ＝ｄｙ＝ｄｚ＝０．５となる。これにより、背景との境界や画像上のコントラストがはっきりしている箇所等のエッジ部に現れるジャギー（階段状の段差やギザギザなど）の発生を抑制することができる。
【００４６】
ただし、座標変換を複数回（Ｌ回）同時に実行して複数の変換後ボクセル画像を一度に生成する方法は、複数の変換後ボクセル画像（３次元の配列データ）を保持するための巨大なメモリ容量を必要とし、処理速度の大幅な低下を招くため現実的ではない。そこで、座標変換は１回だけ実行して、単一の変換後ボクセル画像を生成し、後述のレイキャスティング処理を行って暫定レンダリング画像の生成が終了した後に、座標変換サブサンプル・オフセットを既に設定された座標変換サブサンプル・オフセットの値と異なる値に更新した上で２回目以降の座標変換を実行し、再度、変換後ボクセル画像を生成し直す方法をとる。暫定レンダリング画像は２次元の配列データであるため、複数個保持してもメモリを圧迫することはないが、暫定レンダリング画像が生成される毎に、平均化された画素値で更新する方法をとれば、複数個の暫定レンダリング画像を保持することなく、最終的なレンダリング画像を生成することもできる。
【００４７】
３次元ボクセル画像のボクセルの座標間隔を１で表すと、座標変換サブサンプル・オフセットｄｘ、ｄｙ、ｄｚは、−０．５≦ｄｘ，ｄｙ，ｄｚ≦０．５とすることができる。すなわち、座標変換処理部２４は、３次元ボクセル画像のボクセルの座標値に当該ボクセルの座標間隔の２分の１以下の座標変換サブサンプル・オフセットを加えることができる。座標変換サブサンプル・オフセットが、１画素の範囲内であるので、座標変換による画像のぼけの発生を抑制することができる。
【００４８】
座標変換サブサンプル・オフセットは、ｘ軸方向、ｙ軸方向及びｚ軸方向の全ての方向に加えることができるが、これに限定されない。座標変換処理部２４は、ボクセル構造体生成部２３で生成された３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に座標変換サブサンプル・オフセットを加えて、所定の座標変換を行って、変換後ボクセル画像を生成してもよい。例えば、座標変換サブサンプル・オフセットをｚ軸方向にだけ加える構成でもよい。特にｚ軸方向は、ｘｙ軸方向に比べて単位距離あたりの画素数が少ないので、座標変換サブサンプル・オフセットをｚ軸方向に加えるだけでも、ジャギーの発生を抑制することができる。
【００４９】
探索制御マスク生成部２６は、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のｘｙ座標毎に、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルの不透明度αが０（透明）でない視線上の最小値及び最大値を特定する。
【００５０】
図８は本実施の形態のレイキャスティング装置１００による探索制御マスクデータ生成処理の一例を示す説明図である。図８では、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）をｘｚ′平面から見た場合を示す。投影面はｘｙ平面となる。探索制御マスク生成部２６は、探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成する。ここで、ｓ＝０（有効なボクセルの範囲の開始点）又は１（有効なボクセルの範囲の終了点）である。
【００５１】
図８に示すように、２次元座標（ｘ，ｙ）毎に、ｚ軸方向に探索対象とする有効なボクセルの範囲を設定する。有効なボクセルとは、不透明度αが０でない値を有するボクセルである。不透明度αが０とは、透明であるということであり、レンダリング像において当該ボクセルは計算対象から外され表示されない。
【００５２】
０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１の座標（ｘ，ｙ）毎に、ｚ′＝０からｚ′＝Ｓｚ′−１に向かってｚ′を一つずつ増やして、最初にＶ′（ｘ，ｙ，ｚ１，３）＞０を満たすｚ１を探索する。また、同じ座標（ｘ，ｙ）について、ｚ′＝Ｓｚ′−１からｚ′＝０に向かってｚ′を一つずつ減らして、最初にＶ′（ｘ，ｙ，ｚ２，３）＞０を満たすｚ２を探索する。すなわち、ｚ′が、少なくともｚ１とｚ２では、Ｖ′（ｘ，ｙ，ｚ′，３）＞０を満たし、ボクセルの不透明度αは０でないが、ｚ′がｚ１とｚ２の間では、Ｖ′（ｘ，ｙ，ｚ′，３）＝０となることもある。即ち、ｚ１は有効なボクセルが存在するｚ′の最小値であり、ｚ２は最大値となる。探索制御マスクデータＭ（ｘ，ｙ，ｓ）は、Ｍ（ｘ，ｙ，０）＝ｚ１となり、Ｍ（ｘ，ｙ，１）＝ｚ２となる。
【００５３】
なお、ｚ１＝ｚ２、あるいは、ｚ１、ｚ２が見つからない場合、Ｍ（ｘ，ｙ，０）＝Ｍ（ｘ，ｙ，１）＝−１とする。
【００５４】
探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成することにより、有効でないボクセルを除外して、後続のレイキャスティング処理を行うことができるので、レイキャスティング処理の負荷を軽減することができ、ボリュームレンダリング処理を高速化することができる。
【００５５】
レイキャスティング処理部２５は、暫定レンダリング画像生成部としての機能を有し、座標変換により生成された変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に対してレイキャスティング法を用いて暫定レンダリング画像を生成する。すなわち、便宜上、暫定レンダリング画像は、複数回の座標変換及びレイキャスティング処理によって、その都度生成されるレンダリング画像をいう。
【００５６】
レイキャスティング処理部２５は、レンダリング画像生成部としての機能を有し、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する。例えば、レイキャスティング処理部２５は、複数の暫定レンダリング画像の対応する各画素（各暫定レンダリング画像においてｘｙ座標が同じ各画素）の画素値を平均化してレンダリング画像を生成することができる。すなわち、複数回の座標変換とレイキャスティング処理によって生成される複数の暫定レンダリング画像を平均化（具体的には、各暫定レンダリング画像の対応する各画素の画素値の平均化）することによって、最終的な単一のレンダリング画像を生成する。この時、後述する図１２のステップＳ２８のように、暫定レンダリング画像が生成される毎に、保持されているレンダリング画像（初期状態は全ての画素の値を０に設定）と平均化しながら更新する方法をとることもでき、生成される複数の暫定レンダリング画像を全て保持する必要はない。
【００５７】
より具体的には、暫定レンダリング画像は、以下のようにして生成することができる。すなわち、レイキャスティング処理部２５は、所定の視点から所定の透過強度を有する仮想光線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に向かってｚ′方向に照射したときに、ｚ′軸上のボクセル毎に当該ボクセルの不透明度αに基づく仮想光線の吸収・減衰度を考慮しながらボクセル通過後の強度を算出し、透過強度が所定の下限以下になる最深点のボクセルを決定する。そして、最深点のボクセルより視点方向に仮想光線が通過した各ボクセルを逆に辿りながら、各ボクセルのＲＧＢ値及び不透明度αを基にＲＧＢ値を、当該視線が投影面と交差する画素の画素値として暫定レンダリング画像を生成する。仮想光線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に向かってｚ′方向に照射し、最深点のボクセルを決定する過程で、各ボクセルのＲＧＢ値及び不透明度α並びに仮想光線の透過強度の積を累積加算することにより、投影面と交差する画素の画素値を同時に算出する方法もとれる。本願では後者の方法に基づいて以下説明する。
【００５８】
図９は本実施の形態のレイキャスティング装置１００による平行投影の場合のレイキャスティング処理の一例を示す説明図である。図９では、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）を３次元的にボクセルデータが詰まった立方体として図示している。変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のｘｙ軸に平行な投影面（レンダリング像）が、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）から所要距離だけ離隔して配置されているとする。図９のように、視点が無限遠点に位置する場合が一般的に使用される平行投影で（本来はＤｉｓｔ＝∞であるが、本願ではＤｉｓｔ＝０と設定）、視点からボクセル構造体内部に向かう全ての視線がｚ′軸と平行になる。レイキャスティング処理（ボリュームレンダリング）では、不透明度αに基づいて半透明表示（αブレンディング）を行うことによって、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部を可視化する。すなわち、可視化は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルが有するボクセル値（ＲＧＢ値及び不透明度α）によって実現される。
【００５９】
図１０は本実施の形態のレイキャスティング装置１００による透視投影の場合のレイキャスティング処理の一例を示す説明図である。図１０のように視点が投影面に比較的接近している場合（本願ではＤｉｓｔ＞０）が透視投影で、内視鏡表示の際は、投影面や視点がボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部に没入することもある。図９の場合と同様に、レイキャスティング処理（ボリュームレンダリング）では、不透明度αに基づいて半透明表示（αブレンディング）を行うことによって、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部を可視化する。すなわち、可視化は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセルが有するボクセル値（ＲＧＢ値及び不透明度α）によって実現される。
【００６０】
図９及び図１０に示すように、視点から視線を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の内部に伸ばし、視線上にあるサンプリング点（ボクセル）において当該ボクセルのＲＧＢ値と不透明度αに基づいてＲＧＢ輝度値を視線に沿って累積計算し、累積計算した値を、当該視線が投影面と交差する位置のピクセル（画素の画素値）として暫定レンダリング像を生成する。この際に、前述の探索制御マスクＭ（ｘ，ｙ，０）とＭ（ｘ，ｙ，１）との間のｚ′について累積計算を行う。レイキャスティング処理の詳細は後述する。
【００６１】
次に、本実施の形態のレイキャスティング装置１００の動作について説明する。
【００６２】
図１１及び図１２は本実施の形態のレイキャスティング装置１００によるレイキャスティング処理の手順の一例を示すフローチャートである。以下では、便宜上、処理の主体を画像処理部２０として説明する。画像処理部２０は、ＤＩＣＯＭ画像の画像データを取得し（Ｓ１１）、カラーマップデータを取得する（Ｓ１２）。なお、カラーマップデータは、図３、図４で例示したものである。
【００６３】
画像処理部２０は、座標変換パラメータを取得し（Ｓ１３）、ｘｙｚ方向のＲＯＩ値を取得する（Ｓ１４）。なお、座標変換パラメータ、ＲＯＩ値は、図７で例示したものである。画像処理部２０は、ＤＩＣＯＭ画像の階調圧縮処理を行い（Ｓ１５）、階調圧縮断層画像Ｄ８に対してカラーマップ定義を行う（Ｓ１６）。カラーマップ定義は、階調圧縮断層画像Ｄ８の画素値に対して、ＲＧＢ値及び不透明度αを定義する。なお、ステップＳ１５の処理は必須ではなく、ステップＳ１５の処理を実施しない場合には、ＤＩＣＯＭ画像に対してカラーマップ定義を行えばよい。ただし、カラーマップはＣＴ画像の場合、見たい部位ごとに汎用的に定義することが可能で、与えられたＤＩＣＯＭ画像に依存して定義されるものではないため、ステップＳ１６の処理を省略し、あらかじめ定義されたカラーマップを流用することもできる。
【００６４】
画像処理部２０は、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）を生成し（Ｓ１７）、生成されたボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対して平滑化処理を行う（Ｓ１８）。なお、ステップＳ１８の処理は必須ではなく、不透明度αの値に対してのみ平滑化処理を行ってもよい。画像処理部２０は、陰影計算を行うか否かを判定する（Ｓ１９）。陰影計算はオプションとすることができる。陰影計算を行う場合（Ｓ１９でＹＥＳ）、画像処理部２０は、陰影計算（ボクセルの陰影値の算出）を行う（Ｓ２０）。陰影計算を行わない場合（Ｓ１９でＮＯ）、画像処理部２０は、後述のステップＳ２１の処理を行う。
【００６５】
ボクセルの陰影値の算出は、以下のようにすることができる。すなわち、画像処理部２０は、ボクセル構造体のボクセルの不透明度に関する勾配ベクトルを算出し、算出した勾配ベクトル及び所定の光源ベクトルに基づいてボクセルの陰影値を算出する。
【００６６】
より具体的には、画像処理部２０は、ボクセル構造体のボクセルの不透明度と、当該ボクセルの近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する。画像処理部２０は、ボクセルと近傍ボクセルとの距離並びにボクセル及び近傍ボクセルそれぞれの不透明度の差分に基づいてボクセルの勾配ベクトルを算出する。この場合、近傍ボクセルとの距離を用いるにあたり、ＸＹ方向とＺ方向の解像度が異なることを考慮し、画像処理部２０は、勾配ベクトルのｚ軸方向の成分をｚ軸方向の変倍率Ｒｘｙ／Ｒｚで補正することが必要である。
【００６７】
光源ベクトル（Ｌｘ，Ｌｙ，Ｌｚ）は、例えば、（Ｌｘ，Ｌｙ，Ｌｚ）＝（０．５７７３５，０．５７７３５，０．５７７３５）の如く、平行光源で単位ベクトルとして指定する。また、環境光成分をＡｂとする。ここで、０≦Ａｂ≦１である。例えば、Ａｂ＝０．２とする。
【００６８】
０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、０≦ｚ≦Ｓｚ−１の範囲のボクセル（ｘ，ｙ，ｚ）の勾配ベクトル（Ｇｘ，Ｇｙ，Ｇｚ）は、式（２）、（３）、（４）で算出することができる。本実施の形態では、近傍ボクセルとして２６近傍のボクセル値と中央のボクセルのボクセル値との差分により高精度に勾配ベクトルを算出することができる。近傍ボクセルは２６近傍に限らず、例えば６近傍（ｘｙｚ各座標軸方向において２近傍）としてもよい。勾配ベクトルを算出する際に、ボクセルは座標変換前でｚ方向変倍処理が行われていないため、ｘｙ方向とｚ方向とでは解像度が異なる点に留意し、勾配ベクトルのｚ方向成分Ｇｚの変倍補正（Ｒｘｙ／Ｒｚの乗算）を行う。
【００６９】
【数２】
2019145015.tif 000003
【００７０】
Ｇ＝｛Ｇｘ2 ＋Ｇｙ2 ＋Ｇｚ2 ｝1/2 とする（Ｇｘの２乗とＧｙの２乗とＧｚの２乗との和の平方根をＧとする）。Ｇ≧１の場合、陰影値Ｓ（ｘ，ｙ，ｚ）は、拡散反射成分のみ算出し、式（５）で与えられる。これにより、視線ベクトルを変更してボクセルを回転させると、立体感を表現することができる。なお、視線を変えても、座標の回転処理を行う前であり、勾配ベクトルは変化しないので、鏡面反射成分は加えない。
【００７１】
Ｇ＜１の場合、あるいは、ｘ＝０またはｘ＝Ｓｘ−１またはｙ＝０またはｙ＝Ｓｙ−１またはｚ＝０またはｚ＝Ｓｚ−１（すなわち、境界部のボクセル）の場合、陰影値Ｓ（ｘ，ｙ，ｚ）として０（所定値）を与える。
【００７２】
画像処理部２０は、算出した陰影値に基づいてボクセルのＲＧＢ値を補正する。陰影計算後のボクセルをＶ′（ｘ，ｙ，ｚ，ｃ）で表すと、ボクセルのＲＧＢ値の補正は、０≦ｃ≦２の範囲で式（６）を適用することにより行うことができる。すなわち、ボクセル構造体のｃ＝０，１，２の成分を改変する。なお、陰影計算を行わない場合には、式（６）において、陰影値Ｓ（ｘ，ｙ，ｚ）は、１となる。
【００７３】
座標変換は一般に実数演算で行われるが、座標変換後の座標値はボクセル座標という離散的な値に整数化され、この過程で丸め誤差が累積し、周期的なパターンが生成される。この周期的なパターンは単一のスライス画像では肉眼では認識できない微弱なものであるが、本実施の形態のように複数のスライス画像が積層された画像を合成しようとすると、たとえ各スライス画像が座標変換によりずれていても、パターンの周期性の位相条件を満たせば干渉縞が生成され、肉眼的に顕著なモアレとして認識される。この丸め誤差は、陰影計算時の勾配ベクトル算出により強調される。本実施の形態では、座標変換の前に陰影計算を行うので、モアレの発生を抑制することができる。
【００７４】
画像処理部２０は、座標変換サブサンプル・オフセットを初期化（ｄｘ＝ｄｙ＝ｄｚ＝０）し（Ｓ２１）、レンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）を初期化する（Ｓ２２）。レンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）の初期化は、０≦ｘ≦Ｓｘ−１、０≦ｙ≦Ｓｙ−１、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）のすべての値を０にする。画像処理部２０は、繰り返しの所定回数Ｌ（＞１）に対して繰り返し回数Ｎを１にセットする（Ｓ２３）。
【００７５】
画像処理部２０は、ボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対して座標変換処理を行い（Ｓ２４）、変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）を生成する（Ｓ２５）。なお、座標変換処理の詳細は後述する。
【００７６】
画像処理部２０は、探索制御マスクデータＭ（ｘ，ｙ，ｓ）を生成し（Ｓ２６）、レイキャスティング処理を行い（Ｓ２７）、暫定レンダリング画像を生成しレンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）を更新する（Ｓ２８）。ここで、０≦Ｉｍａｇｅ（ｘ，ｙ，ｃ）≦２５５、ｃ＝０（Ｒ）、ｃ＝１（Ｇ）、ｃ＝２（Ｂ）である。レンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）の更新は、ステップＳ２４からＳ２７までの１回の処理によって、１個の暫定レンダリング画像を生成し、座標変換サブサンプル・オフセットを既に設定された値と異なる値に更新しながら当該ステップＳ２４からＳ２７までの処理を所定回数Ｌだけ繰り返すことによって生成したＬ個の暫定レンダリング画像の各画素の画素値を平均化して最終的な一つのレンダリング画像を生成するための処理である。ただし、レンダリング画像Ｉｍａｇｅ（ｘ，ｙ，ｃ）の更新を行った後は、暫定レンダリング画像は不要になるため、Ｌ個の暫定レンダリング画像を全て保持する必要はない。
【００７７】
複数回の座標変換の都度、座標変換サブサンプル・オフセットを更新して座標変換とレイキャスティング処理とが繰り返されることにより、モアレの発生を抑制することができる。一方、別の実施形態として、座標変換だけを複数回繰り返し行った後に、生成される複数の変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の各ボクセルを平均化し、平均化された変換後ボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に基づいてレイキャスティング処理を１回だけ実施する方法が考えられる。この方法の方が前述の実施形態より処理負荷が格段に小さいが、この場合では、ジャギーの発生を抑制することができるが、ストライプ・格子状のモアレが発生する。従って、処理負荷は増大するが、座標変換サブサンプル・オフセットを含む座標変換とレイキャスティング（レンダリング）を複数回行うことにより、ジャギーの発生とストライプ・格子状のモアレの発生を抑制することができる。なお、レイキャスティング処理の詳細は後述する。
【００７８】
画像処理部２０は、繰り返し回数Ｎが所定回数Ｌであるか否かを判定する（Ｓ２９）。繰り返し回数Ｎが所定回数Ｌでない場合（Ｓ２９でＮＯ）、画像処理部２０は、繰り返し回数Ｎに１を加算し（Ｓ３０）、座標変換サブサンプル・オフセットを更新し（Ｓ３１）、ステップＳ２４以降の処理を続ける。座標変換サブサンプル・オフセットの更新は、ｄｘ＝ｄｘ＋１／Ｌ、ｄｙ＝ｄｙ＋１／Ｌ、ｄｚ＝ｄｚ＋１／Ｌという式により行うことができる。ここで、Ｌは所定回数である。繰り返し回数Ｎが所定回数Ｌである場合（Ｓ２９でＹＥＳ）、画像処理部２０は、処理を終了する。
【００７９】
上述のように、陰影計算を行う場合の本実施の形態の３次元ボクセル画像のデータは、ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応するボクセルのボクセルデータであって、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成され、前記ボクセルの不透明度に関する勾配ベクトル及び所定の光源ベクトルに基づく前記ボクセルの陰影値によって補正されたＲＧＢ値を有するデータ構造を有し、前記３次元ボクセル画像に対して所定の座標変換を行って変換後ボクセル画像を生成する処理と、前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理とを複数回行い、各回において前記座標変換を行う際、前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えるとともに、各回毎に前記座標オフセット値を変更するようにして、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理とを実行するのに用いられる。
【００８０】
図１３及び図１４は本実施の形態のレイキャスティング装置１００による座標変換処理の手順の一例を示すフローチャートである。即ち、画像処理部２０が、変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に変換行列Ｍａｔｒｉｘ（４×４）を乗算して変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）を生成する方法について以下説明する。Ｖ′（ｘ，ｙ，ｚ′，ｃ）＝Ｍａｔｒｉｘ（４×４）・Ｖ（ｘ，ｙ，ｚ，ｃ）となる式において、未知数であるＶ′（ｘ，ｙ，ｚ′，ｃ）の各要素は、既知数であるＶ（ｘ，ｙ，ｚ，ｃ）の各要素と１対１に対応しないため、この計算式に基づいて、変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に変換行列Ｍａｔｒｉｘ（４×４）を乗算しても、未知数であるＶ′（ｘ，ｙ，ｚ′，ｃ）の全ての要素を算出することはできない。そこで、Ｖ（ｘ，ｙ，ｚ，ｃ）＝Ｍａｔｒｉｘ（４×４）-1・Ｖ′（ｘ，ｙ，ｚ′，ｃ）のように未知数であるＶ′（ｘ，ｙ，ｚ′，ｃ）の要素に対応する既知数であるＶ（ｘ，ｙ，ｚ，ｃ）の要素を逆算する方法をとる。ここで、変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）の座標値（ｘ，ｙ，ｚ）、及び変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の座標値（ｘ，ｙ，ｚ′）は整数値である。変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の座標値（ｘ，ｙ，ｚ′）（整数値）に対応する変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）の実数の座標値（ｘｒ，ｙｒ，ｚｒ）を以下のようにして算出する。
【００８１】
画像処理部２０は、座標変換サブサンプル・オフセットｄｘ、ｄｙ、ｄｚを用いて、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の座標値（ｘ，ｙ，ｚ′）（整数値）を実数値（ｘｘ，ｙｙ，ｚｚ）に変換する（Ｓ１０１）。整数値（ｘ，ｙ，ｚ′）から実数値（ｘｘ，ｙｙ，ｚｚ）の変換は、式（７）、（８）及び（９）により行うことができる。ここで、座標変換サブサンプル・オフセットｄｘ、ｄｙ、ｄｚは、式（１０）の関係を満たす。
【００８２】
【数３】
2019145015.tif 000004
【００８３】
画像処理部２０は、座標値を実数値に変換したボクセル構造体Ｖ′（ｘｘ，ｙｙ，ｚｚ，ｃ）に変換行列Ｍａｔｒｉｘ（４×４）の逆行列を乗算して変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対応する座標値の実数値（ｘｒ，ｙｒ，ｚｒ）を算出する（Ｓ１０２）。
【００８４】
ステップＳ１０１、Ｓ１０２の処理は、座標値算出部２７が行うことができる。すなわち、座標値算出部２７は、変換後ボクセル構造体のボクセルのｘｙｚ座標に対して所定の座標変換の逆変換を行って当該ボクセルのｘｙｚ座標の実数値を算出する。なお、ステップＳ１０２の処理は、以下のようにして行うことができる。
【００８５】
まず、透視変換の距離Ｄｉｓｔ＞０の場合、式（１１）、（１２）、（１３）のように透視変換を行い、変換後の（ｘｘ′，ｙｙ′，ｚｚ′）を（ｘｘ，ｙｙ，ｚｚ）とする。
【００８６】
【数４】
2019145015.tif 000005
【００８７】
なお、式（１１）、（１２）、（１３）の意味は、距離Ｄｉｓｔが小さいほど、近くが拡大され、遠くが縮小される、いわゆる遠近感が強調され、距離Ｄｉｓｔが大きいほど遠近感がなくなり、距離Ｄｉｓｔが∞に設定された状態（本願ではＤｉｓｔ＝０に設定）が平行投影である。
【００８８】
次に、ｚ軸中心の回転、ｙ軸中心の回転、ｘ軸中心の回転の順（座標変換での順番と逆の順番）に逆方向の回転を順次行う。すなわち、式（１４）、（１５）による回転を行い、（ｘｘ′，ｙｙ′）を（ｘｘ，ｙｙ）に置換する。次に、式（１６）、（１７）による回転を行い、（ｚｚ′，ｘｘ′）を（ｚｚ，ｘｘ）に置換する。そして、式（１８）、（１９）による回転を行い、（ｙｙ′，ｚｚ′）を（ｙｙ，ｚｚ）に置換する。
【００８９】
スケーリング、ｚ方向変倍処理、オフセット（ｘｙｚ方向同時）を同時に行い、式（２０）、（２１）、（２２）により、変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対応する座標値の実数値（ｘｒ，ｙｒ，ｚｒ）を得る。
【００９０】
画像処理部２０は、算出した座標値（ｘｒ，ｙｒ，ｚｒ）を整数値（ｘｉ，ｙｉ，ｚｉ）と小数点以下の端数（ｗｘ，ｗｙ，ｗｚ）に分解する（Ｓ１０３）。より具体的には、補間処理部２９は、ボクセルのｘｙｚ座標の実数値と、当該実数値の小数点以下を切り捨てた整数値との差分（端数）を特定する。すなわち、更新した座標値（ｘｒ，ｙｒ，ｚｒ）を式（２３）、（２４）、（２５）のように分解する。ここで、０≦ｗｘ、ｗｙ、ｗｚ≦１とする。
【００９１】
【数５】
2019145015.tif 000006
【００９２】
ＲＯＩクリッピング処理部３０は、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標、具体的には図７に記載のＸｓ，Ｘｅ，Ｙｓ，Ｙｅ，Ｚｓ，Ｚｅを設定する。画像処理部２０は、変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）に対応する座標値の整数値（ｘｉ，ｙｉ，ｚｉ）が、クリッピング領域内にあるか否かを判定する（Ｓ１０４）。ここで、条件１として、ｘｉ＜Ｘｓまたはｘｉ＞Ｘｅまたはｙｉ＜Ｙｓまたはｙｉ＞Ｙｅまたはｚｉ＜Ｚｓまたはｚｉ＞Ｚｅの場合には、座標値の整数値（ｘｉ，ｙｉ，ｚｉ）が、更新したクリッピング領域内にないと判定（Ｓ１０４でＮＯ）、画像処理部２０は、ボクセル値を削除し（Ｓ１０５）、後述のステップＳ１１０の処理を行う。より具体的には、画像処理部２０は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）＝０とする。すなわち、ＲＧＢ値及び不透明度αを０とする。
【００９３】
座標値の整数値（ｘｉ，ｙｉ，ｚｉ）が、クリッピング領域内にある場合（Ｓ１０４でＹＥＳ）、すなわち前述の条件１を充足しない場合、画像処理部２０は、変換前のボクセル構造体に対応する座標値の整数値（ｘｉ＋１，ｙｉ＋１，ｚｉ＋１）がクリッピング領域内にあるか否かを判定する（Ｓ１０６）。条件２として、ｘｉ＋１＞Ｘｅまたはｙｉ＋１＞Ｙｅまたはｚi＋１＞Ｚｅの場合には、座標値の整数値（ｘｉ＋１，ｙｉ＋１，ｚｉ＋１）のいずれかが、クリッピング領域内にないと判定し（Ｓ１０６でＮＯ）、画像処理部２０は、補間せずに（Ｓ１０７）、後述のステップＳ１１０の処理を行う。ここで、補間しないとは、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）＝Ｖ（ｘｉ，ｙｉ，ｚｉ，ｃ）とし、座標値の整数値（ｘｉ，ｙｉ，ｚｉ）をそのまま採用することである。すなわち、ＲＧＢ値及び不透明度αを変換前のボクセル構造体の座標値（ｘｉ，ｙｉ，ｚｉ）に対応する値とする。
【００９４】
座標値の整数値（ｘｉ＋１，ｙｉ＋１，ｚｉ＋１）がクリッピング領域内にある場合（Ｓ１０６でＹＥＳ）、すなわち、座標値の整数値（ｘｉ，ｙｉ，ｚｉ）および（ｘｉ＋１，ｙｉ＋１，ｚｉ＋１）が、クリッピング領域内にある場合、画像処理部２０は、座標値の整数値（ｘｉ，ｙｉ，ｚｉ）及び座標値の整数値（ｘｉ，ｙｉ，ｚｉ）に１を加算した８組の整数値を座標値とする変換前のボクセル構造体のボクセル値に重み付け係数を乗算し、重み付け係数を乗算したボクセル値を加算してボクセル値を補間し（Ｓ１０８）、補間したボクセル値を変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセル値とし（Ｓ１０９）、後述のステップＳ１１０の処理を０≦ｃ≦３の各値に対して行う。これにより、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）の値を得る。
【００９５】
すなわち、補間処理部２９は、算出したボクセルのｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とする変換前のボクセル構造体の複数のボクセルを特定し、特定した変換前のボクセル構造体の複数のボクセルのＲＧＢ値及び不透明度に基づいて変換後ボクセル構造体のボクセルのＲＧＢ値及び不透明度を算出する。
【００９６】
補間処理部２９は、特定した変換前のボクセル構造体の複数のボクセルのＲＧＢ値及び不透明度に、特定した座標値の実数値と近傍の整数値との差分（端数）に基づく重み付け係数を乗算して変換後ボクセル構造体のボクセルのＲＧＢ値及び不透明度を算出する。
【００９７】
ステップＳ１０８、Ｓ１０９の処理は、式（２６）で表すことができる。
【００９８】
【数６】
2019145015.tif 000007
【００９９】
図１５は本実施の形態のレイキャスティング装置１００による補間処理の一例を示す模式図である。図１５において、座標（ｘｒ，ｙｒ，ｚｒ）は、変換後のボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）に対応する変換前のボクセル構造体Ｖ（ｘ，ｙ，ｚ，ｃ）の実数値の座標値である。図１５では、実数値（ｘｒ，ｙｒ，ｚｒ）が、整数値（ｘｉ，ｙｉ，ｚｉ）と端数（ｗｘ，ｗｙ，ｗｚ）とに分解されていることが分かる。そして、座標値（ｘｒ，ｙｒ，ｚｒ）の周りには、８組の整数値（ｘｉ，ｙｉ，ｚｉ）、（ｘｉ＋１，ｙｉ，ｚｉ）、（ｘｉ，ｙｉ＋１，ｚｉ）、（ｘｉ＋１，ｙｉ＋１，ｚｉ）、（ｘｉ，ｙｉ，ｚｉ＋１）、（ｘｉ＋１，ｙｉ，ｚｉ＋１）、（ｘｉ，ｙｉ＋１，ｚｉ＋１）、（ｘｉ＋１，ｙｉ＋１，ｚｉ＋１）が存在している。
【０１００】
式（２６）、図１５から分かるように、ボクセル値の補間は、実数値の座標値と整数値の座標値との端数が小さいほど、当該整数値の座標値におけるボクセル構造体のボクセル値に大きな重み付け係数が乗算される。
【０１０１】
画像処理部２０は、すべてのボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセル値を決定したか否かを判定し（Ｓ１１０）、すべてのボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセル値を決定していない場合（Ｓ１１０でＮＯ）、ステップＳ１０３以降の処理を続け、すべてのボクセル構造体Ｖ′（ｘ，ｙ，ｚ′，ｃ）のボクセル値を決定した場合（Ｓ１１０でＹＥＳ）、処理を終了する。
【０１０２】
図１６及び図１７は本実施の形態のレイキャスティング装置１００によるレイキャスティング処理の手順の一例を示すフローチャートである。画像処理部２０は、色計算のための光源Ｌｉｇｈｔ（ｃ）を設定する（Ｓ１２１）。ここで、０≦Ｌｉｇｈｔ（ｃ）≦２５５、ｃ＝０（Ｒ）、１（Ｇ）、２（Ｂ）である。画像処理部２０は、仮想光線の透過強度Ｔｒａｎｓ＝１．０に設定し、累積輝度値Ｅｎｅｒｇｙ（ｃ）＝０．０に設定する（Ｓ１２２）。
【０１０３】
画像処理部２０は、ｚ′＝Ｍ（ｘ，ｙ，１）とする（Ｓ１２３）。すなわち、ｚ′の値を探索制御マスクデータの最大値ｚ２に設定する。画像処理部２０は、ｚ′の値が０より小さいか否かを判定し（Ｓ１２４）、ｚ′＜０でない場合（Ｓ１２４でＮＯ）、不透明度α＝Ｖ′（ｘ，ｙ，ｚ′，３）／２５５とする（Ｓ１２５）。当該式により、不透明度αは、０≦α≦１となる。ｚ′＜０である場合（Ｓ１２４でＹＥＳ）、画像処理部２０は、後述のステップＳ１３２の処理を行う。画像処理部２０は、不透明度αが０であるか否かを判定し（Ｓ１２６）、不透明度α＝０の場合（Ｓ１２６でＹＥＳ）、後述のステップＳ１３０の処理を行う。
【０１０４】
不透明度αが０でない場合（Ｓ１２６でＮＯ）、すなわち、不透明度α＞０の場合、画像処理部２０は、累積輝度値の更新を行う（Ｓ１２７）。すなわち、Ｅｎｅｒｇｙ（ｃ）＝Ｅｎｅｒｇｙ（ｃ）＋Ｔｒａｎｓ・α・Ｖ′（ｘ，ｙ，ｚ′，ｃ）／２５５という式により０≦ｃ≦２の３成分の累積輝度値の更新を行う。画像処理部２０は、透過強度の更新を行う（Ｓ１２８）。すなわち、Ｔｒａｎｓ＝Ｔｒａｎｓ・（１−α）という式に依り透過強度の更新を行う。
【０１０５】
画像処理部２０は、不透明度α＝１．０であるか否か、または透過強度Ｔｒａｎｓ＜所定値であるか否を判定する（Ｓ１２９）。ここで、所定値は、０又は０に近い値（例えば、０．００１など）であればよい。不透明度α＝１．０でなく、かつ透過強度Ｔｒａｎｓ＜所定値でない場合（Ｓ１２９でＮＯ）、画像処理部２０は、ｚ′＝ｚ′−１とし（Ｓ１３０）、ｚ′の値がＭ（ｘ，ｙ，０）より小さいか否かを判定する（Ｓ１３１）。ｚ′＜Ｍ（ｘ，ｙ，０）である場合（Ｓ１３１でＹＥＳ）、画像処理部２０は、２次元座標（ｘ，ｙ）におけるＲＧＢ値を決定する（Ｓ１３２）。投影面の２次元座標（ｘ，ｙ）におけるＲＧＢ値は、Ｉｍａｇｅ（ｘ，ｙ，ｃ）＝Ｉｍａｇｅ（ｘ，ｙ，ｃ）＋ｋ・Ｅｎｅｒｇｙ（ｃ）・Ｌｉｇｈｔ（ｃ）／Ｌで計算することができる。ここで、ｋは強度倍率であり、ＲＧＢ値を補正することができる。ｋの値は、例えば、１．０とすることができるが、これに限定されない。Ｌｉｇｈｔ（ｃ）は光源のＲＧＢ値である。Ｌは座標変換処理及びレイキャスティング処理の回数（所定回数）である。
【０１０６】
不透明度α＝１．０であるか、又は透過強度Ｔｒａｎｓ＜所定値である場合（Ｓ１２９でＹＥＳ）、画像処理部２０は、ステップＳ１３０、Ｓ１３１の処理を行うことなく、ステップＳ１３２の処理を行う。また、ｚ′＜Ｍ（ｘ，ｙ，０）でない場合（Ｓ１３１でＮＯ）、画像処理部２０は、ステップＳ１２５以降の処理を行う。
【０１０７】
画像処理部２０は、すべての２次元座標のＲＧＢ値が決定されたか否かを判定し（Ｓ１３３）、すべての２次元座標のＲＧＢ値が決定されていない場合（Ｓ１３３でＮＯ）、ステップＳ１２２以降の処理を行う。すべての２次元座標のＲＧＢ値が決定された場合（Ｓ１３３でＹＥＳ）、画像処理部２０は、処理を終了する。
【０１０８】
上述のように、座標変換の都度、レイキャスティング処理部２５は、視線上の最小値ｚ１と最大値ｚ２との範囲内でボクセル毎に当該ボクセルのＲＧＢ値（Ｖ′（ｘ，ｙ，ｚ′，ｃ））、不透明度α（Ｖ′（ｘ，ｙ，ｚ′，３））、及び仮想光線の透過強度Ｔｒａｎｓの積により累積輝度値Ｅｎｅｒｇｙ（ｃ）を累積加算（更新）した値に基づいて算出されるＲＧＢ値を、視線が投影面と交差する画素の画素値として暫定レンダリング画像を生成する。レイキャスティング処理部２５は、座標変換の都度、生成した暫定レンダリング画像のＲＧＢ値を平均化して最終的なレンダリング画像を生成する。
【０１０９】
レイキャスティング処理部２５は、視線上のボクセルが最小値ｚ１と最大値ｚ２との範囲外である場合、あるいは最小値ｚ１と最大値ｚ２とが同一値である場合、あるいは最小値ｚ１又は最大値ｚ２が見つからない場合、視線が投影面と交差する画素に所定の画素値を付与してレンダリング画像を生成することができる。所定の画素値は、レイキャスティング処理を行うことなく付与できるものであればよく、例えば、背景色（Ｒｂ，Ｇｂ，Ｂｂ）とすることができる。これにより、レイキャスティング処理に係る負荷を軽減することができる。具体的には、Ｓ１３２の式に背景色の成分を加え、Ｂａｃｋ（０）＝Ｒｂ，Ｂａｃｋ（１）＝Ｇｂ，Ｂａｃｋ（２）＝Ｂｂとすると、Ｉｍａｇｅ（ｘ，ｙ，ｃ）＝Ｉｍａｇｅ（ｘ，ｙ，ｃ）＋｛Ｋ・Ｅｎｅｒｇｙ（ｃ）・Ｌｉｇｈｔ（ｃ）＋Ｂａｃｋ（ｃ）｝／Ｌとすればよい。
【０１１０】
図１８は本実施の形態の画像処理部２０の構成の他の例を示すブロック図である。図１８に示すように、画像処理部２０は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、記録媒体読取部２０４などで構成することができる。記録媒体１（例えば、ＣＤ−ＲＯＭ等の光学可読ディスク記憶媒体）に記録されたコンピュータプログラムやデータを記録媒体読取部２０４（例えば、光学ディスクドライブ）で読み取ってＲＡＭ２０３に格納することができる。ハードディスク（図示しない）に格納しコンピュータプログラム実行時にＲＡＭ２０３に格納してもよい。記憶媒体１やＲＯＭ２０２、ＲＡＭ２０３、ハードディスク等のコンピュータ可読記憶媒体は、コンピュータで実行および／または処理するための、記録された命令（コンピュータプログラム）および／またはデータをもたらす、任意の非一時的有形記憶媒体を意味する。ＲＡＭ２０３に格納されたコンピュータプログラムをＣＰＵ２０１で実行させることにより、画像処理部２０は、階調圧縮処理部２１、平滑化処理部２２、ボクセル構造体生成部２３、座標変換処理部２４、レイキャスティング処理部２５、探索制御マスク生成部２６、座標値算出部２７、サブサンプル・オフセット設定部２８、補間処理部２９、ＲＯＩクリッピング処理部３０で行う処理を実行することができる。なお、ＣＰＵ２０１は、セントラルプロセッシングユニットの略称とし、１又は複数で構成することができる。また、コンピュータプログラムやデータは、記録媒体読取部２０４で読み取る構成に代えて、インターネットなどのネットワークを介して他のコンピュータまたはネットワークデバイス等からダウンロードすることもできる。
【０１１１】
図１９は本実施の形態のレイキャスティング装置１００によるジャギー対策結果の一例を示す説明図である。図１９Ａは、比較例であり本実施の形態のジャギー対策を実施していない場合を示す。図１９Ｂは、本実施の形態のレイキャスティング装置１００の画像処理部２０により、図１１及び図１２のように、Ｌ＝２回の座標変換及びレイキャスティング処理を行った場合を示す。各回の座標変換における座標変換サブサンプル・オフセットは、１回目の処理ではｄｘ＝ｄｙ＝ｄｚ＝０に設定し、２回目の処理ではｄｘ＝ｄｙ＝ｄｚ＝０．５に設定した。なお、図１９では、陰影計算は実施していない。図１９Ａでは、下端及び右上端のエッジ部にジャギー（階段状の段差）が発生している。一方、図１９Ｂでは、これらのジャギーが消えていることが分かる。
【０１１２】
図２０は本実施の形態のレイキャスティング装置１００による陰影計算を行った場合のモアレ対策結果の一例を示す説明図である。図２０Ａは、比較例であり座標変換後にレイキャスティング処理のＳ１２７において陰影計算を行った場合を示す。図２０Ｂは、本実施の形態のレイキャスティング装置１００の画像処理部２０により、図１１及び図１２のように、座標変換前に陰影計算を行った場合を示す。図２０Ａでは、座標変換における丸め誤差が陰影計算時の勾配ベクトル算出により強調され、ストライプ・格子状のモアレが発生している。図２０Ｂではモアレが消えていることが分かる。
【０１１３】
本実施の形態のコンピュータプログラムは、コンピュータに、レイキャスティング法を用いたボリュームレンダリング処理を実行させるためのコンピュータプログラムであって、コンピュータに、ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理と、前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する処理と、前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理と、前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返す処理と、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理とを実行させる。
【０１１４】
本実施の形態のコンピュータプログラムは、コンピュータに、前記変換後ボクセル画像のボクセルの整数のｘｙｚ座標の少なくとも一つの座標値に実数の座標オフセット値を加算した座標値に対して前記所定の座標変換の逆変換を行ってｘｙｚ座標の実数値を算出する処理と、算出したｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とする前記３次元ボクセル画像の複数のボクセルを特定する処理と、特定した前記３次元ボクセル画像の複数のボクセルのボクセル値を補間して前記変換後ボクセル画像を生成する処理と、前記変換後ボクセル画像を生成した後に、前記座標オフセット値を変更する処理とを実行させる。
【０１１５】
本実施の形態のコンピュータプログラムは、コンピュータに、前記３次元ボクセル画像のボクセルの座標値に該ボクセルの座標間隔の２分の１以下の座標オフセット値を加える処理を実行させる。
【０１１６】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数の暫定レンダリング画像の対応する各画素の画素値を平均化して前記レンダリング画像を生成する処理を実行させる。
【０１１７】
本実施の形態のコンピュータプログラムは、コンピュータに、所定の視点から仮想光線を前記変換後ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルに対応する前記３次元ボクセル画像のＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値として暫定レンダリング画像を生成する処理とを実行させる。
【０１１８】
本実施の形態のコンピュータプログラムは、コンピュータに、前記３次元ボクセル画像のボクセルの不透明度に関する勾配ベクトルを算出する処理と、算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、算出した陰影値に基づいて前記ボクセルのＲＧＢ値を補正する処理とを実行させる。
【０１１９】
本実施の形態のコンピュータプログラムは、コンピュータに、前記３次元ボクセル画像のボクセルの不透明度と、該ボクセルの前記３次元ボクセル画像における近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する処理と、前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理とを実行させる。
【０１２０】
本実施の形態のコンピュータプログラムは、コンピュータに、前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、前記ｘｙ平面画像の圧縮された画素値に対してＲＧＢ値及び不透明度が定められ、圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理とを実行させる。
【０１２１】
本実施の形態のコンピュータプログラムは、コンピュータに、ｘｙｚ軸の回転角、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率、注視点から視点までの距離を含む前記所定の座標変換のパラメータを取得する処理と、前記３次元ボクセル画像に対して、取得したパタメータを用いた前記所定の座標変換を行って変換後ボクセル画像を生成する処理とを実行させる。
【０１２２】
本実施の形態のコンピュータプログラムは、コンピュータに、ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、前記３次元ボクセル画像のボクセルのｘｙｚ座標が前記対象領域外にある場合、前記ボクセルのＲＧＢ値及び不透明度を所定値に設定する処理とを実行させる。
【０１２３】
本実施の形態の画像処理装置は、レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理装置であって、ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成するボクセル画像生成部と、前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する変換後ボクセル画像生成部と、前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する暫定レンダリング画像生成部と、前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像を生成する処理と前記暫定レンダリング画像を生成する処理とを一回以上繰り返す複数画像生成制御部と、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成するレンダリング画像生成部とを備える。
【０１２４】
本実施の形態の画像処理方法は、レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理方法であって、ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成し、前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成し、前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成し、前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返し、生成された複数の暫定レンダリング画像に基づいてレンダリング画像を生成する。
【０１２５】
本実施の形態の３次元ボクセル画像のデータは、３次元ボクセル画像のデータであって、ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像のそれぞれの各画素に対応するボクセルのボクセルデータであって、前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成され、前記ボクセルの不透明度に関する勾配ベクトル及び所定の光源ベクトルに基づく前記ボクセルの陰影値によって補正されたＲＧＢ値を有するデータ構造を有し、前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する処理と、前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理と、前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返す処理と、生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理とを実行するのに用いられる。
【符号の説明】
【０１２６】
１０  入力部
１１  記憶部
１２  出力部
２０  画像処理部
２１  階調圧縮処理部
２２  平滑化処理部
２３  ボクセル構造体生成部
２４  座標変換処理部
２５  レイキャスティング処理部
２６  探索制御マスク生成部
２７  座標値算出部
２８  サブサンプル・オフセット設定部
２９  補間処理部
３０  ＲＯＩクリッピング処理部
１００  レイキャスティング装置
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記録媒体読取部
【図１】
2019145015.tif 000008
【図２】
2019145015.tif 000009
【図３】
2019145015.tif 000010
【図４】
2019145015.tif 000011
【図５】
2019145015.tif 000012
【図６】
2019145015.tif 000013
【図７】
2019145015.tif 000014
【図８】
2019145015.tif 000015
【図９】
2019145015.tif 000016
【図１０】
2019145015.tif 000017
【図１１】
2019145015.tif 000018
【図１２】
2019145015.tif 000019
【図１３】
2019145015.tif 000020
【図１４】
2019145015.tif 000021
【図１５】
2019145015.tif 000022
【図１６】
2019145015.tif 000023
【図１７】
2019145015.tif 000024
【図１８】
2019145015.tif 000025
【図１９】
2019145015.tif 000026
【図２０】
2019145015.tif 000027
【手続補正書】
【提出日】平成30年8月10日(2018.8.10)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本開示は、コンピュータプログラム、画像処理装置及び画像処理方法に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本開示は、斯かる事情に鑑みてなされたものであり、ジャギーの発生を抑制することができるコンピュータプログラム、画像処理装置及び画像処理方法を明らかにする。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、レイキャスティング法を用いたボリュームレンダリング処理を実行させるためのコンピュータプログラムであって、
コンピュータに、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する処理と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理と、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する処理と、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する処理と、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返す処理と、
生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
前記変換後ボクセル画像のボクセルの整数のｘｙｚ座標の少なくとも一つの座標値に実数の座標オフセット値を加算した座標値に対して前記所定の座標変換の逆変換を行ってｘｙｚ座標の実数値を算出する処理と、
算出したｘｙｚ座標の実数値の近傍の整数値をｘｙｚ座標とする前記３次元ボクセル画像の複数のボクセルを特定する処理と、
特定した前記３次元ボクセル画像の複数のボクセルのボクセル値を補間して前記変換後ボクセル画像を生成する処理と、
前記変換後ボクセル画像を生成した後に、前記座標オフセット値を変更する処理と
を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
前記３次元ボクセル画像のボクセルの座標値に該ボクセルの座標間隔の２分の１以下の座標オフセット値を加える処理を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
前記複数の暫定レンダリング画像の対応する各画素の画素値を平均化して前記レンダリング画像を生成する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
コンピュータに、
所定の視点から仮想光線を前記変換後ボクセル画像に向かって照射したときに、視線上のボクセル毎に該ボクセルに対応する前記３次元ボクセル画像のＲＧＢ値及び不透明度並びに前記仮想光線の透過強度の積により累積輝度値を累積加算した値に基づいて算出されるＲＧＢ値を、前記視線が投影面と交差する画素の画素値として暫定レンダリング画像を生成する処理を実行させる請求項１から請求項４のいずれか一項にコンピュータプログラム。
【請求項６】
コンピュータに、
前記３次元ボクセル画像のボクセルの不透明度に関する勾配ベクトルを算出する処理と、
算出した勾配ベクトル及び所定の光源ベクトルに基づいて前記ボクセルの陰影値を算出する処理と、
算出した陰影値に基づいて前記ボクセルのＲＧＢ値を補正する処理と
を実行させる請求項１から請求項５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
コンピュータに、
前記３次元ボクセル画像のボクセルの不透明度と、該ボクセルの前記３次元ボクセル画像における近傍に位置する複数の近傍ボクセルそれぞれの不透明度との差分を算出する処理と、
前記ボクセルと前記近傍ボクセルとの距離並びに前記ボクセル及び前記近傍ボクセルそれぞれの不透明度の差分に基づいて前記ボクセルの勾配ベクトルを算出する処理と
を実行させる請求項６に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
前記複数のｘｙ平面画像のうちの所定のｘｙ平面画像の画素の最小値及び最大値を特定する処理と、
特定した最大値よりも小さい上限値及び特定した最小値よりも大きい下限値を算出する処理と、
前記複数のｘｙ平面画像の各画素の画素値を前記上限値及び下限値の範囲内に圧縮する処理と、
前記ｘｙ平面画像の圧縮された画素値に対してＲＧＢ値及び不透明度が定められ、圧縮した前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成する処理と
を実行させる請求項１から請求項７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
コンピュータに、
ｘｙｚ軸の回転角、ｘｙｚ軸方向のオフセット値、ｘｙｚ軸方向の拡大又は縮小倍率、ｚ軸方向の変倍率、注視点から視点までの距離を含む前記所定の座標変換のパラメータを取得する処理と、
前記３次元ボクセル画像に対して、取得したパタメータを用いた前記所定の座標変換を行って変換後ボクセル画像を生成する処理と
を実行させる請求項１から請求項８のいずれか一項に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
ボリュームレンダリング処理の対象領域を画定するｘｙｚ座標を設定する処理と、
前記３次元ボクセル画像のボクセルのｘｙｚ座標が前記対象領域外にある場合、前記ボクセルのＲＧＢ値及び不透明度を所定値に設定する処理と
を実行させる請求項１から請求項９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理装置であって、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得する取得部と、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成するボクセル画像生成部と、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成する変換後ボクセル画像生成部と、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成する暫定レンダリング画像生成部と、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像を生成する処理と前記暫定レンダリング画像を生成する処理とを一回以上繰り返す複数画像生成制御部と、
生成した複数の暫定レンダリング画像に基づいてレンダリング画像を生成するレンダリング画像生成部と
を備える画像処理装置。
【請求項１２】
レイキャスティング法を用いたボリュームレンダリング処理を行う画像処理方法であって、
ｚ方向に沿って所定間隔で撮像された複数のｘｙ平面画像の画像データを取得し、
前記ｘｙ平面画像の画素の値に対してＲＧＢ値及び不透明度が定められ、前記複数のｘｙ平面画像それぞれの各画素に対応するＲＧＢ値及び不透明度を有するボクセルで構成される３次元ボクセル画像を生成し、
前記３次元ボクセル画像のボクセルの座標値の少なくとも一つの座標値に所定の座標オフセット値を加えて所定の座標変換を行って変換後ボクセル画像を生成し、
前記変換後ボクセル画像に対してレイキャスティング法を用いて暫定レンダリング画像を生成し、
前記座標オフセット値を既に設定された値と異なる値に更新しながら前記変換後ボクセル画像の生成と前記暫定レンダリング画像の生成とを一回以上繰り返し、
生成された複数の暫定レンダリング画像に基づいてレンダリング画像を生成する画像処理方法。