(57)【要約】【課題】レイキャスティング法を用いてボリュームレンダリング画像を生成する際の演算負荷をできる限り抑制する。【解決手段】本発明に係るレイキャスティングプログラムは、ボクセル画像を視点から見た視点座標系の各ボクセルの座標をボクセル画像が定義されているボクセル座標系に座標変換するために用いる座標変換パラメータをあらかじめ算出しておき、その座標変換パラメータを用いてレイキャスティング処理を行うための仮想光の起点座標を事前に探索する際に必要とするボクセルに限定して座標変換を実施し、レイキャスティング処理においてボリュームレンダリング画像の画素値を算出するのに必要とするボクセルに限定して座標変換を実施する方法をとることができ、あらかじめボクセル画像の全てのボクセルを視点座標系に変換して視点座標系に変換されたボクセルデータ構造体を作成した上で、起点座標の探索やレイキャスティング処理を行う公知の方法に比べ、座標変換の回数を削減し演算負荷を抑制することができる。【選択図】図２
2019164619.tif 000002
【特許請求の範囲】
【請求項１】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成する処理をコンピュータに実行させるレイキャスティングプログラムであって、前記コンピュータに、
前記断層画像のボクセル値を基に設定された色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成ステップ、
前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系を、前記ボクセル画像の座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出ステップ、
前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索ステップ、
前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティングステップ、
を実行させる
ことを特徴とするレイキャスティングプログラム。
【請求項２】
前記起点座標探索ステップにおいては、前記コンピュータに、
前記視点から前記視点座標系のｚ方向に沿って２ボクセル以上のボクセル間隔ごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０ではない最初の不透明ボクセルを探索するステップ、
前記最初のボクセルより前記視点の方向に、前記視点座標系のｚ方向に沿って１ボクセルごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０である最初の透明ボクセルを探索するステップ、
前記最初の透明ボクセルに隣接する不透明度が０ではないボクセルの前記視点座標系におけるｚ座標を前記起点座標として特定するステップ、
を実行させる
ことを特徴とする請求項１記載のレイキャスティングプログラム。
【請求項３】
前記ボリュームレンダリング画像は、ｘｙ方向それぞれに画素を有しており、
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボリュームレンダリング画像の一部の画素に対して、対応する前記ボクセル値を参照することにより、当該画素に対応する前記起点座標を探索し、前記起点座標を設定する第１のステップ、
前記第１のステップで探索した前記ボリュームレンダリング画像の画素の起点座標を参照しながら、前記第１のステップで探索しなかった前記ボリュームレンダリング画像の他の画素に対応する前記起点座標を設定する第２のステップ、
を実行させる
ことを特徴とする請求項１または請求項２のいずれかに記載のレイキャスティングプログラム。
【請求項４】
前記ボリュームレンダリング画像は、ｘｙ方向それぞれに画素を有しており、
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボリュームレンダリング画像のｘ方向およびｙ方向に沿ってＭ（Ｍは１以上の整数）画素飛ばしに前記起点座標を探索し、前記起点座標を設定する第１のステップ、
前記第１のステップにおいて探索された、第１画素に対応する起点座標とｘ方向にＭ画素飛ばして隣接する第２画素に対応する起点座標が等しい場合は、ｘ方向に前記第１画素と前記第２画素との間にｘ方向に配置されているＭ個の各画素に対応する起点座標として、前記第１画素に対応する前記起点座標と同じｚ座標値を設定する第２のステップ、
前記第１のステップおよび前記第２のステップにおいて設定された、第３画素に対応する起点座標とｙ方向にＭ画素飛ばして隣接する第４画素に対応する起点座標が等しい場合は、ｙ方向に前記第３画素と前記第４画素との間にｙ方向に配置されているＭ個の各画素に対応する起点座標として、前記第３画素に対応する前記起点座標と同じｚ座標値を設定する第３のステップ、
を実行させる
ことを特徴とする請求項１または請求項２のいずれかに記載のレイキャスティングプログラム。
【請求項５】
前記起点座標探索ステップにおいては、前記コンピュータに、前記ボリュームレンダリング画像の全ての画素について前記起点座標を設定した上でその結果を記録する探索制御テーブルを作成させ、
前記レイキャスティングステップにおいては、前記コンピュータに、前記探索制御テーブルが記録している前記起点座標を起点として、前記ボリュームレンダリング画像の画素値を算出させる
ことを特徴とする請求項１から請求項４のいずれか一項に記載のレイキャスティングプログラム。
【請求項６】
前記起点座標探索ステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照する際、ボクセルが有する色値を参照することなく不透明度を参照することにより、前記起点座標を探索させる
ことを特徴とする請求項１から請求項５のいずれか一項に記載のレイキャスティングプログラム。
【請求項７】
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボクセル画像の範囲内において前記最初の不透明ボクセルが見つからなかった場合は、前記起点座標としてその旨を表す値を設定するステップを実行させ、
前記レイキャスティングステップにおいては、前記コンピュータに、
前記起点座標として前記最初の不透明ボクセルが見つからなかった旨を表す値が設定されている場合は、その起点座標を起点として前記ボリュームレンダリング画像の画素値を算出する処理をスキップさせ、所定の背景色を示す画素値を設定する
ことを特徴とする請求項２記載のレイキャスティングプログラム。
【請求項８】
前記レイキャスティングステップにおいては、前記コンピュータに、
前記視点から前記視点座標系のｚ方向に沿って前記ボクセル画像の各ボクセルの不透明度を取得することにより、不透明度が０である透明ボクセルであるか否かを判定する、不透明度判定ステップ、
前記不透明度判定ステップにおいて判定された透明ボクセルから開始して、不透明度が０ではない不透明ボクセルに至るまで、前記ｚ方向に沿って前記ボクセル画像の各ボクセルの不透明度を取得する、不透明ボクセル探索ステップ、
前記透明ボクセルから前記不透明ボクセルのｚ方向に１つ前に位置するボクセルまでの一連のボクセルに対して、前記ボリュームレンダリング画像の画素値を算出する処理をスキップするステップ、
を実行させる
ことを特徴とする請求項１から請求項７のいずれか一項に記載のレイキャスティングプログラム。
【請求項９】
前記不透明ボクセル探索ステップにおいては、前記コンピュータに、
前記透明ボクセルから開始して、前記ｚ方向に沿って２ボクセル以上のボクセル間隔ごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０ではない最初の不透明ボクセルを探索するステップ、
前記最初の不透明ボクセルから前記透明ボクセルへ向かう方向に、前記ｚ方向に沿って１ボクセルごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０である最初の透明ボクセルを探索するステップ、
前記最初の透明ボクセルに隣接する不透明度が０ではない不透明ボクセルより前記レイキャスティングステップを再開させるように制御するステップ、
を実行させる
ことを特徴とする請求項８に記載のレイキャスティングプログラム。
【請求項１０】
前記レイキャスティングプログラムは、前記コンピュータにさらに、前記視点を変更する座標変換パラメータを指示する座標変換パラメータの入力を受け取るステップを実行させるとともに
前記座標変換パラメータの入力を受け取るごとに、前記座標変換パラメータ算出ステップ、前記起点座標探索ステップおよび前記レイキャスティングステップを実行させて、前記ボリュームレンダリング画像を繰り返し表示するようにし、
前記起点座標探索ステップおよび前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータの入力を受け取っている間の期間においては、前記ボリュームレンダリング画像の画素のうち少なくとも一部を間引く間引き処理を実施したうえで起点座標を設定するとともに画素値を算出させ、
前記起点座標探索ステップおよび前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータの入力が停止した時点で前記間引き処理を実施せずに起点座標を設定するとともに画素値を算出させる
ことを特徴とする請求項１から請求項９のいずれか一項に記載のレイキャスティングプログラム。
【請求項１１】
前記ボクセル画像作成ステップにおいては、前記コンピュータに、対象ボクセルの不透明度を算出するステップを実行させ、
前記ボクセル画像作成ステップにおいては、前記コンピュータに、前記対象ボクセルに隣接する２６個のボクセルがそれぞれ有する不透明度の平均値によって前記対象ボクセルが有する不透明度を更新するステップを実行させる
ことを特徴とする請求項１から請求項１０のいずれか一項に記載のレイキャスティングプログラム。
【請求項１２】
前記起点座標探索ステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、起点座標を設定する際、前記ボクセル画像のボクセル間の中間座標を加味して座標変換を行い、前記起点座標探索ステップをＮ（Ｎ＞１）回実行させ、
前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像の色値と不透明度を取得して前記ボリュームレンダリング画像の画素値を算出する際、前記中間座標を加味して座標変換を行い、前記レイキャスティングステップをＮ回実行させ、算出されたＮ個のボリュームレンダリング画像の画素値を平均することにより、前記ボリュームレンダリング画像の画素値を算出する
ことを特徴とする請求項１から請求項１１のいずれか一項に記載のレイキャスティングプログラム。
【請求項１３】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いて生成するボリュームレンダリング画像の画素値を算出する際、前記断層画像のボクセル値を基に設定された色値と不透明度を有する前記対象物のボクセル画像に対して、レイキャスティング法を実行するための起点となる、視点から視点座標系のｚ方向に最初に存在する不透明度が０でない不透明ボクセルのｚ座標を起点座標として設定した構造を有する探索制御データであって、
前記探索制御データは、前記ボリュームレンダリング画像の画素ごとに前記起点座標を設定されており、
各前記画素に対応する前記起点座標のうち少なくとも一部は、ｘ方向または／かつｙ方向に連続するＭ個（Ｍ＞２）の前記画素について同じ値が設定されており、
各前記画素に対応する前記起点座標のうち少なくとも一部は、視点から視点座標系のｚ方向の末端まで不透明度が０でない不透明ボクセルが存在しない旨を表す値が設定されている
ことを特徴とする探索制御データ。
【請求項１４】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いて生成するボリュームレンダリング画像の画素値を算出する際、レイキャスティング法を実行するための起点となる、視点から視点座標系のｚ方向に最初に存在する不透明度が０でない不透明ボクセルのｚ座標を起点座標として記述する探索制御データを生成する探索制御データ生成方法であって、
前記対象物に対する視点から視点座標系のｚ方向に沿って前記対象物のボクセル画像を参照することにより、前記ボクセル画像の不透明度が０ではない不透明ボクセルの視点座標系におけるｚ座標を起点座標として探索する起点座標探索ステップ、
前記起点座標を前記探索制御データに記録するステップ、
を有し、
前記ボリュームレンダリング画像は、ｘｙ方向それぞれに画素を有しており、
前記起点座標探索ステップは、
前記ボリュームレンダリング画像のｘ方向およびｙ方向に沿ってＭ（Ｍは１以上の整数）画素飛ばしに、対応する前記ボクセル画像のボクセル値を参照することにより、前記起点座標を探索し、前記起点座標を設定する第１のステップ、
前記第１のステップにおいて探索された、第１画素に対応する起点座標とｘ方向にＭ画素飛ばして隣接する第２画素に対応する起点座標が等しい場合は、前記第１画素と前記第２画素との間にｘ方向に配置されているＭ個の各画素に対応する前記起点座標として、前記第１画素に対応する前記起点座標と同じｚ座標値を設定する第２のステップ、
前記第１のステップおよび前記第２のステップにおいて設定された、第３画素に対応する起点座標とｙ方向にＭ画素飛ばして隣接する第４画素に対応する起点座標が等しい場合は、前記第３画素と前記第４画素との間にｙ方向に配置されているＭ個の各画素に対応する前記起点座標として、前記第３画素に対応する前記起点座標と同じｚ座標値を設定する第３のステップ、
を有する
ことを特徴とする探索制御データ生成方法。
【請求項１５】
前記起点座標探索ステップの前記第１のステップにおいて、視点から視点座標系のｚ方向の終端まで不透明度が０でない不透明ボクセルが存在しない場合は、前記起点座標としてその旨を表す値を設定する
ことを特徴とする請求項１４記載の探索制御データ生成方法。
【請求項１６】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成するレイキャスティング装置であって、
ボクセル値として色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成部、
前記ボクセル画像の座標系を、前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出部、
前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索部、
前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティング処理部、
を備えている
ことを特徴とするレイキャスティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、レイキャスティング法を用いてボリュームレンダリング画像を生成する技術に関する。
【背景技術】
【０００２】
医療分野においては、ＣＴ装置やＭＲＩ装置によって取得した対象物のスライス画像から、当該対象物の３次元画像を生成する場合がある。このような画像をボリュームレンダリング画像と呼ぶ。ボリュームレンダリング画像を生成する手法として、レイキャスティング法と呼ばれるものがある。
【０００３】
レイキャスティング法においては、ボクセル値に基づいて定義された色値（具体的には、ＲＧＢ値）と不透明度（具体的には、α値）を有するボクセルを３次元配置する。視点からボクセル空間に対して仮想光（レイ）を照射することにより、各ボクセルにおいてボクセル値に基づいて定義された色値と不透明度に応じて減衰する光強度とボリュームレンダリング画像の画素の輝度値（具体的には、ＲＧＢ値）を、視線方向に沿ってそれぞれ算出する。これにより、対象物の３次元構造を視点から見たときのボリュームレンダリング画像を作成することができる。ボリュームレンダリング画像は、視点から見た任意深さにおいて生成することができる。さらに各ボクセルに対してボクセル値に基づいて色値と不透明度を定義した配列（カラーマップ、オパシティカーブなどと呼ぶ）をマッピングすることにより、一部の組織を透明にしたカラー画像を生成することができる。
【０００４】
下記特許文献１は、レイキャスティング法を用いてボリュームレンダリング画像を生成する技術を開示している。同文献は、『３次元ボクセル空間に対する任意の視点方向からのレイキャスティング演算処理を効率良く実施する。』ことを課題として、『物体の内部組織の３次元画像を得るスライス画像の３次元画像表示方法において、３次元ボクセル空間１を六面体とし、その各面を構成する８つの頂点を視点方向４によって３次元座標変換して視点方向に垂直な投影面での８つの頂点の平面座標を求め、８つの頂点の平面座標から３次元ボクセル空間を投影面に投影した場合の投影面上における各面８を求め、投影面上における投影された各面を含む矩形の投影領域７を定め、投影領域内における各面を零値でない任意の輝度値に塗り潰し、視点方向から３次元ボクセル空間に対してレイキャスティング処理を実施するときに、投影領域のうち輝度値が零値を除く各位置に対してのみ、レイキャスティング処理を実施する。』という技術を開示している（要約参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１７５７４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
レイキャスティング法は原則として、ボリュームレンダリング画像の全ての画素について、各画素の座標よりボクセル画像に向けて仮想光を投射し、座標変換を行いながら仮想光が通過した各ボクセルに定義された色値と不透明度に基づいて仮想光の光強度の減衰を算出するとともに、当該画素の輝度値を算出する。したがって演算負荷が大きい傾向があり、パーソナルコンピュータなどのように比較的演算能力が小さいコンピュータ上でソフトウェア処理のみによって実施することは、一般に困難である。
【０００７】
特許文献１は、不透明度が０でないボリュームレンダリング画像の生成に有効なボクセルが存在しない透明なボクセル領域に対するレイキャスティング処理を省略することにより、演算負荷を抑制することを図っている。しかし、たとえ透明なボクセル領域が画像全体に対して占める割合が大きくても、演算負荷を抑制する効果はその透明なボクセル領域の体積割合に限られると考えられる。したがって同文献記載の技術を実装したとしても、ソフトウェア処理のみによって一般的コンピュータ上で実施することは、依然困難であると考えられる。
【０００８】
本開示は、上記のような課題に鑑みてなされたものであり、レイキャスティング法を用いてボリュームレンダリング画像を生成する際の演算負荷をできる限り抑制することを目的とするものである。
【課題を解決するための手段】
【０００９】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成する処理をコンピュータに実行させるレイキャスティングプログラムであって、前記コンピュータに、前記断層画像のボクセル値を基に設定された色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成ステップ、前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系を、前記ボクセル画像の座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出ステップ、前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索ステップ、前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティングステップ、を実行させるレイキャスティングプログラムである。
【発明の効果】
【００１０】
本開示に係るレイキャスティングプログラムによれば、レイキャスティング処理の過程において実施する座標変換処理の演算負荷を抑制し、レイキャスティング処理の全体的な演算負荷を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係るレイキャスティング装置１００の構成図である。
【図２】レイキャスティング装置１００がボリュームレンダリング画像を生成する手順を説明するフローチャートである。
【図３】座標変換の概念図である。
【図４】ステップＳ２３０において起点座標探索部１２３が探索制御テーブルを作成する手順を説明する図である。
【図５】ステップＳ２３０において起点座標探索部１２３が各画素において起点座標を探索する手順を説明する図である。
【図６】起点座標探索部１２３が各画素において起点座標を探索する手順を説明するフローチャートである。
【図７】ステップＳ２４０においてレイキャスティング処理部１２４がレイキャスティング処理を実施する手順を説明する図である。
【図８】ユーザがマウスをドラッグすることにより視点を変更するときレイキャスティング装置１００が生成するボリュームレンダリング画像の例である。
【図９】各機能部をプログラムとして構成した場合の構成例である。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施形態１に係るレイキャスティング装置１００の構成図である。レイキャスティング装置１００は、ＣＴ装置やＭＲＩ装置によって取得した対象物のスライス画像から、当該対象物の３次元画像（ボリュームレンダリング画像）を生成する装置である。レイキャスティング装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、ボクセル画像作成部１２１、座標変換部１２２、起点座標探索部１２３、レイキャスティング処理部１２４、表示部１２５、記憶部１３０を備える。ＣＰＵ１１０は演算装置である。表示部１２５は、作成された情報を出力して表示する表示装置である。記憶部１３０は、ＣＰＵ１１０が用いるデータを格納する記憶装置である。
【００１３】
ボクセル画像作成部１２１、座標変換部１２２、起点座標探索部１２３、レイキャスティング処理部１２４、これらの機能を実装した回路デバイスなどのハードウェアによって構成することもできるし、これらの機能を実装したソフトウェアをＣＰＵ１１０が実行することにより構成することもできる。以下では図１に示すようにＣＰＵ１１０が実行することを前提として説明する。記載の便宜上、これら機能部を動作主体として説明する場合があるが、実際にこれら機能部を実行するのはＣＰＵ１１０であることを付言しておく。これら機能部の詳細については後述する。
【００１４】
図２は、レイキャスティング装置１００がボリュームレンダリング画像を生成する手順を説明するフローチャートである。ＣＴ装置やＭＲＩ装置によって対象物のスライス画像はあらかじめ作成されているものとする。以下図２の各ステップについて説明する。
【００１５】
（図２：ステップＳ２１０）
ボクセル画像作成部１２１は、スライス画像からボクセル画像を作成する。ボクセル画像の各ボクセルには、ボクセル値としてスライス画像の画素値（信号値、ＣＴ画像の場合はＣＴ値とも呼ばれる）を与え、ボクセル値を基に色値（具体的には、ＲＧＢ値）と不透明度（具体的には、α値）を持たせる。ボクセル値は例えばＣＴ装置によって取得したＣＴ値で一般に１６ビットで与えられるのに対し、色値（ＲＧＢ値）と不透明度（α値）は各々８ビットの値をもたせボクセルあたり３２ビットで表現される。各ボクセルに対してカラーマップを割り当てる場合、各ボクセルのボクセル値を基に色値（ＲＧＢ値）および不透明度（α値）を与える。各ボクセルに対してカラーマップを割り当てない場合でも、各ボクセルのボクセル値を所定の計算式に基づいて、１６ビットのボクセル値を８ビットの色値（ＲＧＢ値）および不透明度（α値）に変換する。
【００１６】
（図２：ステップＳ２２０）
座標変換部１２２は、以後のステップにおいて座標変換を実施する際に用いる座標変換パラメータを算出する。座標変換パラメータの算出Ｓ２２０は、ボクセルに対して仮想光を照射する際、ボクセル単位に逐次座標変換処理を行えるようにするために、視点を基準とする視点座標系を基にボクセル画像が定義されているボクセル座標系にボクセルの３次元座標値を変換し、ボクセル座標系において対応する複数の８近傍のボクセルの色値または／かつ不透明度を補間するための処理である。座標変換の概念図と座標変換パラメータの具体例については後述する。
【００１７】
（図２：ステップＳ２３０）
起点座標探索部１２３は、ボリュームレンダリング画像の各画素において、仮想光の光強度および当該画素の輝度（ＲＧＢ値）を積算する処理を開始するボクセルの起点座標を、ボリュームレンダリング画像の全画素について算出する。仮想光が通過する全てのボクセルが完全に透明である（不透明度が０である）場合、仮想光の光強度はそのまま維持されてボクセル画像の空間を素通りしてしまうので、レイキャスティング処理は必要ない。したがって本実施形態１においては、視点から見て不透明度が０ではない最初のボクセルの座標を、視線方向に沿って探索することとした。探索により最初に発見される不透明度が０ではないボクセルの座標を起点座標と呼ぶ。本ステップにおいては、ボリュームレンダリング画像の画素（ｘ，ｙ）ごとに、起点座標を探索する。探索結果はボリュームレンダリング画像の画素の座標値（ｘ，ｙ）に対応させて探索制御テーブルとして保持しておく。探索制御テーブルの例については後述する。
【００１８】
（図２：ステップＳ２３０：補足その１）
ボリュームレンダリング画像の各画素（ｘ，ｙ）は、２次元座標系で定義されている。これに対して、ボクセルの座標系は３次元座標系で定義されており、３次元のボクセル座標系を２次元座標系に投影変換させることによりボリュームレンダリング画像を算出する。各画素（ｘ，ｙ）に対して投影変換されるボクセルは深さ方向に複数個存在するため、同一の座標（ｘ，ｙ）に対応する視線方向に連続する複数個のボクセルをｚ方向に配置させたものを視点座標系と称す。各画素の輝度値を算出するにあたり、視点座標系においてｚ方向に仮想光を投射し、仮想光が通過する各ボクセルに対して座標変換を行い、ボクセル画像が定義されている３次元のボクセル座標系における対応するボクセルの色値と不透明度を取得することになる。この座標変換処理において、ステップＳ２２０で算出した座標変換パラメータを用いることができる。座標変換処理は起点座標探索部１２３の制御の下で座標変換部１２２が実施する。座標変換処理は本ステップにおいて視点座標系のボクセルを参照するごとに実施する。
【００１９】
（図２：ステップＳ２３０：補足その２）
本ステップにおいては、不透明度が０ではないボクセルを探索するので、ボクセルが有するその他の値（色値）を参照する必要はない。すなわち起点座標探索部１２３は、本ステップにおいて各ボクセルの不透明度のみを参照し、その他の値（色値）は参照しない。座標変換処理は、視点座標系の単一の座標（ｘ，ｙ，ｚ）のボクセルに対して、ボクセル画像が定義されている３次元のボクセル座標系における対応する座標（ｘ’，ｙ’，ｚ’）のボクセルの色値（ＲＧＢ）および不透明度を取得する処理であるが、座標値（ｘ’，ｙ’，ｚ’）は実数値で端数をもつため、座標値（ｘ’，ｙ’，ｚ’）の８近傍の整数の座標値に対応する各ボクセルの色値（ＲＧＢ）および不透明度を補間する演算処理を必要とする。色値の参照を行なわずに不透明度のみを参照する方法をとることにより、座標変換処理の演算負荷が１／４に削減される。
【００２０】
（図２：ステップＳ２４０）
レイキャスティング処理部１２４は、ボリュームレンダリング画像の各画素（ｘ、ｙ）において、ステップＳ２３０で探索した起点座標を起点として、視点座標系においてｚ方向に仮想光を投射し、仮想光が通過する各ボクセルに対してボクセル画像が定義されている３次元のボクセル座標系における対応するボクセルの色値と不透明度を用いて仮想光の光強度および当該画素の輝度（ＲＧＢ値）を積算することにより、ボリュームレンダリング画像の各画素（ｘ，ｙ）の画素値を算出する。本ステップにおいても、視点座標系とボクセル座標系は異なるので、ステップＳ２２０で算出した座標変換パラメータを用いて座標変換を行い、視点座標系の各ボクセルに対してボクセル座標系における対応するボクセルの色値と不透明度の双方を算出する必要がある。座標変換処理はレイキャスティング処理部１２４の制御の下で座標変換部１２２が実施する。座標変換処理は本ステップにおいても視点座標系のボクセルを参照するごとに実施する。
【００２１】
（図２：ステップＳ２５０）
表示部１２５は、ステップＳ２４０において算出した各画素（ｘ，ｙ）の輝度値（ＲＧＢ値）を用いて、ボリュームレンダリング画像を出力先の装置またはデバイスに応じて出力する。
【００２２】
図３は、座標変換の概念図である。ボリュームレンダリング画像は視点から見た画像であるので、ボリュームレンダリング画像の各画素（ｘ，ｙ）の基準となる視点座標系は必ずしもボクセル座標系とは一致していない。そこで座標変換部１２２は、ボクセル座標系に定義されているボクセル画像を視点座標系に変換する。しかし、例えば、５１２×５１２画素のスライス画像が２５６枚で構成されるボクセル画像を視点座標系に変換すると、後述するＺ方向変倍率を２．０として、ｘ：５１２×ｙ：５１２×ｚ：５１２ボクセルの視点座標系に変換されたボクセルデータ構造体を作成する必要があり、５１２の３乗回の座標変換が必要になる。これに対して、起点座標の探索を行う際は、不透明度が０でないボクセルが即座に見つかれば、ｚ方向に後続するボクセルに対しては参照する必要が無く、レイキャスティング処理を行う際は、仮想光の光強度が所定の値以下に減衰すれば積算処理を打ち切ることができ、ｚ方向に後続するボクセルに対しては参照する必要が無い。即ち、視点座標系に変換された５１２の３乗個のボクセルの大半は参照されないため、ボクセル画像の全てのボクセルに対して座標変換を行って保持する必要は無い。そこで、図３の右に示されるような視点座標系に座標変換されたボクセル画像を生成せず、図３の右の下方向の矢印で示される仮想光が通過して参照されるボクセルに限定して、その都度、ボクセル画像が定義されているボクセル座標系に座標変換処理を実行させるようにした。参照されないボクセルに対しては座標変換処理が実行されないため、あらかじめボクセル座標系から視点座標系に変換された全てのボクセルデータ構造体を作成した上で、起点座標探索とレイキャスティング処理を行う公知の方法に比べ、３次元のボクセルデータ構造体を保持するメモリが不要になるとともに、座標変換の回数を削減することができ、メモリアクセス負荷および演算負荷を抑制することができる。
【００２３】
座標変換を実施する際には、様々な座標変換パラメータを用いる。視点座標系とボクセル座標系の位置関係が同じであれば、座標変換パラメータも同じであると考えられる。即ち、起点座標探索部１２３およびレイキャスティング処理部１２４において、視点座標系で参照される全てのボクセルに対して、ボクセル座標系に対する座標変換を実施するための座標変換パラメータは同一である。そこで座標変換部１２２は、ステップＳ２２０において座標変換パラメータをあらかじめ算出し、以後のステップにおいてはその座標変換パラメータを共通の座標変換パラメータとして流用する。座標変換パラメータとしては例えば以下のようなものが挙げられる。
【００２４】
・Ｘ軸周りの回転角をＲｘ（単位：ラジアン）としたとき、ｓｉｎ（Ｒｘ）とｃｏｓ（Ｒｘ）をあらかじめ座標変換パラメータとして算出する。ＹＺ軸についても同様にあらかじめ算出する。
・Ｘ軸方向のオフセットＸｏｆｆ（単位：ボクセル）をあらかじめ座標変換パラメータとして保持しておく。ＹＺ軸についても同様にあらかじめ保持しておく。
・ＸＹＺ軸方向のＲＯＩ（Ｒｅｇｉｏｎ  Ｏｆ  Ｉｎｔｅｒｅｓｔ）をあらかじめ座標変換パラメータとして保持しておく。ＲＯＩはＸＹＺ軸各方向における表示範囲を指示し、指定された範囲外のボクセルがボリュームレンダリング画像において非表示になるように、範囲外のボクセルの不透明度を全て０に設定する作用をもつ。
・拡大縮小倍率Ｓｃａｌｅをあらかじめ座標変換パラメータとして保持しておく。ＸＹＺ各軸について同じ値を用いてもよいし、それぞれ異なる値を用いてもよい。
・Ｚ方向変倍率：ＣＴまたはＭＲＩスキャンの過程において、スライス画像における２次元ＸＹ方向の画素間隔とスライス画像のＺ方向（体軸方向）のスライス間隔が一般に異なるため、スライス画像の集合で構成される３次元のボクセル画像のＸＹ方向の画像スケールとＺ方向の画像スケールが異なってくる。そのため、画像をＺ方向に変倍する必要がある。この場合はＸＹ方向の解像度とＺ方向の解像度の間の比率をあらかじめ算出しておき、これを座標変換時に上記拡大縮小倍率に併せて適用する。
【００２５】
レイキャスティング処理とは、仮想光を視点からボクセルに対して照射したと仮定して、最深点（仮想光の光強度が所定の値以下に減衰した点）を探索し、最深点から光軌跡を遡って投影面における輝度値を積算することにより、投影面上における画素値を算出する方法が基本である。レイキャスティング処理部１２４では、最深点を探索する過程で、通過した全てのボクセルの不透明度を基に仮想光の光強度を積算しながら、通過した全てのボクセルの色値と不透明度を基に投影面における輝度値を積算する処理を同時に行う。通過した全てのボクセルの色値と不透明度は、視点座標系から座標変換によりボクセル座標系における対応するボクセルの色値と不透明度にしたがって算出することになるので、ボクセル座標系における８近傍のボクセルの色値と不透明度を補間する必要がある。
【００２６】
図４は、ステップＳ２３０において起点座標探索部１２３が探索制御テーブルを作成する手順を説明する図である。起点座標探索部１２３は、ボリュームレンダリング画像の画素（ｘ，ｙ）ごとに起点座標を記述した探索制御テーブルを作成する。起点座標とは、視点座標系において、視点（ｚ＝０）からボクセルをｚ軸方向（ｚ＞０）に探索して最初に見つかった不透明度が０でない値をもつボクセルの視点座標系におけるｚ座標値（正また０の値）である。探索した結果、不透明度が０でない値をもつボクセルが見つからなかった場合、即ちｚ方向の末端まで全てのボクセルが透明な場合、起点座標として負値（−１）を設定する。ボリュームレンダリング画像の全ての画素の座標（ｘ，ｙ）について、始めに仮想光を投射する起点座標を探索する必要があるが、この探索処理は座標（ｘ，ｙ）ごとに視点座標系のｚ軸方向の複数のボクセルの不透明度を参照する必要があり、各ボクセルの不透明度を取得するために座標変換処理を実行して対応するボクセル座標系の複数のボクセルの不透明度の値を補間する処理を実行するため、演算負荷が比較的大きい。そこで、２次元の探索制御テーブルを作成する方法をとることにより、一部の座標に対する起点座標については、近傍の座標において探索された起点座標を流用し、探索処理を省略することができる。本実施形態１においては個々の画素に対して実行される起点座標の探索処理の演算負荷を抑制するため、以下の手順により探索制御テーブルを作成する。
【００２７】
起点座標探索部１２３は、まずボリュームレンダリング画像のｘ軸方向およびｙ軸方向の偶数番目の画素（２ｍ，２ｎ）（ｍ＝０，１，・・・、ｎ＝０，１，・・・）について、起点座標を探索する。図４左図の塗り潰した部分がこれに相当する。ボリュームレンダリング画像の画素数は一般に５１２×５１２など偶数個に設定される場合が多く、後述する補間処理では画像末端部の奇数番目の画素の起点座標を設定できないため、図４左図のように、ｘ軸方向の右末端の画素およびｙ軸方向の下端の画素についても起点座標を探索する。
【００２８】
起点座標探索部１２３は、ボリュームレンダリング画像のｙ軸方向の偶数番目の画素の中で、ｘ方向の奇数番目の画素（２ｍ＋１，２ｎ）について、先に探索されたｘ方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素（１，０）については、両隣である画素（０，０）の起点座標と画素（２，０）の起点座標が同じであるか否かをチェックする。ただし、ｘ方向の右末端の画素は奇数番目であっても、図４左図の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合、対象物は当該画素近傍において同様の形状を有していると推定されるので、間に挟まれている画素の起点座標も両隣の起点座標と同じであるとみなすことができる。また、両隣の起点座標が負値となる背景部の画素である場合、間に挟まれている画素も背景部であるとみなすことができる。そこで起点座標探索部１２３は、画素（２ｍ＋１，２ｎ）の両隣の起点座標が同じである場合、画素（２ｍ＋１，２ｎ）についても同じ起点座標を設定する。図４中央図の縦ハッチング部分がこれに相当する。一方、両隣の起点座標が異なる場合、両隣の偶数番目の画素と同様に、起点座標探索部１２３は、起点座標を探索する処理を実行し、探索した起点座標を設定する。
【００２９】
起点座標探索部１２３は、ボリュームレンダリング画像のｙ方向が奇数番目でｘ方向は全ての画素（ｘ，２ｎ＋１）について、ｙ方向における両隣の偶数番目の画素の起点座標が同じであるか否かをチェックする。例えば画素（０，１）については、両隣である画素（０，０）の起点座標と画素（０，２）の起点座標が同じであるか否かチェックする。ただし、ｙ方向の下末端行の画素は奇数番目であっても、図４中央図の通り既に起点座標が設定されているので、本チェック処理の対象外とする。両隣の起点座標が同じである場合は、ｘ方向と同様に、間に挟まれている画素についても同じ起点座標を設定する。そして、両隣の起点座標が異なる場合は、ｘ方向と同様に、起点座標探索部１２３は、起点座標を探索する処理を実行し、探索した起点座標を設定する。図４右図の横ハッチング部分がこれに相当する。
【００３０】
図４では縦横１画素置きに起点座標の探索を行い、間に挟まれている１画素を両隣の画素を基に補間する方法を示したが、これは一例に過ぎず、縦横Ｍ（Ｍ＞１）画素置きに起点座標の探索を行い、間に挟まれているＭ個の各画素を両隣の画素を基に補間する方法もとることもでき、その場合は演算負荷を更に抑制することができる。
【００３１】
図５は、ステップＳ２３０において起点座標探索部１２３が各画素において起点座標を探索する手順を説明する図である。図４においては、ｘｙ方向の隣接画素において探索された起点座標を基に一部の起点探索の処理を省略することにより起点座標の設定を高速化する手順を説明した。これに代えてまたは併用して、ｚ方向の起点探索の処理自体を高速化することにより、起点探索の演算負荷を二重に抑制することができる。
【００３２】
起点座標探索部１２３は、視点から開始して視線座標系のｚ方向に沿って各ボクセルの不透明度を参照する。始めに、視点位置（ｚ＝０）におけるボクセルの不透明度を確認し、不透明度が０でない場合は被写体の表面（切断面）であるため、起点座標はｚ＝０で探索打ち切りとなり、演算負荷が小さい。しかし、視点位置（ｚ＝０）におけるボクセルの不透明度が０である場合（背景部に多い）、ｚ方向に透明なボクセルが連続して存在する可能性が高く、背景部ではｚ方向の末端部まで全てのボクセルの不透明度が０となり、隣接するボクセルを順次参照する方法をとると、起点座標が負値であることを決定するためにｚ方向の末端部まで全てのボクセルに対して座標変換を行いながらボクセルの不透明度を参照する必要があり、膨大な演算負荷を伴ってしまう。そこで、視点位置（ｚ＝０）におけるボクセルの不透明度が０である場合は、隣接するボクセルを順次参照するのではなく、任意個数のボクセルをスキップしながら不透明度を参照する（図５左図）。例えばｚ方向に８ボクセルごとに不透明度を参照する。ｚ方向の終端のボクセルに至っても不透明度が０ではないボクセルが見つからなかった場合は、起点座標として負値を設定して探索打ち切りとする。一方、不透明度が０ではない（完全透明ではない）最初のボクセルが見つかった場合は、起点座標を正確に決定するため図５右図の工程に移る。
【００３３】
起点座標探索部１２３は、最初に見つかった不透明ボクセルから視点に向かって遡り、不透明度が０である最初のボクセルを探索する（図５右図）。このときは視点座標系のｚ方向に隣接するボクセルの不透明度を１ボクセルごとにスキップ幅を上限として順次参照する。不透明度が０である最初のボクセル（図５右図の白いボクセル）が見つかった時点で、その１つ前のボクセル（視点から遠ざかる方向）の視点座標系におけるｚ座標を起点座標として、探索制御テーブルに格納する。スキップ幅の上限まで遡って、不透明度が０である最初のボクセルが見つからなかった場合は、最初に見つかった不透明ボクセルの視点座標系におけるｚ座標を起点座標として、探索制御テーブルに格納する。以上の手順により、ｚ方向の起点探索を高速化することができる。
【００３４】
図４と図５に示す手順において、起点座標探索部１２３は、視点座標系（ｘ，ｙ，ｚ）を基準としてｚ方向に配置されたボクセルの不透明度を参照することになる。しかし実際に参照するのはボクセル座標系におけるボクセルが有する不透明度であるので、実際のボクセルが有する不透明度を取得するためには、視点座標系からボクセル座標系への座標変換が必要になる。座標変換のためのパラメータは、ステップＳ２２０においてあらかじめ算出しておけばよい。座標変換により算出したボクセル座標系の座標値（ｘ’，ｙ’，ｚ’）は実数値になるが、ボクセル座標系におけるボクセルを参照するためには整数値に変換する必要がある。この時、小数点以下を切り捨てて整数化してボクセル座標系における単一のボクセルを参照する方法をとると、ボリュームレンダリング画像にモアレが発生することが知られているため、算出されたボクセル座標系の実数座標値（ｘ’，ｙ’，ｚ’）に隣接する８近傍の整数座標値のボクセルの不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、不透明度を算出する方法が望ましい。後述するレイキャスティング処理においても同様であるが、レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色値も参照する必要があるため、起点座標の探索における座標変換の処理負荷はレイキャスティング処理における座標変換の処理負荷に比べ１／４に抑制できる。
【００３５】
図６は、起点座標探索部１２３が各画素において起点座標を探索する手順を説明するフローチャートである。起点座標探索部１２３は、各対象画素（ｘ，ｙ）について本フローチャートを実施する。以下図６の各ステップについて説明する。
【００３６】
（図６：ステップＳ６０１）
起点座標探索部１２３は、起点座標を探索する対象画素（ｘ，ｙ）、３次元座標（ｘ，ｙ，ｚ）をセットする。ｚ座標の初期値はｚ＝Ｚｓとする。Ｚｓは視点のｚ座標である。尚、図５の説明においては、視点座標系におけるｚ座標の初期値はｚ＝０とし、ｚ座標の値を増大させる正方向に探索する方法で説明したが、図６ではソフトウェアの実装形態に基づき、視点座標系におけるｚ座標の初期値はｚ＝Ｚｓ（＞０）とし、ｚ座標の値を減少させる負方向に探索する方法で説明する。
【００３７】
（図６：ステップＳ６０２）
起点座標探索部１２３は、３次元座標（ｘ，ｙ，ｚ）について、座標変換を実施して視点座標系に座標変換する前のボクセルに対応する不透明度αを算出する。算出手順としては、例えば上述のように隣接するボクセルの不透明度を重み付け加算する手法を用いることができる。αが０であればステップＳ６０３へ進み、αが０でなければステップＳ６０５へ進む。
【００３８】
（図６：ステップＳ６０３）
起点座標探索部１２３は、ｚ軸方向に所定個数のボクセルをスキップする。具体的には現在のｚ座標からｍ（例えばｍ＝８）減算する。減算した結果、ｚ座標が０未満になった場合は、ステップＳ６０４へ進む。ｚ座標が０以上である場合はステップＳ６０２へ戻って同様の処理を繰り返す。
【００３９】
（図６：ステップＳ６０４）
起点座標探索部１２３は、現在の対象画素（ｘ，ｙ）に対応する探索制御テーブルの値Ｍ（ｘ，ｙ）に対して、起点座標が見つからなかった旨を示す値（例えば−１などの負値）をセットして本フローチャートを終了する。
【００４０】
（図６：ステップＳ６０５〜Ｓ６０６）
起点座標探索部１２３は、変数ｉを初期化した後（Ｓ６０５）、１ずつインクリメントする（Ｓ６０６）。ｉがｍまで到達した場合、または現在のｚ座標にｉを加算すると視点ｚ座標に達する場合は、ステップＳ６０８までスキップする。ｉがｍまで到達しておらず、かつ現在のｚ座標にｉを加算しても視点ｚ座標まで達しない場合は、ステップＳ６０７へ進む。
【００４１】
（図６：ステップＳ６０７）
起点座標探索部１２３は、３次元座標（ｘ，ｙ，ｚ＋ｉ）について、座標変換を実施して視点座標系に座標変換する前のボクセルに対応する不透明度αを算出する。算出手順はステップＳ６０２と同じである。αが０であればステップＳ６０８へ進み、αが０でなければステップＳ６０６へ戻ってｉをインクリメントして同様の処理を繰り返す。
【００４２】
（図６：ステップＳ６０８）
起点座標探索部１２３は、現在の対象画素（ｘ，ｙ）に対応する探索制御テーブルの値Ｍ（ｘ，ｙ）に対して、ステップＳ６０７の１つ手前のｚ座標（ｚ＋ｉ−１）をセットして本フローチャートを終了する。
【００４３】
図７は、ステップＳ２４０においてレイキャスティング処理部１２４がレイキャスティング処理を実施する手順を説明する図である。レイキャスティング処理部１２４は、求まるボリュームレンダリング画像の各画素の（ｘ，ｙ）座標に対して探索制御テーブルが保持している起点座標を参照して、（ｘ，ｙ，ｚ）視点座標系において起点座標よりｚ方向に仮想光を投射し、仮想光が通過する各ボクセルに対して（ｘ’，ｙ’，ｚ’）ボクセル座標系における対応するボクセルの色値と不透明度を用いて仮想光の光強度および当該画素の輝度（ＲＧＢ値）をｚ方向のボクセルごとに積算し、仮想光の光強度が所定の値以下に減衰するか、ｚ方向の終端のボクセルに至る段階まで積算する処理を継続し、最終的に積算された当該画素の輝度（ＲＧＢ値）をボリュームレンダリング画像の当該画素（ｘ，ｙ）の画素値として与える。
【００４４】
レイキャスティング処理の途上で、あるｚ座標におけるボクセルの不透明度が０である（すなわち透明である）場合がある。透明ボクセルに対しては仮想光の光強度および画素の輝度（ＲＧＢ値）の積算処理は行われないため、透明ボクセルはスキップし、次の不透明ボクセルを探索する。このときレイキャスティング処理部１２４は、視点座標系のｚ方向において視点からずれたｚ＞０である途中の透明ボクセルから探索を開始して図５と同様の手法により、不透明度が０でない最初のボクセルを探索することができる（図７左図〜図７右図）。レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色値も必要になるが、不透明ボクセルを探索する際は、ボクセルの色値は不要なため、座標変換において不透明度だけを算出すればよく、座標変換の演算負荷を１／４に抑制できる。不透明度が０でないボクセルが見つかると、そのボクセルからレイキャスティング処理を再開し、仮想光の光強度が所定の値以下に減衰するか、ｚ方向の終端のボクセルに至るまでレイキャスティング処理を継続する。図７＜まとめ＞は、以上の手順によりレイキャスティング処理を実施する不透明なボクセルとスキップする透明なボクセルを区分した結果をまとめたものである。レイキャスティング処理の途中に存在する透明なボクセルに対して座標変換を伴いながら色値および不透明度を参照する処理をスキップすることにより、レイキャスティング処理を高速化することができる。
【００４５】
レイキャスティング処理部１２４が色値や不透明度を参照する際には、視点座標系（ｘ，ｙ，ｚ）を基準として対応するボクセル座標系におけるボクセルのこれら値を参照することになる。したがって視点座標系からボクセル座標系への座標変換が必要になる。座標変換パラメータについては起点座標探索部１２３が用いるものと同様である。ただし、レイキャスティング処理においてはボクセルの不透明度だけでなくＲＧＢ３値からなる色値も必要になる。そのため、座標変換されたボクセル座標系の実数座標値（ｘ’，ｙ’，ｚ’）に隣接する８近傍の整数座標値に対応するボクセルの色値と不透明度に対して実数座標値の小数点以下の数値に応じて重み付けした値を合算することにより、ボクセルの色値と不透明度を取得する方法をとる。
【００４６】
＜実施の形態１：まとめ＞
本実施形態１に係るレイキャスティング装置１００は、起点座標探索とレイキャスティング処理において用いる座標変換の座標変換パラメータをあらかじめ算出しておき、これを用いて起点座標探索とレイキャスティング処理の各々において参照が必要な最小限のボクセルに限定して座標変換を実施する。これにより、あらかじめボクセル座標系から視点座標系に変換された全てのボクセルデータ構造体を作成した上で、起点座標探索とレイキャスティング処理を行う公知の方法に比べ、３次元のボクセルデータ構造体を保持するメモリが不要になるとともに、座標変換の回数を削減することができ、メモリアクセス負荷および演算負荷を抑制することができる。例えば、５１２×５１２画素のスライス画像が２５６枚で構成されるボクセル画像を視点座標系に変換すると、Ｚ方向変倍率を２．０として、ｘ：５１２×ｙ：５１２×ｚ：５１２ボクセルの視点座標系に変換されたボクセルデータ構造体を作成する必要があり、５１２の３乗回の座標変換が必要になる。これに対して、起点座標探索を行う際は、不透明度が０でないボクセルが即座に見つかれば、ｚ方向に後続するボクセルに対しては参照する必要が無く、座標変換を省略することができる。また、レイキャスティング処理を行う際は、仮想光の光強度が所定の値以下に減衰すれば積算処理を打ち切ることができ、ｚ方向に後続するボクセルに対しては参照する必要が無く、座標変換を省略することができる。これらの省略により、座標変換の回数を約１／３程度削減することができる。したがって、パーソナルコンピュータなどの一般的コンピュータであっても、実用的な時間内でレイキャスティング法を用いてボリュームレンダリング画像を生成することができる程度に、演算負荷を抑制することができる。
【００４７】
本実施形態１に係るレイキャスティング装置１００は、ボリュームレンダリング画像の一部の画素に対してレイキャスティング処理を開始する起点座標をあらかじめ探索し、その結果を探索制御テーブルとして保存しておく。そして、ボリュームレンダリング画像の残りの画素に対しては、探索制御テーブルに記録されている起点座標を基に補間する方法をとる。これにより、ボリュームレンダリング画像の全ての画素に対応して起点座標を探索する必要がなくなるので、起点座標を探索して座標変換を実行する回数を削減し演算負荷を抑制することができる。
【００４８】
本実施形態１に係るレイキャスティング装置１００は、探索制御テーブルを作成する際に、同じ起点座標を有する２つの画素に挟まれた中間画素については、両隣の画素の起点座標をそのまま用いる。これにより、起点座標を探索するための演算負荷を抑制することができる。
【００４９】
本実施形態１に係るレイキャスティング装置１００は、探索制御テーブルを作成する際に、ｚ方向に沿ってスキップしながら不透明度が０でない最初のボクセルを探索し、これが見つかった時点でｚ方向に反対向きに遡って不透明度が０である最初のボクセルを探索する。これにより、対象物の背景に存在する不透明度が０となる透明ボクセルの分布および対象物の内部の不透明度が０でない不透明ボクセルの分布がある程度連続的であることを前提として、起点座標を効率的に探索することができる。
【００５０】
本実施形態１に係るレイキャスティング装置１００は、レイキャスティング処理を実施する過程において不透明度が０であるボクセルに到達すると、ｚ方向に沿ってスキップしながら不透明度が０でない最初のボクセルを探索し、これが見つかった時点でｚ方向に反対向きに遡って不透明度が０である最初のボクセルを探索する。これにより、起点座標を探索する処理と同様に、レイキャスティング処理の対象とすべきボクセルを効率的に探索することができる。
【００５１】
＜実施の形態２＞
レイキャスティング処理において、ボリュームレンダリング画像の画質を向上させるため、具体的にはボリュームレンダリング画像中の被写体のエッジ部の段差・ジャギー（エイリアシングという）を除去する処理を行うため、座標変換を行う際、ボクセルの座標値を１ボクセル間の中間座標（サブサンプルという）だけ微小にオフセットを加えて（サブサンプリングという）、座標変換パラメータの算出Ｓ２２０、起点座標の探索Ｓ２３０およびレイキャスティング処理Ｓ２４０を各々複数回実施した上で、得られたボリュームレンダリング画像の画素値を平均化してスムージングする場合がある。これをアンチエイリアシングと呼ぶ。具体的には、座標変換パラメータの算出、起点座標の探索およびレイキャスティング処理を各々２回実行して平均化する場合、２回目の処理を実行する際、参照する視点座標系のボクセルの３次元座標値（ｘ，ｙ，ｚ）の各値に０．５だけ加算して座標変換を行い、ボクセル座標系における不透明度または／かつ色値を取得する。そうすると、２回目の処理で得られるボリュームレンダリング画像における被写体の像が１回目の処理で得られボリュームレンダリング画像に比べ、最大１画素の範囲で位置ずれが生じ、これらを重ねて平均化することによりエッジ部における段差が解消される。実施形態１で説明した手法はサブサンプリングを実施する際にも用いることができる。本発明の実施形態２では、その具体例について説明する。レイキャスティング装置１００の構成は実施形態１と同様である。
【００５２】
サブサンプリングを実施する場合は、中間座標だけオフセットを加えた上で座標変換を実施する必要がある。通常の整数座標を基準として、中間座標をどの方向に、どの程度の幅で付加するかについては、座標変換パラメータとしてあらかじめ定めておくことができる。例えばｘ軸、ｙ軸、ｚ軸の各々に沿って３つの中間座標を付加する場合、座標変換処理は（ｘ，ｙ，ｚ）、（ｘ＋０．２５，ｙ＋０．２５，ｚ＋０．２５）、（ｘ＋０．５，ｙ＋０．５，ｚ＋０．５）、（ｘ＋０．７５，ｙ＋０．７５，ｚ＋０．７５）に対して実施することになる。この場合は座標変換パラメータとして、ｘ軸方向、ｙ軸方向、およびｚ軸方向のサブサンプルオフセットｄｘ＝ｄｙ＝ｄｚ＝０．２５などと定めておけばよい。ｙｚ方向については、ｘ方向と異なるサブサンプルオフセットを加えることもできる。ただし、中間座標の種類が多いと処理負荷の増大を招くだけで必ずしも画質改善につながらないため、中間座標としてｄｘ＝ｄｙ＝ｄｚ＝０．５のみとし、（ｘ，ｙ，ｚ）と（ｘ＋０．５，ｙ＋０．５，ｚ＋０．５）の２通りで座標変換を行い、起点座標探索とレイキャスティング処理を各々２回実行して平均化する方法を用いてもよい。
【００５３】
ｄｘ＝ｄｙ＝ｄｚ＝０．２５と定めた場合、ｘ方向、ｙ方向、ｚ方向の各々にｄｘ＝ｄｙ＝ｄｚ＝０．２５、０．５、０．７５の３つの中間座標を加えてそれぞれ、座標変換パラメータの算出Ｓ２２０、起点座標の探索Ｓ２３０とレイキャスティング処理Ｓ２４０を実施することになるので、３つの中間座標それぞれに対応して同様に起点座標を求め探索制御テーブルを作成し直す必要がある。起点座標探索部１２３は、３つの中間座標それぞれに対応して起点座標を探索した結果を別の探索制御テーブルに記録する。この場合は４つの探索制御テーブルを作成することになる。ｙｚ座標についてｘ方向と異なる中間座標を加えてサブサンプリングを実施する場合は、これに対応して探索制御テーブルを増やして作成する。中間座標を加味して座標変換を行う場合でも図４と図５に示す手順を用いて効率的に起点座標を探索することができる。
【００５４】
レイキャスティング処理部１２４は、ボリュームレンダリング画像の各画素に対して中間座標に対応した探索制御テーブルを参照して起点座標を取得し、中間座標に対しても同様にレイキャスティング処理を実施する。さらに中間座標においても図７と同様の手法によりレイキャスティング法を効率的に実施することができる。
【００５５】
本実施形態２に係るレイキャスティング装置１００によれば、サブサンプリングによってボリュームレンダリング画像の画質を向上させる場合においても、起点座標探索やレイキャスティング処理を効率的に実施することができる。これにより、パーソナルコンピュータなどの一般的コンピュータであっても、実用的な時間内でサブサンプリングによりボリュームレンダリング画像の画質を向上させることができる。
【００５６】
＜実施の形態３＞
ユーザがボリュームレンダリング画像を閲覧する際に、視点（座標変換パラメータにおけるＸ軸周り、Ｙ軸周り、Ｚ軸周りの回転角Ｒｘ、Ｒｙ，Ｒｚ）や倍率（座標変換パラメータにおける拡大縮小倍率Ｓｃａｌｅ）を画面上で連続的に変更する場合がある。レイキャスティング装置１００は、変更後の視点や倍率に対応するボリュームレンダリング画像を再描画する。このときユーザは、例えば画面上でマウスをドラッグすることにより視点のパラメータ（Ｘ軸周り、Ｙ軸周り、Ｚ軸周りの回転角Ｒｘ、Ｒｙ，Ｒｚ）を変更する。ユーザがマウスをドラッグしている間もボリュームレンダリング画像をリアルタイムに算出し更新し続けることができれば、ユーザにとっての操作感を向上させることができる。しかし、パーソナルコンピュータなどの一般的コンピュータで診断等に活用できるレベルの高精細なボリュームレンダリング画像をリアルタイムで生成するのは演算負荷が重く、ユーザのマウス操作に追従させてボリュームレンダリング画像を更新し続けることは困難である。そこで本発明の実施形態３では、ユーザがマウスドラッグにより視点を変更している間における演算負荷を抑制する手法を説明する。レイキャスティング装置１００の構成は実施形態１と同様である。
【００５７】
図８は、ユーザがマウスをドラッグすることにより視点を変更するときのレイキャスティング装置１００が生成するボリュームレンダリング画像の例である。図８左図はユーザがマウスをドラッグしている間における画像である。図８右図はユーザがマウスドラッグを終了した後の画像である。
【００５８】
レイキャスティング装置１００は、ユーザがマウスをドラッグすることにより視点を変更するよう指示する座標変換パラメータの入力を受け取る。レイキャスティング処理部１２４および表示部１２５は、ユーザがマウスをドラッグしている間は、ボリュームレンダリング画像の画素を間引いて画像を生成して、出力先の装置またはデバイスに拡大して表示されるように出力する。例えばｘｙ方向ともに４画素ごとに間引いた画像を生成し、縦横４倍に拡大させて表示する。図８左図は画素を間引いた画像例である。これにより、ユーザがマウスをドラッグしている間においては、ボリュームレンダリング画像をリアルタイムで生成できる程度に演算負荷を抑制できる。ただし、画素の間引き条件は、パーソナルコンピュータのＣＰＵ性能とソースのボクセル画像のボクセル数により適宜変更する必要がある。図８の例は、ソースのボクセル画像がｘ：５１２×ｙ：５１２×ｚ：３７０、Ｚ方向変倍率：１．４に対して、図８右図に示す５１２×５１２画素の診断用途のボリュームレンダリング画像を生成する場合で、図８左図に示す縦横４画素ごとに間引いた１２８×１２８画素の画像であれば、演算負荷が１／１６に抑制され一般的なパーソナルコンピュータでリアルタイム（０．１秒以下）に生成することができる。図８左図ではｚ方向に対しては間引きを行っていないが、ｚ方向に対しても同様に４画素ごとに間引くことができ、その場合は演算負荷が１／６４に抑制されるため、一般的なパーソナルコンピュータより処理能力が低いタブレット端末等でもリアルタイムに生成することができる。
【００５９】
レイキャスティング装置１００は、ユーザがマウスドラッグを完了すると（すなわちユーザがマウスボタンから指を離すと）、その旨の信号を受け取る。レイキャスティング処理部１２４および表示部１２５は、ドラッグ完了後は画素を間引かずに図８右図のようなボリュームレンダリング画像を生成して、出力先の装置またはデバイスに応じて画像データを処理して出力する。
【００６０】
＜本発明の変形例について＞
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００６１】
以上の実施形態において、ボクセル画像作成部１２１は、ボクセル画像に対してスムージングを実施してもよい。例えばあるボクセルのｘ方向、ｙ方向、ｚ方向の各方向において隣接するボクセル（例えば、２６個の隣接するボクセル）の不透明度の代表値（例えば、平均値）を、中心ボクセルの不透明度として採用した上で、ボクセル画像を作成することができる。この時、色値に対してはスムージングを掛けないようにすると、スムージングの演算負荷を１／４に抑制できるとともに、生成されるボリュームレンダリング画像のボケを抑制することができる。ボクセルを参照する際に座標変換と併せて本発明に係る手法を実施する形態をとることもできるが、その場合、ボクセル座標系において参照されるボクセルに対して重複してスムージング処理が行われるため、演算負荷が却って増大する場合があるので、ボクセルのスムージングは起点座標の探索やレイキャスティング処理よりも前（例えばステップＳ２１０）に実施することが望ましい。
【００６２】
以上の実施形態において、ボクセル画像作成部１２１は、ボクセル画像の各ボクセルに対して陰影値を算出し、その陰影値を各ボクセルの色値に乗算することにより、ボリュームレンダリング画像に陰影を付加するようにしてもよい。陰影の中の拡散反射成分は、各ボクセルに隣接する２６近傍または６近傍のボクセル（ｘｙｚ各座標軸方向において２近傍）の不透明度の３次元的な変化を３次元勾配ベクトルとして算出し、その勾配ベクトルの単位ベクトルとあらかじめ定義された光源ベクトル（平行光の３次元的な方向を示す単位ベクトル）との内積をとることにより、計算することができる。不透明度の勾配ベクトルを算出する際に隣接ボクセルを参照する必要があるので、スムージングと同様に陰影計算は起点座標の探索やレイキャスティング処理よりも前（例えばステップＳ２１０）で、スムージング処理を実施する場合はスムージング処理を実施した後に実施することが望ましい。
【００６３】
以上の実施形態においては、探索制御テーブルのうち奇数番目の画素を補完する例を説明したが、これに代えて偶数番目の画素を補完してもよい。ｘｙ方向いずれにおいても同様である。また、縦横１画素置きではなく、縦横Ｍ（＞１）画素置きに起点座標の探索を行い、間に挟まれているＭ個の各画素を両隣の画素を基に補間するようにしてもよく、その場合は演算負荷を更に抑制することができる。
【００６４】
以上の実施形態においては、ボクセル画像作成部１２１、座標変換部１２２、起点座標探索部１２３、レイキャスティング処理部１２４を個別のモジュールとして記載したが、これらのうち２以上を一体のモジュールとして構成することもできる。さらにこれらモジュールを全体として１つのレイキャスティングプログラムとしてＣＰＵ１１０が実行することもできる。
【００６５】
上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の可搬記録媒体に置くことができる。可搬記録媒体にプログラムを格納した場合、その記録媒体をドライブから読み出してプログラムを実行することができる。
【００６６】
図９は、各機能部をプログラムとして構成した場合の構成例である。例えば記憶部１３０として上述した記憶装置または記憶媒体を用い、ボクセル画像作成部１２１〜レイキャスティング処理部１２４までの各機能部をプログラムとして構成して記憶部１３０に格納することができる。ＣＰＵ１１０が記憶部１３０からこれらプログラムを読み出して実行することにより、レイキャスティング装置１００の機能を実装することができる。そして、レイキャスティング処理部１２４で生成されるボリューレムレンダリング画像を表示部１２５に渡して視覚的に閲覧可能にする。
【符号の説明】
【００６７】
１００：レイキャスティング装置
１１０：ＣＰＵ
１２１：ボクセル画像作成部
１２２：座標変換部
１２３：起点座標探索部
１２４：レイキャスティング処理部
１２５：表示部
１３０：記憶部
【図１】
2019164619.tif 000003
【図２】
2019164619.tif 000004
【図３】
2019164619.tif 000005
【図４】
2019164619.tif 000006
【図５】
2019164619.tif 000007
【図６】
2019164619.tif 000008
【図７】
2019164619.tif 000009
【図８】
2019164619.tif 000010
【図９】
2019164619.tif 000011
【手続補正書】
【提出日】平成30年10月15日(2018.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成する処理をコンピュータに実行させるレイキャスティングプログラムであって、前記コンピュータに、
前記断層画像のボクセル値を基に設定された色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成ステップ、
前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系を、前記ボクセル画像の座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出ステップ、
前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索ステップ、
前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティングステップ、
を実行させ、
前記レイキャスティングプログラムは、前記コンピュータにさらに、前記視点を変更する座標変換パラメータを指示する座標変換パラメータの入力を受け取るステップを実行させるとともに
前記座標変換パラメータの入力を受け取るごとに、前記座標変換パラメータ算出ステップ、前記起点座標探索ステップおよび前記レイキャスティングステップを実行させて、前記ボリュームレンダリング画像を繰り返し表示するようにし、
前記起点座標探索ステップおよび前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータの入力を受け取っている間の期間においては、前記ボリュームレンダリング画像の画素のうち少なくとも一部を間引く間引き処理を実施したうえで起点座標を設定するとともに画素値を算出させ、
前記起点座標探索ステップおよび前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータの入力が停止した時点で前記間引き処理を実施せずに起点座標を設定するとともに画素値を算出させる
ことを特徴とするレイキャスティングプログラム。
【請求項２】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成する処理をコンピュータに実行させるレイキャスティングプログラムであって、前記コンピュータに、
前記断層画像のボクセル値を基に設定された色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成ステップ、
前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系を、前記ボクセル画像の座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出ステップ、
前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索ステップ、
前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティングステップ、
を実行させ、
前記起点座標探索ステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、起点座標を設定する際、前記ボクセル画像のボクセル間の中間座標を加味して座標変換を行い、前記起点座標探索ステップをＮ（Ｎ＞１）回実行させ、
前記レイキャスティングステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像の色値と不透明度を取得して前記ボリュームレンダリング画像の画素値を算出する際、前記中間座標を加味して座標変換を行い、前記レイキャスティングステップをＮ回実行させ、算出されたＮ個のボリュームレンダリング画像の画素値を平均することにより、前記ボリュームレンダリング画像の画素値を算出する
ことを特徴とするレイキャスティングプログラム。
【請求項３】
前記起点座標探索ステップにおいては、前記コンピュータに、
前記視点から前記視点座標系のｚ方向に沿って２ボクセル以上のボクセル間隔ごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０ではない最初の不透明ボクセルを探索するステップ、
前記最初のボクセルより前記視点の方向に、前記視点座標系のｚ方向に沿って１ボクセルごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０である最初の透明ボクセルを探索するステップ、
前記最初の透明ボクセルに隣接する不透明度が０ではないボクセルの前記視点座標系におけるｚ座標を前記起点座標として特定するステップ、
を実行させる
ことを特徴とする請求項１または２記載のレイキャスティングプログラム。
【請求項４】
前記ボリュームレンダリング画像は、ｘｙ方向それぞれに画素を有しており、
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボリュームレンダリング画像の一部の画素に対して、対応する前記ボクセル値を参照することにより、当該画素に対応する前記起点座標を探索し、前記起点座標を設定する第１のステップ、
前記第１のステップで探索した前記ボリュームレンダリング画像の画素の起点座標を参照しながら、前記第１のステップで探索しなかった前記ボリュームレンダリング画像の他の画素に対応する前記起点座標を設定する第２のステップ、
を実行させる
ことを特徴とする請求項１から３のいずれか１項記載のレイキャスティングプログラム。
【請求項５】
前記ボリュームレンダリング画像は、ｘｙ方向それぞれに画素を有しており、
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボリュームレンダリング画像のｘ方向およびｙ方向に沿ってＭ（Ｍは１以上の整数）画素飛ばしに前記起点座標を探索し、前記起点座標を設定する第１のステップ、
前記第１のステップにおいて探索された、第１画素に対応する起点座標とｘ方向にＭ画素飛ばして隣接する第２画素に対応する起点座標が等しい場合は、ｘ方向に前記第１画素と前記第２画素との間にｘ方向に配置されているＭ個の各画素に対応する起点座標として、前記第１画素に対応する前記起点座標と同じｚ座標値を設定する第２のステップ、
前記第１のステップおよび前記第２のステップにおいて設定された、第３画素に対応する起点座標とｙ方向にＭ画素飛ばして隣接する第４画素に対応する起点座標が等しい場合は、ｙ方向に前記第３画素と前記第４画素との間にｙ方向に配置されているＭ個の各画素に対応する起点座標として、前記第３画素に対応する前記起点座標と同じｚ座標値を設定する第３のステップ、
を実行させる
ことを特徴とする請求項１から３のいずれか１項記載のレイキャスティングプログラム。
【請求項６】
前記起点座標探索ステップにおいては、前記コンピュータに、前記ボリュームレンダリング画像の全ての画素について前記起点座標を設定した上でその結果を記録する探索制御テーブルを作成させ、
前記レイキャスティングステップにおいては、前記コンピュータに、前記探索制御テーブルが記録している前記起点座標を起点として、前記ボリュームレンダリング画像の画素値を算出させる
ことを特徴とする請求項１から請求項５のいずれか一項に記載のレイキャスティングプログラム。
【請求項７】
前記起点座標探索ステップにおいては、前記コンピュータに、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照する際、ボクセルが有する色値を参照することなく不透明度を参照することにより、前記起点座標を探索させる
ことを特徴とする請求項１から請求項６のいずれか一項に記載のレイキャスティングプログラム。
【請求項８】
前記起点座標探索ステップにおいては、前記コンピュータに、
前記ボクセル画像の範囲内において前記最初の不透明ボクセルが見つからなかった場合は、前記起点座標としてその旨を表す値を設定するステップを実行させ、
前記レイキャスティングステップにおいては、前記コンピュータに、
前記起点座標として前記最初の不透明ボクセルが見つからなかった旨を表す値が設定されている場合は、その起点座標を起点として前記ボリュームレンダリング画像の画素値を算出する処理をスキップさせ、所定の背景色を示す画素値を設定する
ことを特徴とする請求項３記載のレイキャスティングプログラム。
【請求項９】
前記レイキャスティングステップにおいては、前記コンピュータに、
前記視点から前記視点座標系のｚ方向に沿って前記ボクセル画像の各ボクセルの不透明度を取得することにより、不透明度が０である透明ボクセルであるか否かを判定する、不透明度判定ステップ、
前記不透明度判定ステップにおいて判定された透明ボクセルから開始して、不透明度が０ではない不透明ボクセルに至るまで、前記ｚ方向に沿って前記ボクセル画像の各ボクセルの不透明度を取得する、不透明ボクセル探索ステップ、
前記透明ボクセルから前記不透明ボクセルのｚ方向に１つ前に位置するボクセルまでの一連のボクセルに対して、前記ボリュームレンダリング画像の画素値を算出する処理をスキップするステップ、
を実行させる
ことを特徴とする請求項１から請求項８のいずれか一項に記載のレイキャスティングプログラム。
【請求項１０】
前記不透明ボクセル探索ステップにおいては、前記コンピュータに、
前記透明ボクセルから開始して、前記ｚ方向に沿って２ボクセル以上のボクセル間隔ごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０ではない最初の不透明ボクセルを探索するステップ、
前記最初の不透明ボクセルから前記透明ボクセルへ向かう方向に、前記ｚ方向に沿って１ボクセルごとに前記ボクセル画像の不透明度を取得することにより、不透明度が０である最初の透明ボクセルを探索するステップ、
前記最初の透明ボクセルに隣接する不透明度が０ではない不透明ボクセルより前記レイキャスティングステップを再開させるように制御するステップ、
を実行させる
ことを特徴とする請求項９に記載のレイキャスティングプログラム。
【請求項１１】
前記ボクセル画像作成ステップにおいては、前記コンピュータに、対象ボクセルの不透明度を算出するステップを実行させ、
前記ボクセル画像作成ステップにおいては、前記コンピュータに、前記対象ボクセルに隣接する２６個のボクセルがそれぞれ有する不透明度の平均値によって前記対象ボクセルが有する不透明度を更新するステップを実行させる
ことを特徴とする請求項１から請求項１０のいずれか一項に記載のレイキャスティングプログラム。
【請求項１２】
対象物を断層撮影することによって取得した断層画像に対してレイキャスティング法を用いてボリュームレンダリング画像を生成するレイキャスティング装置であって、
ボクセル値として色値と不透明度を有する前記対象物のボクセル画像を前記断層画像から作成するボクセル画像作成部、
前記ボクセル画像の座標系を、前記対象物に対する視点（ｘ，ｙ，０）を基準とした３次元（ｘ，ｙ，ｚ）の視点座標系に変換するパラメータであって、同一の前記視点に対して共通に用いる座標変換パラメータを算出する、座標変換パラメータ算出部、
前記視点から前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像を参照することにより、前記視点座標系のｚ座標のうち不透明度が０ではないものを起点座標として設定する起点座標探索部、
前記起点座標を起点として前記視点座標系のｚ方向に沿って、前記座標変換パラメータを用いて座標変換を行いながら前記ボクセル画像のボクセルの色値と不透明度を取得して前記ボリュームレンダリング画像の画素（ｘ，ｙ）の画素値を算出するレイキャスティング処理部、
を備えており、
前記レイキャスティング装置は、前記視点を変更する座標変換パラメータを指示する座標変換パラメータの入力を受け取るとともに、
前記座標変換パラメータの入力を受け取るごとに、前記座標変換パラメータ算出部による処理、前記起点座標探索部による処理、および前記レイキャスティング処理部による処理を実行して、前記ボリュームレンダリング画像を繰り返し表示するようにし、
前記起点座標探索部および前記レイキャスティング処理部は、前記座標変換パラメータの入力を受け取っている間の期間においては、前記ボリュームレンダリング画像の画素のうち少なくとも一部を間引く間引き処理を実施したうえで起点座標を設定するとともに画素値を算出し、
前記起点座標探索部および前記レイキャスティング処理部は、前記座標変換パラメータの入力が停止した時点で前記間引き処理を実施せずに起点座標を設定するとともに画素値を算出する
ことを特徴とするレイキャスティング装置。