(58)【調査した分野】(Int.Cl.,DB名)
所定の方向に沿った複数のサンプル点各々に対応するボクセル値に基づいて、前記サンプル点のうち隣接する2つのサンプル点の間における不透明領域の境界を特定する境界特定部と、
前記境界を含む前記2つのサンプル点の間における複数のボクセル値に対する不透明度の関係に基づいて、前記境界における不透明度を決定する不透明度決定部と、
前記境界を含む前記2つのサンプル点の間における複数のボクセル値に対する色相の関係に基づいて、前記境界における色相を決定する色相決定部と、
前記不透明領域に非包含な前記サンプル点各々に対応する前記ボクセル値と、前記境界における不透明度と、前記境界における色相と、前記所定の方向に沿った前記ボクセル値に対する不透明度の第1対応表と、前記所定の方向に沿った前記ボクセル値に対する色相の第2対応表とを用いて、ボリュームデータに対してレンダリング処理を実行するレンダリング処理部と、
を具備する医用画像処理装置。
前記ボリュームデータは、X線コンピュータ断層撮影装置、磁気共鳴イメージング装置、超音波診断装置、X線診断装置のうち少なくとも一つにより発生されたデータである請求項1乃至7のうちいずれか一項に記載の医用画像処理装置。
【背景技術】
【0002】
様々な撮影方式のうち任意のもの、例えばCT(Computed Tomography)、PET(Positron Emission computed Tomography)、MRI(Magnetic Resonance Imaging)、超音波、およびX線を使用して三次元医用撮影データ(以下、ボリュームデータと呼ぶ)を作成することができるボリューム医用撮影技術は、現在、撮影または診断目的で広く使用されている。
【0003】
ボリュームデータは複数のボクセルの三次元配列を備えてもよい。複数のボクセル各々は三次元空間内における特定の位置を表す。複数のボクセル各々は1つまたは複数のデータ値を有する。例えば、CTデータの場合、複数のボクセル各々は、ボクセルによって表される位置で提供された印加X線曝射の減衰を、例えば、その位置に存在する患者の解剖学的構造の部分の減衰を表す強度値を備えてもよい。
【0004】
患者または他の物体の所望の表現を表示するためにボリュームデータを処理するために使用される多種多様なレンダリング技術が知られている。例えば、ボリュームデータは、ボリュームデータの二次元投影を表示するようにレンダリングされてもよい。二次元投影は、所望のテクスチャまたはシェーディング効果を含んでもよく、観察者に対して表面が三次元である印象を提供してもよい。
【0005】
一般に使用されているボリュームレンダリング技術は、変換関数を使用して、不透明度値および色値(通常、赤、緑、および青の色値によって表される)に対して一連のサンプリングしたボクセル値それぞれをマッピングする。レイキャスティングおよび類似の技術では、2D投影の各ピクセル(画素)に対して、二次元仮想画像面上の対応する点を通して、かつボリュームデータによって表される体積を通して、観察者の視点から仮想光線が投射される。
【0006】
完全なボリュームレンダリング積分は、実時間で正確に評価するためには複雑な場合がある。そのため、
図1に概略的に示されるように、ボリュームを通して投射される光線に沿って離散的なステップでc(s)(サンプルの色)をサンプリングする単純な数値的アプローチに戻ることが知られている。ボリュームを通る光線経路に沿った一連の(通常は、均等に間隔を空けた)サンプル点に対して、サンプル抽出点に不透明度値および色値を割り当てるために、変換関数を使用することができる。次に、サンプル抽出点の色値および不透明度値を光線経路に沿って順に組み合わせて、そのピクセルに対する単一の色値を作成するプロセスが行われる。
【0007】
例えば、第1のサンプル抽出点に対して測定された強度値に基づいて変換関数によって決定される不透明度が高い場合、仮想光線は事実上、不透明度が高い第1のサンプル抽出点を越えてボリュームを貫通しないため、対応するピクセルの色は完全に、またはほぼ完全に、第1のサンプル抽出点の色値によって決定されるべきである。一連のサンプル抽出点の第1の点の不透明度値が比較的低い場合、それに対応するピクセルの色は、蓄積された不透明度が十分に高い値に達する点までは、一連のサンプル抽出点の色値の組み合わせから決定されるべきである。
【0008】
図1に示される単純なサンプリングのアプローチは、変換関数およびサンプリングしたデータにおける変動性の影響を受けやすい。代替の既知のアプローチは、変換関数と、レンダリング器が受け取るデータサンプルとにおける変動性をいくらか説明するプレインテグレーションアプローチを使用する。プレインテグレーションは、
図2Aおよび2Bに概略的に示されるように、2Dルックアップテーブル(前部サンプル(スライス)、後部サンプル(スライス))に格納されている計算の結果と共に、サンプル間隔に対して予め計算された色を使用することを伴う。強度値およびサンプル間隔の考えられる対それぞれに対応する不透明度値および色値は、変換関数を使用して予め計算され、2Dルックアップテーブルに格納される。
【0009】
図2Aおよび2Bで前部スライス(Sf)および後部スライス(Sb)として示される光線経路に沿ったサンプルの連続的な対それぞれに対して、レンダリング器は、サンプリングした強度値の対およびサンプル間隔に対応する予め計算された色値および不透明度値を2Dルックアップテーブルから検索する。
【0010】
図2Aは、赤色10、緑色12、青色14、および不透明度16のチャンネルを有する変換関数の表現である。特定のサンプル抽出点SfおよびSbの強度は、破線によって
図2Aに示されている。SfおよびSbそれぞれに対して色および不透明度を別個に計算し、次に結果としてもたらされるインテグレーションプロセスに含めるのではなく、プレインテグレーションアプローチでは、サンプル抽出点SfおよびSbにおける値の対に対する不透明度値および色値は、2Dルックアップテーブルから直接読み出される。2Dルックアップテーブルは、2D強度プロットとして、
図2Bに図式的に表現されている。事実上、アプローチは、サンプリングした強度値の各対に対して、強度はサンプル抽出点の間の間隔内で線形的に(または他の何らかの指定された形式で)変動することを推定する。したがって、サンプリングした強度値の特定の対に対して2Dルックアップテーブルに格納された値は、2つのサンプリングした強度値の間の強度範囲に対して、変換関数の平均化した不透明度値および色値を表すものと考えられる。
【0011】
2Dプレインテグレーションを使用することによって、
図1のサンプリングアプローチによって提供される推定値(
図3Aにも示される)を、
図3Bに概略的に示されるような、より平滑な推定値に変化させることができる。しかしながら、ノイズがあるデータは依然として不正確さの原因であり得る。事実上、各ブロックはここで、(2つのサンプル間の)変換関数の予め計算した積分に置き換えられる。この計算は、ボリュームデータ、視角、および他の全てのレンダリングパラメータとは無関係に、サンプリング率および変換関数のみを前提とする。2Dプレインテグレーションアプローチは、事実上、各ピクセルに対するスライス毎のレンダリングプロセスではなく、スラブ毎のレンダリングプロセスを提供する。したがって、変換関数およびサンプル抽出されたデータにおける変動性を相殺する平滑化を提供することができる。
【0012】
例えば
図1を参照して記載されるように、単純な数値的サンプリングアプローチは、単純な数値的アプローチに関する離散化のために特定範囲ではサンプリングされない薄い皮膚層に由来する
図4Aに示される年輪状アーチファクトなどのアーチファクトをもたらす可能性がある。一方、2Dプレインテグレーションアプローチは、
図4Bに示されるように、皮膚の詳細をより正確に捕える。
【0013】
2Dプレインテグレーションアプローチの1つの限界は、精密な2Dプレインテグレーションがメモリを消費しすぎる恐れがあることである。例えば、16ビットの無符号整数の範囲に対して、浮動小数点RGBA表現には128ビット×65536
2=64ギガバイトかかる。組み合わせる前であっても、メモリに関するその要件と、何らかのセグメント化と関連付けられる処理上の要件(オブジェクト1つ当たり1つの変換関数を要することがある)は、通常、容認できない負担を意味する。
【0014】
2Dプレインテグレーションアプローチの計算時間も長くなる。積分の性質は、べき関数(x
y)など、多くの計算速度が遅い手順を伴う。この計算はまた、サンプリング率が変わるたびにやり直さなければならず、通常これは、アプリケーション開発者の管理に委ねられる。
【0015】
医療従事者が使用するための医用撮影アプリケーションなどの多くの実用目的のため、速度およびメモリの要件は重要な因子である。医師、放射線技師、看護師、およびレントゲン技師などの医療従事者は、レンダリング画像が作成されるまでに長時間待たされることを予期しておらず、実際には、デスクトップ端末で利用可能な処理資源を使用して、かかるレンダリングがほぼ瞬間的に作成されると期待していることがある。さらに、医療従事者は、一般に、変換関数の変更に結び付くレンダリングパラメータの変更を行うことを望み、または、画像を見ながらレンダリングパラメータを誘導することを望む。また、医療従事者は、通常、かかる変更後に新しいレンダリングが作成されるまでに、任意の有意な時間の間待たされることを予期していない。
【0016】
メモリおよび処理の負担を低減しながら2Dプレインテグレーションアプローチの機能性に近似するように、1Dルックアップテーブルに基づいて、1Dプレインテグレーションアプローチを採用することが提案されてきた。かかる1Dアプローチの一例は、H.Kyeらの「Interactive Classification for Pre−Integrated Volume Rendering of High−Precision Volume Data」(Graphical Models,70(2008),125〜132)に記載されている。
【0017】
H.Kyeらのものなどの1Dプレインテグレーションアプローチでは、1Dルックアップテーブルは、測定された画像データに関する可能な値それぞれ(例えば、可能な測定された強度値それぞれ)に対応するものとして、予め計算された色および不透明度の値を有する。場合によっては、1Dルックアップテーブルは、測定された画像データよりも低い解像度を有することがある(例えば、整数強度値に対する入力のみを格納していることがある)が、格納された値は所望であれば補間されてもよい。事実上、1Dルックアップテーブルは、2Dプレインテグレーションアプローチと同様に、サンプリングした強度値の対に対して変換関数を使用して予め計算された色値および不透明度値を格納すると考えてもよいが、この場合、対の強度値のうち1つは常に、ゼロまたは他の何らかの共通値に設定される。
【0018】
場合によっては、1Dルックアップテーブルは、一方の1Dルックアップテーブルが0と一連の画像データ値(例えば、強度値)との間の一連の累積積分を格納し、他方の1Dルックアップテーブルが無限(または極大値)と一連の画像データ値(例えば、強度値)との間の逆累積積分を格納する2つの関連する1Dルックアップテーブル、例えば2つの交互配置された1Dルックアップテーブルから成ることがある。
【0019】
上記の2つの段落に記載された1Dプレインテグレーションアプローチは、使用されている分類子程度の大きさの1Dルックアップテーブルを格納することが単に必要であるようなメモリ制限内に収めることができる。関与する計算は指数関数ではなく加法であり、計算がより速いので、計算時間も一般に2Dプレインテグレーションアプローチの場合よりも短い。1Dプレインテグレーションアプローチによって提供される画質も、
図1の単純なサンプリングのアプローチによって提供されるよりも良好である。
【0020】
しかし、H.Kyeらのものなどの既知の1Dプレインテグレーションアプローチ(1D方法)は、一般に、不透明度が高い場合には不正確であるサンプリングされた色の不透明度の近似を使用する。
図5Aおよび5Bのグラフは、本来の不透明度(x軸)と、正確なステップサイズで重み付けした不透明度(
図5A)と1D方法で使用される近似(
図5B)とに対する光線のステップサイズ(y軸)との関数として推定される不透明度の等高線プロットである。1.0に近い(完全な不透明に近い)不透明度値の場合、プロットはさらに異なり、即ち、1D方法で使用される近似がより悪くなり、実情に比べて高すぎる透明度(低すぎる不透明度)がもたらされることが分かる。
【0021】
高不透明度値に対する不完全な不透明度近似の影響は、例えば、H.Kyeらの「Interactive Classification for Pre−Integrated Volume Rendering of High−Precision Volume Data」(Graphical Models,70(2008),125〜132)」(Graphical Models,70(2008),125〜132)の
図6に見ることができる。そこでは、変換関数は被検体の皮膚をレンダリングするように設定される。1D方法は、本来あるべき状態よりも透明に皮膚をレンダリングする。この結果、1D方法は骨などの内部構造をレンダリングし、この場合、望ましくない異なる見方となる。1D方法においてある領域に対して計算された不透明度は、例えば、その領域内の不透明度の平均を表すことがある。したがって、不透明間隔および非不透明(透明)間隔を含む領域は、不透明でないものとして判定される。
【0022】
同様に、1D方法における高い不透明度値に対する不完全な不透明度の近似は、より鋭敏に、不透明度がより正確に近似された場合に、本来あるべき状態とは異なる色がレンダリングされる結果をもたらす場合がある。その影響は、本出願の
図6を参照して理解することができる。
図6は、不透明度20のプロットとして変換関数を、また強度の関数として赤22、緑24、および青26の色値を表している。この場合、サンプル点の1つ(
図6の矢印30によって示される)において、画像データからの強度値が、変換関数にしたがって不透明度が1.0の値に最初に達する位置(
図6の矢印28によって示される)の強度値よりもわずかに高い強度値を有する場合、結果として作成される色は、本来あるべき状態よりも高い緑の値および高い青の値を有することになる。
【0023】
上述したように、1Dプレインテグレーションアプローチの場合、特定のサンプルされた強度値に対して1Dルックアップテーブルに記憶された不透明度、ならびに赤、緑、および青に関する予め計算された値は、事実上、サンプルされた値以下の全ての強度値に対して変換関数から得られる不透明度、ならびに赤、緑、および青の値の平均である。また、1Dルックアップテーブルに記憶された不透明度、ならびに赤、緑、および青に関する予め計算された値は、事実上、無限または極大値からサンプリングした値以上の全ての強度値に対して変換関数から得られるそれらの値の平均である。
図6の例では、サンプル点の強度30に対して、1Dルックアップテーブルに記憶された不透明度、ならびに赤、緑、および青の値は、不透明度が最初にその極大値1.0に達する点28の後の、変換関数上の点からの寄与を含むことになる。しかし、実際には、被検体は点28において完全に不透明であると考えられるので、光はその点を越えて浸透しない。したがって、
図6の例では、前レンダリングプロセスが事実上、不透明なものの背後にあるものをサンプリングし、その結果として誤った色寄与をピックアップし続けるという事実により、結果として得られる色は、予期されるよりも緑および青が強くなる。
【0024】
代替のアプローチは、高勾配範囲においてより高速でサンプリングが行われる適応サンプリングを使用する。しかし、このアプローチは、一般に、変換関数の中の高周波を捕えることができず、また、並列化/予測モデルおよび現在のレンダリング技術に関与する他の仮定と干渉するため、予想よりもはるかに性能が低減する可能性がある。
【0025】
既知のレンダリングプロセスは、多くの場合、レンダリング画像にシェーディング効果および照明効果をもたらし、ならびに色またはグレースケールを各ピクセルに対して適切な値に設定する。シェーディング効果および照明効果は、通常、1つまたは複数の仮想光源の位置を指定する。次にレンダリングプロセスの一部として、レンダリング画像の各ピクセルの輝度に対する光源(1つもしくは複数)の効果を決定することによって提供される。例えばピクセルの輝度レベルによって表される適切なシェーディングは、各ピクセルについて、通常、そのピクセルの体積を通る光線経路に沿った、サンプル点それぞれの周りにおける表面の向きを分析することによって決定される。勾配ボリューム(例えば、4×4×4のボクセル量)は、各サンプル点の周りで定義されてもよく、既知の勾配決定プロセスは、勾配ボリュームのボクセルそれぞれに対する強度値に基づいて行われる。そのため、サンプル抽出点に対して結果として得られる勾配値は、後に続く積分プロセスに含まれる。後に続く積分プロセスは、光線経路に沿って順にサンプル抽出点の色値、不透明度値、およびこの場合は勾配値を組み合わせて、そのピクセルに対して単一の色およびシェーディング/輝度値を作成する。
【0026】
上述したように、サンプリングに対する既知の1Dプレインテグレーションアプローチは、近似エラーをもたらす可能性がある。近似エラーは、高不透明度値に対する不透明度の近似の過小評価を引き起こす場合がある。事実上、かかる不透明度の近似エラーによって、仮想光線が光線経路に沿って遠くまで進行しすぎる可能性がある。これは、陰影/輝度レンダリングで使用される局所的な勾配を決定するときに、付近にある表面からの干渉をもたらす可能性がある。小さなトラバースエラー(traversal errors)であっても、場合によっては破局的なシェーディングエラーをもたらす可能性がある。
【0027】
1D方法における不透明度の過小評価に起因するシェーディングエラーは、一例として、
図7A〜7Cに示されており、それらの図面は、
図1に関連して記載したもの(
図7A)、1Dルックアップテーブル方法を使用してレンダリングしたもの(
図7B)、および2Dルックアップテーブル方法を使用してレンダリングしたもの(
図7C)など、分類方法を使用してレンダリングした頭蓋骨の画像を示している。
図7Bの矢印は、1Dルックアップテーブル方法における不透明度の過小評価に起因する望ましくないテクスチャ特徴を備えるアーチファクトを含む画像の領域を指している。画像の拡大部分は、
図8A〜8Cに示される。
【0028】
1Dルックアップテーブル方法における高不透明度に対する不透明度の過小評価に起因する、レンダリング画像のエラーは、また、
図9A〜9Dを参照して理解することができる。
図9Aは、撮影データ、例えばCT撮影データの一連のボクセルによって表されるボリュームを通って投射される仮想光線経路42に沿ったサンプル点40aを示す概略図である。撮影データは、高強度(およびこの場合、変換関数によれば高不透明度)の領域44を備え、他の領域は全て低強度(したがって、この場合、変換関数によれば低不透明度)である。サンプリング点40aの周りの勾配ボリューム46aは、
図9Aに示される。任意の表面の向きを決定するため、勾配ボリューム46a内のボクセルは勾配計算プロセスに含められる。勾配計算プロセスによって得られる勾配データは、サンプル点40aと関連付けられ、後に続くインテグラルプロセスに含まれる。インテグラルプロセスは、最終的なレンダリング画像のピクセルに対して単一の色およびシェーディング/輝度値を生成するために、光線経路42に沿って順に一連のサンプル抽出点40a〜40bの色値、不透明度値、およびこの場合は勾配値を組み合わせる。
【0029】
図9A〜9Dは、サンプリングが光線経路42に沿って移動するのに伴う一連のさらなるサンプル点40b〜40dを示す。サンプリング位置それぞれに対して、不透明度および色データが1Dルックアップテーブルから得られる。勾配データは、そのサンプリング位置に対する勾配ボリューム46b〜46dの中のボクセルに対して強度データを処理することによって得られる。
【0030】
図9Cでは、サンプル点40cは高不透明度領域44に達していることが分かる。領域44の高不透明度によって、一連のサンプル点の蓄積不透明度は、光線がさらに浸透可能であるべきでないようなものである(この例では、先行する点40a、40bの不透明度が低いことにより、蓄積不透明度は点40cの不透明度に等しいことに注目することができる)。
【0031】
しかし、1Dルックアップテーブルは高不透明度領域に対して不透明度を過小評価するので、
図9Dに示されるように、サンプル点は次の位置40dへと進行する。そのサンプル点40dでは、領域44のさらなる等値面(iso−surface)が勾配ボリューム46dに入る。その結果、そのサンプル位置40dに対する勾配データの計算に影響を及ぼすので、その光線経路42に対応する最終的なレンダリング画像のピクセルにおいて、シェーディングエラーが引き起こされる。
【発明を実施するための形態】
【0036】
一実施例によれば、ボリュームを表す画像データセットから画像をレンダリングするための画像レンダリング装置(医用画像処理装置)が提供される。画像レンダリング装置は、サンプリングプロセスを行うように構成されたレンダリングユニットを有する。サンプリングプロセスは、ボリュームを通る指定経路に沿った複数のサンプル位置に対する不透明度値を決定することと、a)指定経路に沿った複数のサンプル位置に対して色/グレースケール値を決定することとb)指定経路に沿った複数の勾配位置に対して勾配値を決定することとのうち少なくとも一方と、
高不透明度状態からの遷移または高不透明度状態への遷移があるか否か、ならびにサンプリングプロセスの少なくとも一部を修正する高不透明度状態からの遷移または高不透明度状態への遷移があるか否かを決定することとを有する。レンダリングユニットは、画像のピクセルに対するピクセル値を決定するために、決定された不透明度値、色/グレースケール値、および/または勾配値を処理する。
【0037】
一実施例によれば、ボリュームを表す画像データセットから画像をレンダリングする方法が提供される。この方法は、サンプリング処理を実行すること、画像のピクセルに対するピクセル値を決定するために、決定された不透明度値、色/グレースケール値、および/または勾配値を処理することとを有する。サンプリングそりは、ボリュームを通る指定経路に沿った複数のサンプル位置に対する不透明度値を決定することと、a)前記指定経路に沿った前記複数のサンプル位置に対して色/グレースケール値を決定することとb)前記指定経路に沿った複数の勾配位置に対して勾配値を決定することとのうち少なくとも一方と、高不透明度状態からの遷移または高不透明度状態への遷移があるか否か、ならびにサンプリングプロセスの少なくとも一部を修正する高不透明度状態からの遷移または高不透明度状態への遷移があるか否かを決定することとを有する。
【0038】
一実施例によれば、ボリュームを表す画像データを処理する装置が提供される。この装置は、プレレンダリングユニットを有する。プレレンダリングユニットは、変換関数を取得し、変換関数にしたがって高不透明度領域との間での少なくとも1つの遷移の位置を決定し、高不透明度領域との間での前記少なくとも1つの遷移の決定された位置を表す少なくとも1つのマーカーを格納する。
【0039】
一実施例による医用画像処理装置は、
図10に概略的に示されている。医用画像処理装置50は、上記段落に記載された方法を実行するように構成されている。医用画像処理装置50は、処理装置52、この場合は、表示デバイス54に接続されたパーソナルコンピュータ(PC)またはワークステーションと、1つまたは複数の入力デバイス58、この場合コンピュータのキーボードおよびマウスとを備える。
図10によれば、医用画像処理装置には、CTスキャナ56が接続される。
【0040】
患者または他の被検体に対して三次元CT測定を行うことができる任意の適切なタイプのCTスキャナが使用されてもよい。
図10の実施例はCTスキャンデータに関連して記載しているが、代替実施例では、適切な前処理を条件として、任意の適切なタイプの画像データ、例えば適切な形態のMR、PET、超音波、またはX線画像データを作成する他の任意の適切なタイプのスキャナが使用されてもよい。
【0041】
処理装置52は、自動的または半自動的に画像データを処理するための処理資源を提供する。処理装置52は、中央処理装置(CPU)62を備える。中央処理装置(CPU)62は、詳細に後述するような方法を行う様々なユニットまたは他の構成要素をロードおよび実行するように動作可能である。
【0042】
ユニットは、様々な画像データプロセスのいずれか、例えば位置決め手順、セグメント化手順、所望であれば測定または診断手順を行うための、画像データ処理ユニット68を含む。ユニットはまた、受信したボリュームデータに基づいて表示画像をレンダリングするためのレンダリングユニット64と、レンダリングユニット64によるレンダリングに先立って、関連するプロセスを行うためのプレレンダリングユニット66とを含む。
【0043】
処理装置52はまた、RAM、ROM、データバス、様々なデバイスドライバを含むオペレーティングシステム、およびグラフィックカードを含むハードウェアデバイスを含む、ハードドライブおよび他の構成要素を含む。明瞭にするため、かかる構成要素は
図10には示されていない。任意の適切なCPU、および処理装置の他の構成要素は、異なる実施例で使用されてもよい。
【0044】
図10の実施例では、画像データセットは、スキャナ56によるスキャンを行った後、処理装置52によってCTスキャナ56から受信され、メモリ60に格納され、処理装置によって処理される。
図10の実施例に示されるスキャナ56はCTスキャナであるが、代替実施例では、画像データセットを得るのに他の任意の適切なタイプのスキャナを、例えばPET、MRI、超音波、またはX線スキャナのうち1つもしくは複数を使用することができる。
【0045】
図10の実施例の変形例では、処理装置52は、スキャナ56からではなく図示していないリモートデータストアから画像データセットを受信する。リモートデータストアは、ある期間にわたって多くの異なるスキャナから得られた多数の異なるデータセットを、それに関連する患者データと共に格納する。データストアは、大量の患者データを格納するサーバであってもよく、画像データ保管通信システム(PACS)などを形成してもよい。
【0046】
図10のシステムは、メモリ60、スキャナ56、またはリモートデータ源からボリュームデータを受信し、ボリュームデータの二次元投影をレンダリングするに構成される。二次元投影は、所望のテクスチャまたはシェーディング効果を含んでもよく、観察者に対して三次元の表面の印象を提供してもよい。
【0047】
レンダリングユニット64は、任意の適切なレンダリング技術、例えばレイキャスティングもしくはレイトレーシング技術に基づいた直接ボリュームレンダリングを行い、変換関数を使用して、不透明度値および色値に対してボリュームデータの強度または他のボクセル値をマッピングする。レンダリングユニットは、続いて、レンダリング画像のピクセルに対するピクセル値を決定するために、光線経路に沿ってサンプリングしたボクセルに対して結果として得られた不透明度値および色値を処理する。レンダリングユニットは、レンダリング画像のピクセルそれぞれに対してピクセル値を作成するために、複数の光線経路に対してそのプロセスを繰り返す。
【0048】
図10の実施例の特徴は、サンプル位置における不透明度値および色値を決定するためのボクセル値のサンプリングが、1Dルックアップテーブルの使用に基づくことにある。1Dルックアップテーブルは、画像データ値(例えば、ボクセル値、例えば強度値)を、色値および不透明度値、例えば赤、緑、青、およびα値にマッピングする。代替実施例では、1Dルックアップテーブルは、不透明度値と、色値ではなくグレースケール値とに対して、画像データ値をマッピングする。
【0049】
図10の実施例では、1Dルックアップテーブルはメモリ60に格納される。1Dルックアップテーブルは、H.Kyeらの「Interactive Classification for Pre−Integrated Volume Rendering of High−Precision Volume Data」(Graphical Models,70(2008),125〜132)に記載されているような処理を用いて発生される。
【0050】
1Dルックアップテーブルは、レンダリングに使用される変換関数から発生される。1Dルックアップテーブルは、変換関数が変化する度に再発生されてもよい。変換関数は、入力デバイス58を介してユーザによって修正または選択されてもよい。例えば、ユーザは、順番に変換関数で表現されるレンダリングの画像パラメータ(配色、もしくは対象の強度範囲など)を修正するために、1つもしくは複数のスライダ、ボタン、または他の制御を操作してもよい。別の方法として、またはそれに加えて、変換関数は、および変換関数に伴って関連する1Dルックアップテーブルは、複数の格納された変換関数(およびそれに関連する1Dルックアップテーブル)から選択されてもよい。
【0051】
図11は、1Dルックアップテーブルを生成し、それに関連する高不透明度領域の遷移点(不透明領域における境界)を特定するため、プレレンダリングユニット66によって実行されるプレレンダリングプロセスの概要を示すフローチャートである。
【0052】
第1の段階100で、プレレンダリングユニット66は、現在要求されているレンダリングに関係する変換関数を取得する。例えば、変換関数は、メモリ60から得られてもよく、または、例えばレンダリングの所望の特性を要求するユーザ入力に応答して、画像データ処理ユニット68によって生成されていてもよい。
【0053】
第2の段階102で、プレレンダリングユニット66は、ボクセル強度の関数として色および不透明度の値を格納する1Dルックアップテーブルを発生する。この実施例では、1Dルックアップテーブルは、例えば、H.Kyeらの「Interactive Classification for Pre−Integrated Volume Rendering of High−Precision Volume Data」(Graphical Models,70(2008),125〜132)に記載されているようなプロセスを使用して生成される。
【0054】
次に、段階104で、プレレンダリングユニット66は、高不透明度領域を特定するために、変換関数を分析する。この例では、高不透明度領域は、1.0に等しい不透明度値を有する領域とみなされる。他の実施例では、高不透明度領域は、他の何らかの不透明度閾値以上の不透明度を有する領域であってもよい。
【0055】
プレレンダリングユニット66は、次に、段階106で、任意の高不透明度領域から遷移する、および/または任意の高不透明度領域へ遷移する点(この場合、ボクセル強度値)を特定する。特定されたそれらの点はそれぞれ、高不透明度状態からの、または高不透明度状態への遷移点を表すものとしてみなされる。
図12は、ボクセル強度(この場合、CT値)に対する不透明度のプロットとして、この例における変換関数を示す。プレレンダリングユニット66は、この場合、高不透明度領域(不透明領域)を表すものとして矢印110によって示される点における強度値よりも高い全ての強度値を特定する。プレレンダリングユニット66は、高不透明度領域への遷移であるような矢印110によって示される点における強度値を特定する。プレレンダリングユニット66は、遷移点110を特定する遷移点データをメモリ60に格納する。プレレンダリングユニット66は、格納された遷移点データを、特定された遷移点に対応する変換関数および1Dルックアップテーブルと関連付ける。
【0056】
事実上、1Dルックアップテーブルが探索されてもよく、変換関数が不透明になるか、または変換関数が不透明ではなくなる点が記録される。そのことによって、これらの間隔(不透明領域)が変換関数のどこにあるか(未修正の方法の精度が最も顕著になる領域)を記録に残し、それらを具体的に扱うことが可能になる。
【0057】
1Dルックアップテーブルならびにそれに対応する変換関数および格納された遷移点は、経路に沿った一連のサンプル点に対して色および不透明度を決定するために、使用されることができる。次に、決定された色および不透明度は、その経路に対応するピクセルのピクセル色を決定するために、レンダリングユニット64によって共に処理される。そのプロセスは、段階122、124、126、128、130、132、134を備えるサンプリングプロセスを含む
図13のフローチャートを参照してより詳細に記載される。
【0058】
第1の段階120で、レンダリングユニット64は、サンプリングおよびレンダリングプロセスの対象であるボリュームデータを受信する。次の段階122で、レンダリングユニット64は、仮想画像面上のピクセル位置に対応し、ボリュームを通過する仮想光線経路に沿った一連のサンプル点それぞれにおけるボクセル強度値をサンプリングする。
【0059】
次の段階124で、レンダリングユニット64は、サンプル点のうち第1の点に対して、そのサンプル点に対して決定された強度値に対応するサンプル間隔内に遷移点があるか否かを決定する。本実施例では、決定された特定の強度値に対するサンプル間隔は、決定された強度値以下の全ての強度値に対する変換関数を備える。
【0060】
レンダリングユニット64は、格納された遷移点データとサンプル間隔を構成する強度値範囲との比較から、サンプル間隔内に遷移点があるか否かを決定する(段階126)。
【0061】
図13の例において、光線経路152に沿った第1のサンプル点(S0)の位置が
図14に概略的に示される。
図14はまた、この例における変換関数に対する強度(この場合はCT値)の関数としての不透明度のプロットを示す。サンプル点(S0)150aに関係する強度は、変換関数による不透明度値0.0に相当することが分かる。
【0062】
サンプル点(S0)のサンプル間隔154aは、この場合、0とサンプル点(S0)150aに関係する値との間の全ての強度値を包含する。サンプル点(S0)150aのサンプル間隔に対する不透明度値は全て0.0に等しく、したがって、第1のサンプル点(S0)150aのサンプル間隔154aにおいて、高不透明度領域との間での遷移点はないことが分かる。したがって、高不透明度状態への遷移はなく、プロセスは段階128に移行し、サンプル点(S0)150aの色値および不透明度値が、サンプル点(S0)150aの強度に基づいて1Dルックアップテーブルから決定される。この場合、サンプル間隔154a内の全ての強度値に対応する不透明度値がゼロなので、1Dルックアップテーブルから決定される不透明度はゼロであり、これは、サンプル間隔154aにわたる不透明度値の平均にほぼ等しい。
【0063】
次に、段階132で、サンプル点が最後のサンプル点であるか否かが決定される。この場合、サンプル点(S0)は最後のサンプル点ではないので、プロセスは、
図15における次のサンプル点(S1)150bに進む(段階134)。次いで、プロセスは、段階124に戻って、次のサンプル点(S1)150bに対してサンプル間隔内に遷移点があるか否かを決定する。
【0064】
光線経路152に沿った次のサンプル点(S1)150bの位置は、この例では、
図15に概略的に示される。
図15は、変換関数に対する強度の関数としての不透明度のプロットを再び示している。サンプル点(S1)150bにおける強度は、最初のサンプル点(S0)150aに関係する強度よりもわずかに高い。しかし、
図15からわかるように、第2のサンプル点(S1)150bにおける強度も、再び、変換関数にしたがって0.0の不透明度値に対応する。さらに、サンプル点(S1)150bに対して、サンプル間隔154b内で高不透明度領域との間の遷移はない。したがって、プロセスは、
図16Aに示す次のサンプル点(S2)150cに進む(段階134)。そして、プロセスは、段階124に戻って、次のサンプル点(S2)150cに対してサンプル間隔内に遷移点があるか否かを決定する。
【0065】
光線経路152に沿った次のサンプル点(S2)150cの位置は、
図16Aに示される。サンプル点(S2)150cにおける強度は、前の2つのサンプル点(S0)150aおよび(S1)150bにおける強度よりも大幅に高い。また、サンプル点(S2)150cにおける強度は、
図16Aで変換関数上に示される遷移点156よりも高い。この点(サンプル点(S2)150c)では、高不透明度領域(不透明領域:この場合、不透明度=1.0)への遷移はない。したがって、サンプル点S1からサンプル点S2の間に、高不透明度状態への遷移(不透明領域の境界)がある。
【0066】
サンプル点(S2)150cの不透明度が、段階128で1Dルックアップテーブルから通常のやり方で決定された場合、作成されるであろう不透明度の近似値はこの場合、0.6となる(サンプル点(S2)150cに対するサンプル間隔150cにわたる変換関数の全ての不透明度値の平均を表す)。しかし、実際には、ビームは不透明度が最初に1.0の値に達する点156を越えて進行しないので、その点の後の不透明度(および色値)を含めることによって不透明度(および色)値が不正確になることがある。したがって、異なるアプローチが採用され、高不透明度状態(不透明領域)への遷移156があるので、サンプリングプロセスが修正され、プロセスは段階128ではなく段階130に移行する。
【0067】
段階130で、
図16Bに示す遷移点156の終わり(S
opaque)として部分ステップが決定される。この場合、強度が前のサンプル点(S1)150bにおける値から現在のサンプル点(S2)150cまで線形的に増加(または減少)するという仮定が作られる。したがって、横断している光線は、(S2−S1)/(S
opaque−S1)で、不透明間隔S
opaqueの始まりに当たる。これは単に、不透明点に達するまでの最後の段階の比例である。
【0068】
次に、変換関数の検索が行われ、点(S
opaque)156に対する不透明度は、遷移点156における強度値以下の強度値に対する変換関数の不透明度値の平均であるものとして(1Dルックアップテーブルにおける値の決定と実質的に同じやり方で)決定される。この場合、決定された不透明度値は0.48(位置(S2)150cに対して1Dルックアップテーブルから決定される値0.60と比べて)である。
【0069】
同様に、変換関数の検索が行われ、点(S
opaque)156に対する色値(例えば、赤、緑、および青の色値)は、(点(S2)150cにおける遷移値以下ではなく)遷移点156における強度値以下の強度値に対する変換関数の色値の平均であるものとして決定される。
【0070】
事実上、前のサンプル(サンプル点(S2)150c)は不透明度遷移点156(不透明度領域に達する直前の色が得られる)と事前統合(プレインテグレーション)され、計算されたステップ部分にしたがって換算され、計算された色の下で不透明になる点における変換関数値と合成される。
【0071】
サンプル点の位置は、(S2)150cから遷移点(S
opaque)156に変更されていると考えることができる。この例におけるサンプル点の位置の修正によって、サンプル点に対する不透明度値および色値が修正される。
【0072】
代替実施例では、修正済サンプル点(S
opaque)156に対する不透明度値および色値は、直前および直後の(未修正)サンプル点、この場合は(S1)150bおよび(S2)150cに対して、1Dルックアップテーブルからの値を補間することによって決定される。
【0073】
次の段階132で、サンプル点が最後のサンプル点であるか否かが決定される。この例では、光線が高不透明度遷移点156を越えて進行しないので、点(S2)150c(点(S
opaque)156と置き換えられる)は最後のサンプル点であると理解される。次の段階136で、サンプル点、この場合は(S0)150a、(S1)150b、および(S
opaque)156に対して決定された不透明度および色は、既知のレンダリング技術を使用して共に処理されて、レンダリングする画像のピクセルの色が決定される。
【0074】
次に、
図13のプロセスは、レンダリングする画像の各ピクセルに対応する光線経路に対して繰り返される。
【0075】
高不透明度状態からの遷移、または高不透明度状態への遷移に関する確認を含む
図13のアプローチは、発生された遷移点に対する二分探索として実行されるようないくつかの実施例で実行されてもよい。二分探索は、いずれかのデータ値(上限閾値および下限閾値を格納している)で、変換関数の不透明間隔から外へ、または不透明間隔内へ交差し、ボリュームを横断する光線を特定する。各サンプル点において、現在のサンプルが閾値と比較され、かかる点と交差すると(実質的に、サンプリングが不透明物体を出入りすると)フラグが立てられる。
【0076】
図13に関連して記載した例は、強度の増加に伴う高不透明度(不透明領域)への遷移を有する
図12の変換関数に関連して記載されている。多くのレンダリングにおいて、可視化する解剖学的構造または物質に応じて、変換関数は、強度が増加するにつれて、高不透明度領域(不透明領域)へではなく、高透明度領域(不透明領域)から遷移することがある。
図13のプロセスは、(高不透明度領域へではなく)高不透明度領域からの遷移を等しく探索し、かかる遷移が検出されると、上述したようにサンプリングプロセスを修正することができる。
【0077】
図13に概要を示したプロセスは、医用可視化(低不透明度部分、不透明部分、およびそれら2つの間の遷移を使用する大部分)において通常使用されるタイプの変換関数に対して良好な結果を達成することができる。アプローチは、レンダリング器の内部において、局所探索方法(local heuristics)を有していてもよい。他の場合では、このアプローチは、高いパフォーマンスコストを示す。しかし、この方法は、他の場合では、場合によっては、おおよそ0〜5個の点の低頻度の探索を、ステップ毎に2つのブール比較を単に備えるに過ぎない。これを実践することのパフォーマンスインパクトは、少なくともいくつかのデータセットに対しては無視できる程度であって、顕著な画像精度が獲得されることが見出されている。
【0078】
さらなる変換関数が
図17に示されている。
図17は、測定した強度の関数としての不透明度170、赤172、緑174、および青176の値の違いを表している。変換関数は、例えば、気管内部の3Dレンダリングで使用される。
【0079】
例えば
図1を参照して記載したような、単純な数値的サンプリングアプローチは、この場合、
図18Aに示されるような年輪状または等高線アーチファクトに結び付く。アーチファクトは、単純な数値的アプローチの離散化により、気管の表面上の薄層が特定範囲ではサンプリングされないことに由来する。2Dルックアップテーブルのアプローチも、レンダリング画像の色のエラーに結び付く。この場合、薄いピンクの等値面が気管の内表面に存在するが、その等値面の後には白い物質がある(
図17の変換関数において、不透明度ピークの後に緑および青のチャンネルが上昇していることが分かる)。既知の2Dルックアップテーブルのアプローチによって結果として得られる高不透明度(不透明領域)への遷移後の領域のサンプリングのために、レンダリング画像はピンクではなく白く見えるようになる。対照的に、
図13のプロセスは、気管表面の詳細をより正確に捕え、年輪状または等高線アーチファクトを含まず、かつ所望の色表現(この場合はピンク)を有する
図18Bに示される画像を作成する。
【0080】
図13のアプローチは、局所的な変換関数情報と組み合わせてプレインテグレーションを使用する。
図13のアプローチは、場合によっては、メモリフットプリントに対する影響が無視できる程度で、パフォーマンスコストが非常に少なく、かつ、レンダリング器の構造の残りの部分に対する干渉または侵入がほとんどなく、画質における大幅な利得を達成することができる。
【0081】
特定の実施例の特徴は、高不透明度状態(不透明領域)の存在下で勾配位置の補正を提供するために、あるいはその代わりに色および不透明度の補正を提供するために、レンダリングユニット64およびプレレンダリングユニット66が、サンプリングプロセスを修正するように構成される点である。かかる実施例で行われるプロセスは、段階202、204、206、208、210、212、214、216、218を備えるサンプリングプロセスを含む
図19のフローチャートに概要が示されている。
【0082】
第1の段階200で、レンダリングユニット64は、サンプリングおよびレンダリングプロセスの対象であるボリュームデータを受信する。次の段階202で、レンダリングユニット64は、ボリュームを通過する仮想的な光線経路に沿った一連のサンプル点それぞれにおけるボクセル強度値をサンプリングする。光線経路は、仮想画像面上のピクセル位置に対応する。
【0083】
次の段階204で、レンダリングユニット64は、サンプル点のうち第1のサンプル点について、1Dルックアップテーブルから不透明度値および色値を決定する。レンダリングユニット64は、
図13に関連して記載したようなプロセスを使用して、不透明度値および色値を決定してもよい。上記プロセスにおいて、高不透明度領域(不透明領域)からの遷移、または高不透明度領域(不透明領域)への遷移がある場合、不透明度値および色値は修正される。その結果、色エラーの補正が提供される。代替実施例では、レンダリングユニット64は、所望であれば、修正せずに1Dルックアップテーブルから不透明度値および色値を読み出してもよい。
【0084】
次の段階206で、レンダリングユニット64は、サンプル点および任意の前の複数のサンプル点に対して累積不透明度値を決定する。それは、例えば、現在のサンプル点および任意の前の複数のサンプル点に対する不透明度の単純な合計であってもよい。
【0085】
次に、段階208で、累積不透明度が所定の閾値を上回るか否かが決定される。累積不透明度が閾値を上回る場合、高不透明度状態(不透明領域)への遷移があるものと理解される。この例における第1のサンプル点230aは、
図20に示されている。第1のサンプル点230aは、撮影データ、例えばCT撮影データの一連のボクセルによって表されるボリュームを通って投射される仮想光線の経路232に沿って位置付けられる。撮影データ(ボリュームデータ)は、高強度(およびこの場合、変換係数によれば高不透明度)の領域234を備え、他の領域は全て低強度(したがって、この場合、変換関数によれば低不透明度)である。
図20に示すような場合、第1のサンプル点230aは低不透明度領域にある。したがって、累積不透明度(これが第1の点なので、点230aのみの不透明度に等しい)は累積不透明度閾値未満であることが分かる。
【0086】
点230aの累積不透明度が閾値未満なので、プロセスは段階210に移行する。そして、勾配領域236aは、サンプル点230aを中心とし、サンプル点230aの周囲に決定される。この場合、サンプル点230aは、強度データの勾配が決定される勾配位置としても機能する。この例では、勾配領域236aは、サンプル点230aを中心とした4ボクセル×4ボクセル×4ボクセルの立方体であるが、他の実施例では、勾配領域の他の任意の適切なサイズまたは形状が使用されてもよい。
【0087】
次の段階212において、勾配領域236aにおける複数のボクセルに関する複数のボクセル強度値を処理することによって、サンプル点に対して勾配値が決定される。勾配値は、勾配領域内におけるボクセル強度値の三次元での変化率を表す。勾配領域内に明確に定義された表面が存在する場合、勾配値は、例えば表面の急勾配および向きを表すことになる。サンプル点230aの場合、全てのボクセルが同じ低い強度値を有するので、勾配値は、均質な領域を表すゼロの値を有することになる。
【0088】
次に、段階214で、レンダリングユニット64は、サンプル点が最後のサンプル点であるか否かを決定する。この場合、サンプル点230aは最後のサンプル点ではないので、プロセスは次のサンプル点に進み(段階216)、段階206で、次のサンプル点に対して累積不透明度を決定する。
【0089】
この例における次のサンプル点230bは
図21に示される。サンプル点230bの不透明度は、再び、1Dルックアップテーブルおよび/または
図13に関連して記載したプロセスから決定される。次に、累積不透明度が計算される。この累積不透明度は、サンプル点230aおよび230bに対する不透明度の合計である。
【0090】
サンプル点230bの不透明度は、この場合も低い。累積不透明度は、累積不透明度閾値未満である。そのため、プロセスは段階210に進み、レンダリングユニット64は、サンプル点および勾配位置230bを中心とした勾配領域236bを決定する。勾配領域236bは勾配領域236aと同じサイズおよび形状である。次に、段階212で、勾配領域236b内のボクセルの強度データから、勾配データが計算される。この場合、
図21から、勾配領域236bの1つの角が高強度領域234に入っていることが分かる。したがって、位置230bに対する勾配データの値は、位置230aに対する勾配データの値とわずかに異なるものとして計算される。
【0091】
サンプル点230bは最後のサンプル点ではない。このため、レンダリングユニット64は、次のサンプル点に進み、段階206で、次のサンプル点に対して累積不透明度を決定する。次のサンプル点230cは
図22に示される。この場合も、サンプル点230cの不透明度値は低い。また、累積不透明度値は閾値未満なので、レンダリングユニット64は、段階210および段階212を経て、サンプル点230cを中心とした勾配領域236cからサンプル点230cに対する勾配値を決定する。この場合、高強度領域(不透明領域)234に関してより大きな部分が勾配領域236cに含まれている。このため、サンプル点230cに対する勾配値はサンプル点230aおよび230bに対するものとは異なる。
【0092】
サンプル点230cは最後のサンプル点ではない。このため、レンダリングユニット64は、次のサンプル点に進み、段階206で、次のサンプル点に対して累積不透明度を決定する。次のサンプル点230dは
図23に示される。
【0093】
図23によれば、サンプル点230dは、高強度領域(不透明領域)に入っていることが分かる。1Dルックアップテーブルから決定されるサンプル点230dに対する不透明度値は、前のサンプル点230a、230b、230cに対する値よりも、サンプル点230dに対する値の方が大幅に高い。しかし、累積不透明度(この場合、サンプル点230a、230b、230c、230dに対して決定された不透明度の合計)は依然として閾値未満である。したがって、レンダリングユニット64は、段階210および212を経て、サンプル点230dを中心として勾配領域236dからサンプル点230dに対する勾配値を決定する。この場合、高強度領域234に関してさらに大きな部分が勾配領域236dに含まれているので、サンプル点230dに対する勾配値はサンプル点230a、230b、および230cに対する勾配値とは異なる。
【0094】
サンプル点230dは最後のサンプル点ではないので、レンダリングユニット64は次のサンプル点に進み、段階206で、次のサンプル点に対して累積不透明度を決定する。次のサンプル点230eは
図24に示される。
【0095】
図24によれば、サンプル点230eは、この場合もまた、高強度領域内にあることが分かる。サンプル点230eに対する不透明度値は、高い。この場合、累積不透明度(サンプル点230a、230b、230c、230d、230eに対して決定された不透明度の合計)はここで閾値を上回る。したがって、高不透明度状態に入っている。
【0096】
累積不透明度が閾値を上回ると、サンプリングプロセスは修正され、レンダリングユニットは段階210ではなく段階218に進む。段階218で、レンダリングユニットは、勾配領域236eをサンプル位置230eの後に遅らせる。
【0097】
この場合、レンダリングユニット64は、例えば、勾配位置=sample_position−ray_increment×(0.5+既に蓄積された不透明度値)という式を使用して、サンプル位置に対する勾配領域の遅れを計算する。この場合、光線増分は連続するサンプル点の間の距離を表す。不透明度値は、0.0〜1.0の範囲である(0.0は完全な透明を表し、1.0は完全な不透明を表す)。
【0098】
図24の例では、レンダリングユニット64は、サンプル点230eが勾配領域236eの縁部の外側になるように、勾配領域236e(勾配位置を中心とする)によってサンプル点230eを遅らせていることが分かる。
【0099】
次に、段階212で、勾配領域236e内のボクセルの強度データから、勾配データが計算される。サンプル点230eが勾配領域236eの外部にある場合であっても、勾配データはサンプル点230eと関連付けられる。したがって、レンダリングに対するサンプル点230eに関する色の寄与は、勾配データを決定するのに使用される勾配領域の外部にサンプル点がある場合であっても、その色の寄与に起因するシェーディングの影響を受けることになり、それによって次にシェーディングに関する寄与が決定される。
【0100】
勾配は評価位置(即ち、勾配領域の位置)の不連続性の影響を非常に受けやすいが、評価位置自体にはそこまで影響されないことが見出されている。一般に、レンダリングのアルゴリズムおよびパラメータがより連続的であるほど、結果として得られるレンダリングがより良好になることがある。
図24に示される遅れのプロセスは、ボリュームデータによって定義される任意の等値面(
図14の領域234の表面など)が勾配位置に徐々に影響を及ぼすことを可能にさせる。それによって、画像アーチファクトが低減されたより平滑なレンダリングを得ることができる。
【0101】
次の段階214で、サンプル点230eが最後のサンプル点であるか否かが決定される。この場合、サンプル点230eは最後のサンプル点ではない。レンダリングユニット64は、
図25に示される次のサンプル点230fへと移動し、色値および不透明度値を決定する。サンプル点230fの累積不透明度は当然ながら閾値よりも高いので、レンダリングユニット64は、段階218に移行して、勾配領域236fの位置を決定する。勾配領域236fは、サンプル点230fの後に遅れ続ける。この場合、
図25で分かるように、勾配領域236fは、わずかに前方に移動している。勾配領域236fは、光線経路232に沿ったサンプル点の継続的な進行にもかかわらず、高強度および高不透明度領域234の等値面の前方の一部の周りに依然として存在する。
【0102】
サンプル位置230eおよび230fの場合、勾配領域236e、236fの遅れは、勾配領域236e、236fが、強度(および、本実施形態の変換関数によれば、不透明度)が再び低下する領域234の遠い表面を含めるように拡張していないことを意味する。遠い表面を含まないことは、この場合、シェーディングアーチファクトを回避する助けとなり得る。
【0103】
次に、段階212で、勾配領域236fに対して勾配データが計算され、サンプル位置230fに対して決定された色値および不透明度値と関連付けられる。
【0104】
サンプル位置230fは最後のサンプル位置であると考えられるので、レンダリングユニット64は、段階214から段階220に移行し、サンプル位置230a、230b、230c、230d、230e、230fに対して決定された色、不透明度、および勾配を合成して、レンダリング画像のピクセルのうち1つに対するピクセル色およびシェーディングを決定する。
図19のプロセスは、画像データによって表されるボリュームを通過する他の一連の光線経路に対して繰り返される。それによって、レンダリング画像のピクセルそれぞれに対する色値およびシェーディング値が決定される。
【0105】
図19の勾配領域遅れプロセスは、場合によっては、既知の1Dプレインテグレーション方法によって発生される重大な画像アーチファクトを排除することができる。また、勾配領域遅れプロセスは、性能の劣化がほとんどまたは全くない。勾配領域遅れプロセスは、CPUレンダリングとGPUレンダリングとの両方に対して有用である。勾配領域遅れプロセスは、特に、薄い表面および小さな粒子のレンダリング画像の外観を改善することができる。
【0106】
図26Aは、
図19のプロセスにしたがってレンダリングされた、被検体の胴体領域の骨および血管系のレンダリング画像を示す。
図26Bは、勾配領域遅れがない、既知の1Dプレインテグレーション方法にしたがってレンダリングされた同じ領域のレンダリング画像であって、特に骨の領域に様々な等高線状の画像アーチファクトを含む画像を示す。
【0107】
図19に関連して記載した勾配遅れプロセスは、勾配領域をサンプル位置の後に徐々に遅れさせることができる式にしたがって、勾配領域をサンプル位置の後に遅れさせ、どの程度迅速または急速であるかに応じて、蓄積不透明度が増加する。代替実施例では、勾配領域遅れを決定するための任意の適切な式が使用されてもよい。例えば、場合によっては、一旦蓄積不透明度が閾値を上回ると、勾配領域が自動的に固定されてもよい。したがって、勾配領域は、サンプル点がボリュームを通ってさらに進む間、同じ位置に留まる。
【0108】
図10の実施例は、レンダリング中に
図13と
図19の両方のプロセスを行うことができる。
図13と
図19の両方のプロセスは、高不透明度状態(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移がある場合、サンプリングプロセスの修正を有する。
図13のプロセスの場合、高不透明度状態(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移は、変換関数におけるサンプル間隔において、高不透明度領域(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移を有する。一方、
図19のプロセスの場合、高不透明度状態(不透明領域)への遷移は、蓄積不透明度値が閾値に一致するかまたはそれを上回ることを備えてもよい。代替実施例または代替の動作モードでは、
図13および
図19のプロセスのどちらかを、他方を伴うことなく行うことができる。したがって、高不透明度領域(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移が存在する状態で、勾配領域遅れプロセスを必ずしも行うことなく、色補正を得ることができる。同様に、高不透明度領域(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移が存在する状態で、色および/または不透明度の補正プロセスを必ずしも行うことなく、勾配領域遅れプロセスを行うことができる。
【0109】
図13および
図19のプロセスは、ピクセルに対する色値の決定に関連して記載してきたが、それらおよび他の実施例を、ピクセルに対する色値ではなくグレースケールを決定するのに等しく使用することができる。
【0110】
例えば、
図13および
図19のプロセスは、CTデータの処理に関連して記載してきたが、他の任意の適切なボリュームデータ、例えばPET、MRI、超音波、またはX線撮影装置により発生されたボリュームデータが使用されてもよい。画像データは、表示用の画像を作成するように処理することができる任意のデータであってもよい。
【0111】
実施例による1Dルックアップテーブルは、パラメータの値を少なくとも1つの他のパラメータの値と関連付ける、任意のデータ構造を備えてもよい。1Dルックアップテーブルは、例えば、一連のデータベース入力および/または一連のオブジェクトもしくはオブジェクトのインスタンスであるが、それらに限定されず、任意の適切なデータ構造を備えてもよい。1Dルックアップテーブルは、単一の物理的なデータ記憶デバイスに格納されてもよく、または、同じもしくは異なる位置にある複数の物理的なデータ記憶デバイスにわたって分配されてもよい。
【0112】
いくつかの実施例の場合、各画像データ(ボリュームデータ)値に対して、変換関数のサンプル間隔はその画像データ値以下の画像データ値の範囲を備えてもよい。高不透明度領域(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移があるか否かの決定は、高不透明度領域(不透明領域)からの遷移、または高不透明度状態(不透明領域)への遷移があるか否かをサンプル点それぞれに対して決定することを備えてもよい。高不透明度領域は、例えば、不透明度が不透明度閾値以上である領域を備えてもよい。
【0113】
特定の実施例は、また、ボリュームレンダリング器において色の不正確さを低減するための方法および装置を提供する。ボリュームレンダリング器は、変換関数の不透明間隔の希薄な記録を作り出すことと、サンプルと比較するための光線の局所的閾値(そこで光線が不透明材料に入る)を探索し格納することと、事前統合(プレインテグレーション)によって計算された色を、その色が不透明点を含む情報を用いて補正することと、事前統合(プレインテグレーション)によって計算された色を用いて部分横断間隔(partially−traversed interval)にわたって蓄積色を推定することとを有する。
【0114】
特定の実施例は、また、1つもしくは複数の1Dプレインテグレーション変換関数を使用するシェーディング付きボリュームレンダリングのための方法を提供する。シェーディング付きボリュームレンダリングのための方法において、勾配は、光線位置からのオフセットで評価される。このとき、オフセットは、蓄積不透明度(例えば、α)の関数である。なお、勾配は、オフセットが隣接した等値面までの距離の関数であってもよい。また、勾配は、変換関数または予め決定された公式を使用して、不透明度(例えば、α)とは独立に、積算されてもよい。
【0115】
実施例は、関連付けられた光線間隔の不透明度の判定に基づいて、プレインテグレーションプロセスに対してサンプリングプロセスを修正することを提供してもよい。
【0116】
メモリ(記憶部)60は、第1対応表と、第2対応表と、ボリュームデータと、閾値(不透明閾値、累積不透明閾値など)と、レンダリング処理部により発生されたレンダリング画像、入力デバイス(入力部)58を貸して入力された各種指示、レンダリング処理・各種(境界、不透明度、色相、勾配値、所定領域)決定処理に関するプログラム等を記憶する。第1対応表と第2対応表とは、1Dルックアップテーブルに対応する。第1対応表は、所定の方向に沿ったボクセル値に対する不透明度の関係に基づいて予め決定された対応表である。第2対応表は、所定の方向に沿ったボクセル値に対する色相の関係に基づいて予め決定された対応表である。所定の方向とは、例えば、レンダリング処理に関する視線方向である。視線方向は、例えば、
図14、
図15、
図16A、
図16B各々における152に対応する。
【0117】
第1対応表は、視線方向に沿ったボクセル値に対する不透明度の関係(関数)を示す対応表である。第1対応表は、例えば、
図14、
図15、
図16A、
図16B各々における下方のグラフに相当する。第2対応表は、視線方向に沿ったボクセル値に対する色相の関係(関数)を示す対応表である。第2対応表は、
図17に記載のグラフに相当する。第1対応表および第2対応表は、上述した1Dルックアップテーブルの発生と同様にして発生され、記憶部60に記憶される。
【0118】
ボリュームデータにおける複数のボクセル各々におけるボクセル値は、色値、グレースケール値、輝度値のうち少なくとも一つを有する。ボリュームデータは、X線コンピュータ断層撮影装置、磁気共鳴イメージング装置、超音波診断装置、X線診断装置のうち少なくとも一つにより発生されたデータである。
【0119】
プレレンダリングユニット66は、境界特定部を有する。境界特定部は、所定の方向に沿った複数のサンプル点各々に対応するボクセル値に基づいて、サンプル点のうち隣接する2つのサンプル点(以下、隣接サンプル点と呼ぶ)の間における不透明領域の境界を特定する。不透明領域の境界とは、例えば、
図16BにおけるS
opaqueに対応する。境界特定部における処理は、例えば、
図11における段階104と段階106、
図13の段階124に対応する。
【0120】
例えば、境界特定部は、不透明度閾値と、視線方向沿ってボリュームデータからサンプリングされた複数のサンプル点にそれぞれ対応するボクセル値と、第1対応表とに基づいて、不透明領域の境界を特定する。不透明領域の境界は、ボリュームデータにおける複数のサンプル点のうち隣接サンプル点の間(以下、境界包含範囲と呼ぶ)で、特定される。視線方向において不透明領域の境界に対応する点は、例えば、透明領域(または半透明領域)から不透明領域に遷移する遷移点(例えば、
図16Aの156、
図16BのS
opaque)に相当する。
【0121】
具体的には、境界特定部は、ボクセル値に対する不透明度の関係(第1対応表)において、視線方向に沿って視点からサンプル点各々まで不透明度を累積した累積不透明度と所定の閾値とを比較することにより、境界を特定する。また、境界特定部は、所定の方向において特定された境界を、所定の方向に沿って配列するサンプル点の終点として特定する。ここで、サンプル点の終点は、不透明領域の境界とは、例えば、
図16BにおけるS
opaqueに対応する。
【0122】
レンダリングユニット64は、不透明度決定部と、色相決定部と、勾配決定部と、レンダリング処理部とを有する。なお、不透明度決定部等は、プレレンダリングユニット66に属していてもよい。また、レンダリングユニット64は、上記境界特定部を有していてもよい。
【0123】
不透明度決定部は、ボリュームデータにおいて特定された境界を含む2つのサンプル点の間における複数のボクセル値に対する不透明度の関係に基づいて、特定された境界(サンプル点の終点)における不透明度を決定する。具体的には、不透明度決定部は、ボリュームデータにおける境界包含範囲の両端に位置する2つのサンプル点におけるボクセル値と、第1対応表とに基づいて、隣接サンプル点各々における累積不透明度を決定する。
【0124】
次いで、不透明度決定部は、隣接サンプル点各々における累積不透明度と、第1対応表とに基づいて、特定された境界における不透明度を決定する。不透明度決定部は、特定された境界における不透明度を、レンダリング処理部に出力する。なお、不透明度決定部は、決定した不透明度を、色相決定部に出力してもよい。不透明度の決定に関する処理は、例えば、
図13の段階130および
図16A、
図16Bに対応する。
【0125】
勾配決定部は、サンプル点各々に関する所定領域における複数のボクセル値に基づいて、サンプル点にそれぞれ対応する複数の勾配値を決定する。ここで、所定領域とは上述した勾配領域に対応する。具体的には、勾配決定部は、まず、所定の方向(仮想的な光線経路)に沿って視点からサンプル点各々まで不透明度を累積した累積不透明度とサンプル点の位置とサンプル点の間の間隔と所定の閾値とに基づいて、サンプル点にそれぞれ対応づけられた所定領域の位置を決定する。
【0126】
次いで、勾配決定部は、所定領域に含まれる複数のボクセル値に基づいて、サンプル点にそれぞれ対応する複数の勾配値を決定する。勾配決定部は、サンプル点各々に関する勾配値を、レンダリング処理部に出力する。なお、勾配決定部は、サンプル点各々に関する勾配値を、色相決定部に出力してもよい。勾配の決定に関する処理は、例えば、
図19の各処理、
図20乃至
図25に対応する。
【0127】
色相決定部は、ボリュームデータにおいて特定された境界を含む2つのサンプル点の間における複数のボクセル値に対する色相の関係(
図17に示された第2対応表)に基づいて、特定された境界における色相を決定する。具体的には、色相決定部は、ボリュームデータにおける境界包含範囲の両端に位置する2つのサンプル点におけるボクセル値と、第1対応表と第2対応表とに基づいて、特定された境界における色相を決定する。
【0128】
なお、色相決定部は、第1対応表の代わりに、不透明度決定部により決定された不透明度を用いてもよい。色相決定部は、特定された境界において決定された色相を、レンダリング処理部に出力する。なお、色相決定部は、サンプル点各々に関連する勾配値と、第1対応表および第2対応表とを用いて、境界における色相を補正してもよい。色相の決定に関する処理は、例えば、
図13の段階130に対応する。
【0129】
レンダリング処理部は、不透明領域に非包含なサンプル点各々に対応する前記ボクセル値と、境界における不透明度と、所定の方向に沿った前記ボクセル値に対する不透明度の第1対応表とを用いて、ボリュームデータに対してレンダリング処理を実行する。例えば、レンダリング処理部は、ボリュームを通過する仮想的な光線経路(所定の方向)に沿った複数のサンプル点各々および終点における不透明度を合成することにより、レンダリング処理を実行する。レンダリング処理部は、レンダリング処理により、レンダリング画像を発生する。レンダリング処理部は、発生したレンダリング画像を、記憶部、表示部等に出力する。レンダリング処理は、例えば、
図13の段階136、
図19の段階220に対応する。
【0130】
また、レンダリング処理部は、不透明領域に非包含なサンプル点各々に対応するボクセル値と、境界における色相と、所定の方向に沿ったボクセル値に対する色相の第2対応表とをさらに用いて、レンダリング処理を実行してもよい。例えば、レンダリング処理部は、ボリュームを通過する仮想的な光線経路(所定の方向)に沿ったサンプル点各々および終点における色相を合成することにより、レンダリング処理を実行する。
【0131】
また、レンダリング処理部は、サンプル点にそれぞれ対応づけられた勾配値をさらに用いて、レンダリング処理を実行してもよい。このとき、レンダリング処理部は、勾配値に基づいて、レンダリング画像における複数の画素各々におけるシェーディング値(シェーディングの寄与)を決定する。レンダリング処理部は、決定したシェーディング値を用いて、シェーディングを伴ったレンダリング画像を発生する。
【0132】
表示デバイス(表示部)54は、レンダリング処理により発生されたレンダリング画像を表示する。表示部において表示されるレンダリング画像は、例えば、
図18Bで示された画像、
図26Aで示された画像である。
図18Bで示すように、本実施形態により発生されるレンダリング画像において、
図18Aと異なり、年輪状(等高線)アーチファクトは、ほとんど発生しない。また、
図26Aで示すように、本実施形態により発生されるレンダリング画像において、
図26Bと異なり、特に骨の領域に年輪状アーチファクトは、ほとんど発生しない。また、図示していないが、本実施形態により発生されるレンダリング画像において、シェーディングアーチファクトは、ほとんど発生しない。
【0133】
以上に述べた構成によれば、以下のような効果を得ることができる。
本実施形態に係る医用画像処理装置50によれば、レンダリング処理に用いられるボリュームデータを透過する複数の仮想的な光線経路各々における複数のサンプル点において、隣接サンプル点のボクセル値に基づいて、不透明領域の境界を決定することができる。次いで、本実施形態によれば、第1対応表を用いて、仮想的な光線経路各々における境界(サンプル点の終点)の不透明度を決定することができる。また、本実施形態によれば、境界における色相を、勾配値、第2対応表、決定された不透明度等を用いて、決定することができる。また、本実施形態によれば、仮想的な光線経路に沿って視点からサンプル点各々まで不透明度を累積した累積不透明度とサンプル点の位置とサンプル点の間の間隔と所定の閾値とに基づいて、仮想的な光線経路に沿ったサンプル点の移動より遅延させて、勾配値の計算に関する所定領域を、移動させることができる。すなわち、本実施形態によれば、累積不透明度を用いて、仮想的な光線経路に沿った隣接する所定領域の間の間隔を狭く決定することができる。
【0134】
これらのことから、本実施形態に係る医用画像処理装置50によれば、ボリュームデータに対する仮想的光線経路において、不透明領域の境界を決定し、決定された境界における不透明度および色相を、より正確に決定することできる。以上のことから、本実施形態によれば、年輪状(等高線状)アーチファクトおよびシェーディングアーチファクトを発生させることなく、色相の精度および不透明度の精度を向上させたレンダリング画像を発生させることができる。さらに、本実施形態によれば、記憶領域および処理速度などの処理資源を大量に消費することなく、低コストでかつ高速に、色相および形状が正確なレンダリング画像を発生させることができる。
【0135】
いくつかの実施例は、実施例の方法を行うために実行可能なコンピュータ可読命令を有するコンピュータプログラムを用いて、特定の機能性を実践してもよいが、コンピュータプログラムの機能性は、ハードウェア(例えば、CPUを用いるか、1つもしくは複数のASIC(特定用途向け集積回路)による)、FPGA(フィールドプログラマブルゲートアレイ)、またはGPU(グラフィック処理ユニット)の形で、あるいはハードウェアとソフトウェアの混合によって実装できることが、当業者には十分に理解されるであろう。
【0136】
特定のユニットについて本明細書に記載してきたが、代替実施例では、それらユニットの1つまたは複数の機能性を、単一のユニット、処理資源、または他の構成要素によって提供することができ、あるいは、単一のユニットによって提供される機能性を、2つ以上のユニットまたは他の構成要素の組み合わせによって提供することができる。単一のユニットに対する言及は、そのユニットの機能性を提供する単一の構成要素または複数の構成要素、例えばユニットを網羅し、かかる構成要素が互いに離れているか否かは問わず、また、複数のユニットに対する言及は、それらのユニットの機能性を提供する単一の構成要素、例えばユニット、またはそれらのユニットの機能性を提供する複数の構成要素を網羅する。
【0137】
特定の実施例について記載してきたが、これらの実施例は単なる一例として提示したものであり、本発明の範囲を限定しようとするものではない。実際に、本明細書に記載される新規な方法およびシステムは、他の様々な形態で具体化されてもよく、さらに、本発明の趣旨から逸脱することなく、本明細書に記載される方法およびシステムの形態における様々な省略、置換、ならびに変更が行われてもよい。添付の請求項およびそれらの等価物は、かかる形態および修正を、本発明の範囲内にあるものとして包含するものとする。
【0138】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。