【実施例1】
【0034】
図1に示すように、本実施例の仮想内視鏡装置10は、予め記憶させられた情報を読み出し可能に格納するROM14、必要に応じて情報を読み書き可能に記憶するRAM16、これらの情報を演算するCPU(中央演算装置)18などによって構成され、予め記憶されたプログラムに従って演算制御可能ないわゆるコンピュータ12などによって構成される。このコンピュータ12においては、入力インタフェース20を介してキーボードやマウスなどの入力装置24が接続され、そのコンピュータ12に対する入力操作を行なうことができる。また、出力インタフェース22を介して接続されたディスプレイ装置などの出力装置26が接続され、コンピュータ12の出力を視覚により出力することができる。例えばその内部に、情報を記憶可能なハードディスクドライブなどの記憶装置28が備えられている。記憶装置28には、たとえばCT装置により得られた被検体の3次元濃淡画像f、言い換えれば、被検体の単位体積であるボクセルごとの画素値(濃度値)が記憶されている。
【0035】
図2は、前記仮想内視鏡装置10における制御機能の概要、すなわち、CPU18を含むコンピュータ12において所定のプログラムを実行することにより得られる制御機能の概要を説明するブロック図である。このうち、視点位置設定手段50は、仮想内視鏡装置10によって得られる仮想内視鏡画像の視点位置pおよび視線方向Lを操作者の入力装置24を用いた操作に基づいて設定する。この視線方向Lは、たとえば視野の中心として定義される。また、視点位置設定手段50は、入力装置24を介して行われる操作に基づいて、動的に変化するように視点位置pおよび視線方向Lを変化させることができる。
【0036】
視野設定手段52は、仮想内視鏡装置10によって得られる仮想内視鏡画像の最大視野角Φを、操作者の入力装置24を用いた操作に基づいて設定する。最大視野角Φは、後述する
図3あるいは
図5のΦに対応するもので、仮想内視鏡画像において、前記視点位置設定手段50によって定められる視線方向Lに対して最も離れた一対の方向がなす角である。したがって、仮想内視鏡画像における視野角は前記視線方向Lと仮想内視鏡画像内のその視線方向から最も離れた方向とのなす角の2倍の角度に対応する。なお、視野角設定手段52は、入力装置24を介して行われる操作に基づいて、動的に変化するように最大視野角Φを設定することができる。なお、後述する仮想内視鏡画像生成手段56の全球型画像生成手段58によって生成される全球型仮想内視鏡画像においては、最大視野角Φの大きさは特に限定されない。一方、透視型画像生成手段62によって生成される透視型可塑内視鏡画像においては、一般に最大視野角Φが90度を超えると画像の歪みが大きくなり、最大視野角Φが180度に近づくにつれて画像が発散する。また、最大視野角Φが180度以上となることは理論的に不可能である。
【0037】
特定領域設定手段54は、仮想内視鏡画像における視野角のうち、特定の角度範囲を特定領域SRとして設定する。具体的にはたとえば視野角が179度である場合において、特定領域SRを表す特定の角度範囲を、180度≦θ≦220度度のように設定する。θは前記視線方向からの角度である。特定領域設定手段54による特定領域SRの設定は、操作者の入力装置24を用いた操作に基づいて行われる。あるいは後述する特徴部位抽出手段72を含むように自動的に設定することもできる。具体的には、たとえば後述する特徴部位抽出手段72によって抽出された特徴部位とあらかじめ定められた所定のマージンが含まれるように、特定領域SRを設定する。より具体的には、特徴部位が仮想内視鏡画像においてθが188度ないし192度の範囲に抽出された場合において、前記所定のマージンが4度と定められている場合、特徴部位抽出手段72は特定領域SRを、前記θを用いて184度≦θ≦196度の角度範囲のように設定する。なお前記所定のマージンは、前記特徴部位が仮想内視鏡画像において良好に認識しうるように表示されるように決定される値であって、上述のように予め定められる一方、その定められた値に固定されてもよいし、その後の仮想内視鏡画像の生成が行われるにつれて可変とされてもよい。この特定領域設定手段54によって設定される特定領域SRが本発明の特定の角度範囲に対応する。
【0038】
仮想内視鏡画像生成手段56は、前記記憶手段28に記憶された被検体の三次元画像データ、前記視点位置設定手段72によって設定された視点位置および視線方向、前記視野設定手段52によって設定された最大視野角Φに基づいて、その被検体の仮想内視鏡画像を生成する。すなわち、仮想内視鏡画像生成手段56は、前記被検体の前記視点位置に前記視線方向となるように内視鏡が挿入された場合に得られる内視鏡画像を前記三次元画像データに基づいて仮想的に生成する。本実施例においては、仮想内視鏡画像生成手段56は、全球型仮想内視鏡画像を生成する全球型画像生成手段58と、透視法を用いた透視型仮想内視鏡画像を生成する透視型画像生成手段62とを機能的に有している。
【0039】
このうち全球形画像生成手段58は、全球投影法により全球型仮想内視鏡画像を生成する。全球型仮想内視鏡画像は、視点位置設定手段72によって設定される視点位置を、球状に取り囲む視野を有する仮想内視鏡画像である。この全球型仮想内視鏡画像における最大視野角Φは、前記視野設定手段52によって設定される。
【0040】
図3は全球型仮想内視鏡画像の生成の概要を説明した図であって、視点位置pを含む一平面における視野と投影面上の画素との関係を示す図である。
図3に示すように視点位置pおよび視線方向Lが設定される場合において、視点位置pを中心としてその視点位置pを球状に取り囲む仮想投影面102を仮想的に設定する。このとき、視線方向Lは投影面102の中央を向くように設定されている。そして、視点位置pから仮想投影面102上に配置された所定の個数の画素のそれぞれの方向に対しレイ(Ray)を向けて、そのレイ上の各サンプル点の陰影値に不透明度を乗じながら積算することにより、前記画素のそれぞれにおける画素値を計算するいわゆるレイキャスティング法を実行する。このレイキャスティング法は、いわゆるボリュームレンダリング法の一手法である。
【0041】
全球形画像生成手段58は、
図3に示すような視点位置pを含む一平面について前記レイキャスティング法の実行が完了すると、前記視点位置pを含む平面を視線方向Lを中心として所定の角度だけ回転させる。そして、その回転された平面について同様にレイキャスティング法を実行する。これを前記平面が視線方向Lを中心にπだけ回転するまで繰り返すことにより、全球型仮想内視鏡画像が得られる。なお、前記所定の角度は、例えば投影面における画素数に応じて適宜決定される。
【0042】
図4は、最大視野角Φが360度である場合の全球型仮想内視鏡画像の生成を説明する別の図である。
図4(a)は、前記平面の視線方向Lを中心とした回転を説明する図であり、
図4(b)は、その回転される平面と全球型仮想内視鏡画像上の画素との関係を説明する図である。
図4(a)においては3つの直交する方向V、UおよびRが設定されている。なお、この方向V、UおよびRは、例えば、後述する視軸方向ベクトルd_v、上向き方向ベクトルd_u、および右向き方向ベクトルd_rの向き(
図7参照)と同じに設定される。
【0043】
図4においては、前記
図3に対応する視点位置pを含む平面の例として、3つのF1乃至F3が記載されている。平面Fn(n=1,2,…)内におけるレイの向きを表わす角度θ1は、レイと、視線方向LであるV方向とがなす角として定義される。すなわち、レイと視線方向Lとが一致する場合をθ1=0度として、U方向と逆向きに見た場合、すなわち
図4(a)において上方からみた場合に時計回りに回転する方向を正として定義されている。また、各平面Fnの視線方向回り、すなわちV方向回りの回転角度θ2は、
図4に示すように、平面Fnと、V方向とR方向とを含む平面(以下、「VR平面」。)とがなす角として定義される。すなわち、平面FnがVR平面内にある場合をθ2=0度として、V方向を中心として反時計回りに回転する方向を正として定義されている。
【0044】
図4(a)において太線で示されたように、レイの向きは前述のように定義されるθ1およびθ2を用いて表わすことができる。
図4(a)において、視点位置pを含む平面Fnがθ2の正方向に所定の角度だけ回転させられて決定されると、その平面内においてθ1が例えば−πからπまでの間で所定の間隔でレイの方向が順次決定され、その方向について画素値の算出が前記レイキャスティング法により実行される。そして、平面が再びθ2の正方向に所定の角度だけ回転させられて、同様にその平面内におけるレイの方向のそれぞれについて画素値の算出が実行される。これをθ2が0度から360度まで繰り返すことにより、視点位置pを球状に取り囲む視野、すなわち最大視野角Φが360度に対応する画素値が得られる。すなわち、平面がF1とされる場合(θ2=0度の場合)、視点位置pから平面F1上の三角形で表わされた各点へ向かう方向のそれぞれにレイの方向が設定される。また、平面がF2とされる場合は視点位置pから平面F2上の丸で表わされた各点へ向かう方向のそれぞれに、平面がF3とされる場合は視点位置pから平面F3上の四角形で表わされた各点へ向かう方向のそれぞれに、同様にレイの方向が設定される。
【0045】
なお、この手順は−πからπまでの間で所定の間隔で設定されるレイの方向θ1の1つについて、θ2が0度から360度まで変化させられるようにレイキャスティング法が実行された後、θ1が更新されて再度θ2が0度から360度まで変化させられるようにしてもよい。すなわち、視点位置pから設定された最大視野角Φの視野において所定の間隔でレイの方向を向けた場合の画素値の算出が行なうことができれば順序を問わない。
【0046】
図4(a)に示すように、平面Fn内に、視点位置pを中心とし適当な半径の円が設定される。この円が
図3の仮想投影面102に対応する。また、平面FnがV方向に順次回転させられると、前記円が回転することにより球が形成される。この球が本発明における視点位置を球状に取り囲む視野に対応する。この視点位置を球状に取り囲む視野のうち、視線方向Lを中心とした最大視野角Φ内の領域が全球型仮想内視鏡画像として投影面104に変換される。
【0047】
仮想投影面102上の各画素について画素値の算出が完了すると、全球型仮想内視鏡画像生成手段58は、所定の方法によって仮想投影面102を平面状に設けられた投影面104に変換し、全球型仮想内視鏡画像を得る。このとき、仮想投影面上の各画素は、それぞれ予め定められた関係などによって平面状の投影面104上の各画素に変換されるが、この変換においては、投影面104における歪みが少なくなるような変換が行なわれる。
【0048】
図4(b)は、全球型仮想内視鏡画像の投影面104を示しており、
図4(a)におけるレイの方向と、全球型仮想内視鏡画像上における画素の位置との関係の一例を説明する図である。
図4(a)において丸、三角形、および四角形で表わされたレイの方向と、
図4(b)において丸、三角形、および四角形で表わされた画素の位置とは、それぞれ相互に対応している。具体的には、全球型仮想内視鏡画像の投影面104における原点を通る直線Qn(n=1,2,…)上の画素のそれぞれが、
図4(a)における各平面Fn上にあるレイのそれぞれに対応している。このとき、
図4(b)の投影面104における原点を通る直線Qnの軸方向から原点回りの回転角度θ2が
図4(a)における視線方向回り、すなわちV方向回りの回転角度θ2と対応している。また、
図4(b)の投影面104における原点を通る直線Qn上の各画素は、それら各画素と投影面の原点との距離が、
図4(a)における平面Fn上の各レイの方向θ1と所定の関係を満たすようにされている。この所定の関係とは、後述する
図13、
図23、あるいは
図24などに示す関係である。具体的にはθ1が90度の場合に投影面104における座標原点に対応する。そしてθ1が負の場合にはx軸方向において負の領域に、また、θ1が正の場合にはx軸方向において正の領域にそれぞれ対応して前記所定の関係により対応づけられている。
【0049】
図2に戻って、特定領域処理手段60は、特定領域SR、すなわち特定の角度範囲が特定領域設定手段54によって設定された場合において、その特定領域SRが全球型仮想画像において拡大(伸長)あるいは縮小(圧縮)されて表示させるように全球型画像生成手段58を制御する。具体的には例えば、特定領域SRを全球型仮想画像において拡大(伸長)させる場合には、前述のように全球型可画像生成手段58が仮想投影面102上の各画素を平面状の投影面104の各画素に変換する際において、前記特定領域SRに対応する特定の角度範囲内にある画素の間隔が、その特定の角度範囲外にある画素の間隔に比べて広くなるように変換を行なう。より具体的には、仮想投影面102上の各画素の平面状の投影面104の各画素への変換の際に、前記特定の角度範囲内にある画素の間隔をその特定の角度範囲外にある画素の間隔に比べて広げる、前記特定の角度範囲外にある画素の間隔をその特定の角度範囲内にある画素の間隔に比べて狭める、あるいはそれらの両方を行なう。また、特定領域SRを全球型仮想画像において縮小(圧縮)させる場合には、前述のように全球型可画像生成手段58が仮想投影面102上の各画素を平面状の投影面104の各画素に変換する際において、前記特定領域に対応する特定の角度範囲内にある画素の間隔が、その特定の角度範囲外にある画素の間隔に比べて狭くなるように変換を行なう。より具体的には、仮想投影面102上の各画素の平面状の投影面104の各画素への変換の際に、前記特定の角度範囲内にある画素の間隔をその特定の角度範囲外にある画素の間隔に比べて狭める、前記特定の角度範囲外にある画素の間隔をその特定の角度範囲内にある画素の間隔に比べて広げる、あるいはそれらの両方を行なう。
【0050】
透視型画像生成手段62は、透視型仮想内視鏡画像を生成する。透視型仮想内視鏡画像は、視点位置設定手段72によって設定される視点位置pから、視野設定手段52によって設定される最大視野角Φとした場合に透視投影法によって得られる仮想内視鏡画像に対応する。
図5は透視型仮想内視鏡画像の概要を説明した図である。
図5に示すように視点位置pおよび視線方向Lが設定される場合において、視点位置pから視線方向Lに所定の距離だけ離れた位置に、その視線方向Lと直交する平面上に投影面106を設ける。この投影面106の大きさは前記最大視野角Φによって決定される。そして、視点位置pから投影面106上に配置された所定の個数の画素のそれぞれの方向に対しレイ(Ray)を向けて、そのレイ上の各サンプル点の陰影値を不透明度として積算することにより、前記画素のそれぞれにおける画素値を計算するいわゆるレイキャスティング法を実行する。このようにして投影面106上の各画素について画素値の算出が完了すると、投影面106上における透視型仮想内視鏡画像が得られる。具体的には前記全球型画像生成手段58による全球型仮想内視鏡画像の生成に比べ、レイ方向が常に視点位置pと投影面106上の着目する画素とを結ぶ直線とされる(すなわち、
図6のフローチャートにおいてステップS4が存在しない)点において異なる。なお、この透視型仮想内視鏡画像においては、視野の一定角度に対する投影面106上の画素の間隔は、最大視野角Φが広くなるほど画像の端部において広くなることから、画像の歪みが顕著なものとなる。
【0051】
表示手段64は、前記仮想内視鏡画像生成手段56によって生成された仮想内視鏡画像を出力装置26に表示することなどによって出力する。表示手段64は視野角表示手段66、表示切換手段68および対比表示手段70を機能的に有しており、前記仮想内視鏡画像生成手段56の全球型画像生成手段58によって生成される全球型仮想内視鏡画像、あるいは前記仮想内視鏡画像生成主案56の透視型画像生成手段62によって生成される透視型仮想内視鏡画像をそのまま表示するのみならず、これら各手段によって表示の態様を切り換えることができる。
【0052】
視野角表示手段66は、前記仮想内視鏡画像生成手段56によって生成された仮想内視鏡画像を出力装置26に表示する際に、その画像中に視野角を表示する記号を前記仮想内視鏡画像に重ね合わせて表示する。
【0053】
図16は、前記仮想内視鏡画像生成手段56の全球型画像生成手段58によて生成された全球型仮想内視鏡画像の例を示したものであり、さらにその全球型仮想内視鏡画像と、前記視野角表示手段66により表示される視野角を表示する記号とを重ね合わられた場合の例でもある。この画像は、出力装置26に表示される。
図16の全球型仮想内視鏡画像は最大視野角Φが360度とされているので、
図16において長方形状に表わされた全球型仮想内視鏡画像において、4つの各頂点は、視野角が360度に対応する。
図16の例においては、全球型内視鏡画像上に、視野角が180度である点を結んだ円と、視野角が320度である点を結んだ円の2つがそれぞれ視野角を表示する記号として表示されている。また、それら二つの円を識別するために、それらの円に対応する方向と視軸方向とのなす角の大きさ、すなわち視野角の1/2の大きさが数字によりそれらの円の近傍に表示されている。
【0054】
表示切換手段68は、仮想内視鏡画像生成手段56の全球型画像生成手段58によって生成される全球型仮想内視鏡画像と、透視型画像生成手段62によって生成される透視型仮想内視鏡画像とを切り換えて表示する。この切換表示は、例えば入力装置24によるユーザの指示に基づいて切換を行なうものであっても良いし、後述するように、仮想内視鏡画像の最大視野角Φに基づくなど自動的に行なわれてもよい。
【0055】
図17は起腹した(腹部に空気等を入れて膨らませた)腹部に挿入した腹腔鏡の画像を本発明の仮想内視鏡装置によって生成させた場合に得られる仮想内視鏡画像を示した図であって、
図17(a)は最大視野角Φを130度とした場合の透視型仮想内視鏡画像、
図17(b)は最大視野角Φを179度とした場合の透視型仮想内視鏡画像、
図17(c)は最大視野角Φを360度とした場合の全球型仮想内視鏡画像をそれぞれ示している。また、
図18は被検体の大腸に挿入した内視鏡の画像を本発明の仮想内視鏡装置によって生成させた場合に得られる仮想内視鏡画像を示した図であって、
図18(a)は最大視野角Φを112度とした場合の透視型仮想内視鏡画像、
図18(b)は最大視野角Φを179度とした場合の透視型仮想内視鏡画像、
図17(c)は最大視野角Φを360度とした場合の全球型仮想内視鏡画像をそれぞれ示している。
【0056】
これら
図17(a)および
図18(a)の各図に示すように、最大視野角Φが180度未満の場合には理論的に透視型仮想内視鏡画像を生成することができるが、画面の端に近づく程、画像のゆがみが大きくなっている。また、
図17(b)および
図18(b)の各図に最大視野角Φが179度の例で示したように、最大視野角Φが180度近づくと、画面が発散してしまい、透視型仮想内視鏡画像においては写っているものを判別することが用意ではない。一方
図17(c)および
図18(c)の各図に示すように、全球型仮想内視鏡画像においては、最大視野角Φが180度を超える場合においても、画像が歪みなく表示され、例えば
図17(c)において球状のポリープが視認できるなど、画像上に写っているものを好適に識別できる。そのため、前記表示手段68は、例えば仮想内視鏡画像の最大視野角Φが連続的に変化させられる場合において、最大視野角Φが予め設定された閾値を超える場合には透視型仮想内視鏡画像から全球型仮想内視鏡画像に表示を変更する。この閾値は、透視型仮想内視鏡画像において歪みが大きく画面上の表示が識別できなくなる程度を表わす値であり、予め実験的に設定されることができる。
【0057】
また、
図17および
図18に示したように、表示手段64が出力装置26に仮想内視鏡画像を表示する際に、予め記憶装置28に記憶されている三次元画像データfから生成される被検体の断層画像とともに関連づけられて表示されている。この関連付けは、例えば断層画像における断面に仮想内視鏡画像の視線方向Lが含まれるように表示されるなどとすることができる。このようにすれば、被検体の共通する部位を複数の方法によって表示される異なる画像により同時に視認することができる。
【0058】
図2に戻って、対比表示手段70は、前記仮想内視鏡画像生成手段56の全球型画像生成手段58によって生成される全球型仮想内視鏡画像と、透視型画像生成手段62によって生成される透視型仮想内視鏡画像とを対比可能に表示する。このとき、全球型仮想内視鏡画像と透視型仮想内視鏡画像とは、ともに共通する視点位置pからの仮想内視鏡画像とすることができる。このようにすれば、共通する視点位置から異なる方法により生成された仮想内視鏡画像を同時に参照することができる。すなわち、実際の内視鏡画像に近い透視型仮想内視鏡画像と、その透視型仮想内視鏡画像と同じ視点位置pにおいて最大視野角を広げたり、あるいは特定の角度範囲SRを拡大表示した全球型仮想内視鏡画像とを対比可能に同時に参照することができる。
【0059】
図19は、出力装置26に表示される仮想内視鏡画像の一例を説明する図であって、表示手段64の対比表示手段70により透視型仮想内視鏡画像と全球型仮想内視鏡画像とが対比可能に表示された場合を説明する図である。
図19の画像において、第1仮想内視鏡画像表示領域114と第2仮想内視鏡画像表示領域116が設けられており、第1仮想内視鏡画像表示領域114には透視型仮想内視鏡画像が表示され、第2仮想内視鏡画像表示領域116には全球型仮想内視鏡画像が表示されている。
図19の例においては、これらの透視型仮想内視鏡画像と全球型仮想内視鏡画像とは共通する視点位置pにおける画像であり、最大視野角Φは相互に異なったものとされているが、このような条件に限られない。
【0060】
なお
図19の例においては、第1仮想内視鏡画像表示領域114と第2仮想内視鏡画像表示領域116に加え、第3の表示領域118が設けられており、第1仮想内視鏡画像表示領域114および第2仮想内視鏡画像表示領域116に表示される仮想内視鏡画像の視点位置pに対応する複数種類の断層画像が表示されている。このようにすれば、仮想内視鏡画像の視点位置pや視線方向Lと3次元画像データfに基づいて生成される断層画像とを対応づけて表示することができる。しかしながら、この第3の表示領域118は必須ではない。
【0061】
図6は、仮想内視鏡画像生成手段56の全球型画像生成手段58における制御作動の要部について説明するフローチャートである。
図6のフローチャートは所定の間隔により繰り返し実行される。まず記憶手段28に対応するステップ(以下「ステップ」を省略する。)S1においては、被検体の三次元画像データfが読み出される。
【0062】
続いて視点位置設定手段50、視野設定手段52などに対応するS2においては、視点位置p、視線方向L、最大視野角Φの値が設定されるとともに、以降の処理において方向の基準となる視軸方向ベクトルd_v、右向き方向ベクトルd_r、および上向き方向ベクトルd_uが設定される。仮想内視鏡画像の生成の際に、ボリュームレンダリング法において、ボクセルの不透明度を表わすための不透明度テーブルの設定が行なわれる。この不透明度テーブルは、S1で取り込まれた例えばCT値である3次元画像データfについて、ボリュームレンダリングにおける不透明度との関連付けを行なうものである。なお、この不透明度テーブルは予め設定されて記憶されたものが用いられても良いし、ユーザによりコントラストや透明度を変更することが可能となるように、その都度設定されるようにしてもよい。
【0063】
図7を用いて、前記視軸方向ベクトルd_v、右向き方向ベクトルd_r、および上向き方向ベクトルd_uについて説明する。
図7に示すように、視軸方向ベクトルd_vは、投影面104の中央をその投影面104に垂直に交差する方向ベクトルであり、前記視点位置設定手段50において設定される視線方向Lに対応する。また、右向き方向ベクトルd_r、および上向き方向ベクトルd_uは、投影面104における右向きおよび上向きの方向を定義づけるものであって、それぞれ投影面104内において直交するベクトルである。具体的には本実施例においては、右向き方向ベクトルd_rは投影面104の長辺方向に、また、上向き方向ベクトルd_uは投影面104の短辺方向にそれぞれ平行なベクトルとして定義されている。なお、投影面104は、
図7において視軸方向ベクトルd_vと交差する周辺においては、仮想投影面102の接面となっている。
【0064】
図6に戻って、S3においては、投影面104における画像上の位置を表わす座標(x,y)が初期化され、(x,y)=(0.0)とされる。本実施例においては、投影面104における座標(x,y)は、投影面104の中心、すなわち視軸方向ベクトルd_v(視線方向L)と座標(x,y)面104との交点が座標原点とされる。また、投影面104の長辺の正方向の長さおよび負方向の長さ、また、短辺の正方向の長さおよび負方向の長さをそれぞれ1に規格化した規格化座標系が用いられる。従って、座標(x,y)は、−1≦x,y≦1である。この規格化座標系の例を
図12に示す。この座標(x,y)は、投影面104における各画素を表わす。
【0065】
S4においては、投影面104における画素の1つについて、その画素に対応するレイの方向を計算するためのレイ方向計算サブルーチンが実行される。
図8はこのレイ方向計算サブルーチンにおける制御作動の概要を説明するフローチャートである。まずSA1においては、投影面104における座標(x,y)、およびS2で設定された視軸方向ベクトルd_v、右向き方向ベクトルd_r、および上向き方向ベクトルd_uが読み込まれる。
【0066】
続くSA2においては、座標(x,y)における画素に対応するレイの上向き方向ベクトルd_u周りの回転角度θ1を算出するためのθ1算出サブルーチンが実行される。
図9はこのθ1算出サブルーチンにおける制御作動の概要を説明するフローチャートである。まずSB1においては、投影面104における座標(x,y)が設定される。続いて、SB2において、SB1で設定された座標(x,y)と原点との距離lが算出される。この距離lは幾何学的な距離であり、l
2=x
2+y
2に基づいて算出される。
【0067】
続いてSB3においては、SB2で算出された距離lと座標(x,y)における上向き方向ベクトルd_u周りの回転角度θ1とを関連づけるための関係f(l)が設定される。本実施例においては、f(l)は
図13に示すように距離lと回転角度θ1とは線形の関係を有するように設定されている。このようにf(l)が設定される場合において、規格化座標系で表わされた投影面104において、各回転角度θ1に対応する座標(x,y)を示したのが
図12の点線である。
図12の点線は、それぞれ、回転角度θ1がπ/4、π/2、3π/4、πとなる座標(x,y)を結んだ線である。
【0068】
SB4においては、SB2で算出された距離l、およびSB3で設定された距離lと回転角度θ1との関係f(l)に基づいて上向き方向ベクトルd_u周りの回転角度θ1が算出される。
【0069】
図8に戻って、SA3においては、座標(x,y)における画素に対応するレイの右向き方向ベクトルd_r周りの回転角度θ2を算出するためのθ2算出サブルーチンが実行される。
図10はこのθ2算出サブルーチンにおける制御作動の概要を説明するフローチャートである。まずSC1においては、投影面104における座標(x,y)が設定される。続いて、SC2においては、x座標の値が0であるか否かが判断される。x座標の値が0である場合には本ステップの判断が肯定されて、SC3が実行される。また、x座標の値が0でない場合には本ステップの判断が否定されて、SC7が実行される。
【0070】
x座標の値が0である場合に実行されるSC3においては、回転角度θ2がいったん0とされる。続いてSC4においてはy座標が0より大きい値であるか否かが判断される。y座標が0より大きい場合には本ステップの判断が肯定され、SC5が実行される。また、y座標の値が0以下である場合にはステップSC4の判断は否定され、SC6が実行される。SC5においてはSC3で0とされた回転角度θ2の値がπ/2とされる。また、SC6においてはSC3で0とされた回転角度θ2の値は−π/2とされる。
【0071】
x座標の値が0でない場合に実行されるSC7においては、回転角度θ2の値はy座標の値に対するx座標の値の逆正接、すなわちθ2=atan(y/x)のように設定される。
【0072】
SC8においては、x座標の値が0未満であって、かつy座標の値が0より大きいか否かが判断される。この判断が肯定される場合には、SC9が実行される。SC9においては、SC7で算出された回転角度θ2の値にπが加算される。
【0073】
また、SC10においては、x座標の値が0以下であって、かつy座標の値が0以下であるか否かが判断される。この判断が肯定される場合には、SC10が実行される。SC10においては、SC7で算出された回転角度θ2の値にπが加算される。
【0074】
SC12においては、SC1乃至SC11の実行において得られたθ2の値が、右向き方向ベクトルd_r周りの回転角度θ2とされる。なお、このように設定されるθ2は、
図12に示されたように、座標(x,y)と原点とを結ぶ直線とx軸とのなす角に対応している。
【0075】
図8に戻ってSA4においては、視軸方向ベクトルd_vが、上向き方向ベクトルd_u周りにθ1だけ回転されてd’_rayとさせられる。また、SA5においては、SA4で算出されたベクトルd’_rayが右向き方向ベクトルd_r周りにθ2だけ回転されてd’’_rayとさせられる。SA6において、SA5で算出されたベクトルd’’_rayが、座標(x,y)における画素に対応するレイの方向を示すベクトルd_rayとして決定される。
【0076】
図6に戻って、S5においては、座標(x,y)に対応する画素の陰影値を計算するための陰影値計算サブルーチンが実行される。
図11は、この陰影値計算サブルーチンにおける制御作動の概要を説明するフローチャートである。
【0077】
まず、SD1においては、3次元画像データf、視点位置p、レイ方向ベクトルd_ray、および不透明度テーブルが設定される。このうち、3次元画像データfは前記
図6のS1において取り込まれたものであり、視点位置p、不透明度テーブルはS2において設定されたものである。また、レイ方向ベクトルd_rayはS4において算出されたものである。
【0078】
SD2においては、レイと3次元画像とが交わる位置について、そのレイが3次元画像との交わりを開始する交わり開始位置指標k_beginおよびレイが3次元画像との交わりを終了する交わり終了位置指標k_endがそれぞれ算出される。このレイと3次元画像との交わりとは、レイがその進行方向であるレイ方向ベクトルd_rayに向かって進んだ場合に、3次元画像において被検体の体積領域に入り込むことを示している。具体的には、レイ上の点が、視点位置p、単位長さのレイ方向ベクトルd_ray、および任意の実数である位置指標kを用いて、p+k*d_rayで表わされる場合に、そのレイが3次元画像との交わりを開始する際の前記位置指標kの値が交わり開始位置指標k_beginであり、交わりを終了する際の前記位置指標kの値が交わり終了位置指標k_endである。
【0079】
図14は、これら交わり開始位置および交わり終了位置を説明する図である。
図14において視点位置pから投影面上のある画素に対応するレイに着目している。このレイは、点Aにおいて立方体状に表わされた被検体に対応する3次元画像の内部に入り、点Bにおいて3次元画像の外に出る。この点Aが前記交わり開始位置に対応し、点Bが交わり終了位置に対応する。
【0080】
SD3においては、レイ上の位置を表わすための位置指標kの値が、前記交わり開始位置k_beginとされる。
【0081】
SD4においては、被検体を含む3次元画像において注目する位置を表わす注目3次元画素位置vが算出される。この注目3次元画素位置vはSD3で設定された位置指標kを用いて、v=p+k*d_rayで表わされる。
【0082】
SD5においては、SD4で算出された注目3次元画素位置vにおける不透明度が算出される。本実施例においては、この不透明度は具体的には3次元画像データfとして記憶手段28に記憶された画素値から前記不透明度テーブルを用いて変換される。具体的には例えば、被検体内において、予め相互に直交する3軸方向にそれぞれ所定の間隔を有する各点の画素値が3次元画像データfとして予め記憶されている。この場合には、前記注目3次元画素位置vを囲む近傍8点の画素値を抽出し、それら近傍8点のそれぞれの画素値から得られる不透明度を、それら8点のそれぞれと前記注目3次元画素位置vとの距離に応じた線形補間を行ない、前記注目三次元画素位置vにおける不透明度として算出する。なお、前述の
図14の例においては、交わり開始位置である点Aから交わり終了位置である点Bの間における三角形で表わされた点のそれぞれが注目3次元画素位置vに対応する。
【0083】
不透明度の算出について、
図15を用いて詳しく説明する。なお、
図15におけるXYZ座標系は説明のために便宜的に表わしたものであり、前述の実施例における座標系とは異なってもよい。
図15においてサンプル点S(p,q,r)は不透明度を算出しようとする注目3次元画素位置vに対応する。また格子点Piは、3次元画像中fにおいて予め不透明度が得られている点を表わしている。
図15におけるサンプル点S(p,q,r)での不透明度α
SはSの近傍格子点8点Piでの不透明度α
Pi(i=1,2,…,8)からそれぞれ次の線形補完によって算出される。
α
s=ω
1*α
P1+ω
2*α
P2+…ω
8*α
P8
ここでω
iは係数を表わし、次式で定義される。
ω
1={1−(p−x)}{1−(q−y)}{1−(r−z)}
ω
2=(p−x){1−(q−y)}{1−(r−z)}
ω
3={1−(p−x)}(q−y){1−(r−z)}
ω
4=(p−x)(q−y){1−(r−z)}
ω
5={1−(p−x)}{1−(q−y)}(r−z)
ω
6=(p−x){1−(q−y)}(r−z)
ω
7={1−(p−x)}(q−y)(r−z)
ω
8=(p−x)(q−y)(r−z)
【0084】
SD6においては、注目3次元画素位置vを囲む近傍8点におけるグラディエントベクトル(勾配ベクトル)grad(v)が算出される。この勾配ベクトルgrad(v)は、注目3次元画素位置vを囲む近傍8点のそれぞれについて、視線方向ベクトルd_v、上向き方向ベクトルd_u、右向き方向ベクトルd_r方向にそれぞれ隣接する画素に対する
画素値f
u,v,rの変化を表わすものであって、視線方向ベクトルd_v、上向き方向ベクトルd_u、右向き方向ベクトルd_rの各方向の変化量を成分とするベクトルとして表わされる。具体的には例えば、
grad(v)=(f
v,u,r−f
v−1,u,r, f
v,u,r−f
v,u−1,r, f
v,u,r−f
v,u,r−1)
のように表わされる。ここでf
v,u,rは注目3次元画素位置vにおける画素値を表わしており、f
v−1,u,rはその注目3次元画素位置vよりもd_v方向において手前に位置する画素位置の画素値を表わしている。上向き方向、右向き方向についても同様である。
【0085】
SD7においては、注目3次元画素位置vにおける陰影値の算出が行なわれる。陰影値の算出においても、前述のSD5における不透明度の算出と同様に、注目3次元画素位置vを囲む近傍8点の陰影値を算出し、それら近傍8点のそれぞれの陰影値を、それら8点のそれぞれと前記注目3次元画素位置vとの距離に応じた線形補完を行なうことにより、前記注目三次元画素位置vにおける陰影値として算出する。
【0086】
陰影値の算出についても、
図15を用いて説明する。
図15においてサンプル点S(p,q,r)は陰影値を算出しようとする注目3次元画素位置vに対応する。また格子点Piは、3次元画像中fにおいて予め不透明度が得られている点を表わしている。
図15におけるサンプル点S(p,q,r)での陰影値c
sk(k=R,G,Bのそれぞれ)はSの近傍格子点8点Piでの陰影値c
Pik(i=1,2,…,8)からそれぞれ次の線形保管によって算出される。
c
sk=ω1*c
P1k+ω2*c
P2k+…+ω8*c
P8k
なお、ωiは前述の係数と同様である。ここで、Piにおけるc
Pikは次式のように視軸方向ベクトルd_vと法線方向ベクトルN
Piとの内積値にPiでの色情報I
Pikを乗算することにより求められる。すなわち、
c
Pik=(I・N
Pi)・I
Pik
である。ここで、NPiはSD6において算出された、注目3次元画素位置vを囲む近傍8点Piにおける勾配ベクトルgrad(Pi)を正規化したものであり、次式によって得られる。
NPi=grad(Pi)/||grad(Pi)||
【0087】
続いてSD8においては陰影値の積算が行なわれる。すなわち、交わり開始位置指標に対応するk=k_beginから、レイと重なる3次元画像の陰影値が積算される。Ckをサンプル点kまでの陰影値の積算値とすると、Ckは次式で表わされる。
Ck=Ck−1+βk*αk*ck
ここで、ckはサンプル点kにおける陰影値、αkはサンプル点kにおける不透明度である。またβkはサンプル点kまでの透明度の積算値であり、次式で定義される。
βk=βk−1*(1−αk)
なお、βの初期値であるβ0は、β0=1としている。
【0088】
SD9においては、注目3次元画素位置vをレイ上のレイ方向ベクトルd_ray方向に所定方向だけ先のものするため、位置指標kの値が所定値stepだけ大きくされる。
【0089】
SD10においては、本サブルーチンが終了するための所定の打ち切り条件が成立したか、あるいは位置指標の値が交わり終了点k_end以上となったか否かが判断される。このうち、所定の打ち切り条件は、例えば、SD8において算出される陰影値の積算値が不透明に対応する所定値を上回ることである。このようにすれば、レイキャスティングを投影面上の画素について順次実行する際に、投影面に近いサンプル点が不透明の場合、そのサンプル点から奥にあるサンプル点の陰影値は投影面に影響しないため、計算を省略することができるという利点がある。また、位置指標の値が交わり終了点k_end以上となった場合には、レイはすでに3次元画像と重なっていないため、陰影値の積算を必要としないためである。このように、所定の打ち切り条件が成立したか、あるいは位置指標の値が交わり終了点k_end以上となった場合には、本ステップの判断が肯定されて、直前のSD8において算出された陰影値の積算値が出力されて、本フローチャートが終了させられる。このように算出された陰影値の積算値が、投影面104の各画素に対応する陰影値とされる。一方、SD10の判断が否定された場合には、SD9で新たに設定された注目3次元画素位置vについて、SD4乃至SD10の処理が繰り返し実行される。
【0090】
図6に戻ってS6においては、投影面104の別の画素について陰影値の算出を行なうため、投影面104における画素に対応する座標(x,y)が更新される。具体的には例えば、一つ右に位置する画素について着目し、それ以上右に画素が存在しない場合には、1つ下で最も左に位置する画素について着目するように座標(x,y)が更新される。
【0091】
S7においては、投影面104における全ての画素について陰影値の算出が終了したか否かが判断される。投影面104における全ての画素について陰影値の算出が終了した場合には本ステップの判断が肯定され、S8が実行される。また、投影面104において陰影値の算出が終了していない画素が存在する場合には本ステップの判断が否定され、S6で更新された座標(x,y)に対応する画素について陰影値の算出が行なわれる。
【0092】
S7の判断が肯定された場合に実行されるS8においては、全球型仮想内視鏡画像が生成される。具体的には、投影面104上の各画素の色調が、S4乃至S7が繰り返し実行されて得られた陰影値とされることにより、全球型仮想内視鏡画像が生成される。また、S8に続いて実行されるS9は、表示手段64に対応するものであって、生成された仮想内視鏡画像の出力装置26への出力、すなわち表示が行なわれる。
【0093】
図20は、S8において仮想内視鏡画像が出力装置26に表示される際に、その画像中に視野角を表示する記号が前記仮想内視鏡画像に重ね合わせて表示する視野角表示制御の制御作動を説明するフローチャートである。このフローチャートにおける制御作動は表示制御手段68に対応する。
【0094】
まずSE1においては、ユーザにより視野角を表示する記号の重ね合わせ表示を行なう旨が設定されたか否かが判断される。ユーザにより表示を行なう旨の入力が行なわれた場合には本ステップの判断が肯定され、SE2以降が実行される。また、ユーザにより表示を行なう旨の入力が行なわれなかった場合には、本ステップの判断は否定され、フローチャートが終了させられる。
【0095】
SE2においては、仮想内視鏡画像の投影面104、106において、表示を行なおうとする視野角に対応する画素を結ぶ線が算出される。前述の
図16の例においては、例えば視野角が180度に対応する画素を結ぶ円と視野角が320度に対応する画素を結ぶ円が算出される。
【0096】
SE3においては、SE2で算出された線が仮想内視鏡画像と重ね合わせて表示が行なわれる。具体的には、SE2で算出された線が仮想内視鏡画像において識別可能な色で表示される。
図16の例では白い線により表示されている。
【0097】
図21は、S8において仮想内視鏡画像生成手段56の全球型画像生成手段58によって生成される全球型仮想内視鏡画像と、透視型画像生成手段62によって生成される透視型仮想内視鏡画像とを切り換えて表示するための表示切換制御における制御作動を説明するフローチャートである。このフローチャートにおける制御作動は表示切換手段68に対応する。
【0098】
まずSF1において、表示している仮想内視鏡画像が透視型仮想内視鏡画像であるか否かが判断される。表示している仮想内視鏡画像が透視型仮想内視鏡画像である場合には本ステップの判断が肯定され、SF2が実行される。一方、表示している仮想内視鏡画像が全球型仮想内視鏡画像である場合には、本ステップの判断が否定され、SF5が実行される。
【0099】
SF2においては、ユーザにより表示切換を行なう旨の操作が行なわれたか否かが判断される。ユーザにより表示切換を行なう旨の操作が行なわれた場合には本ステップの判断が肯定され、SF4が実行される。ユーザにより表示切換を行なう旨の操作が行なわれなかった場合には、本ステップの判断は否定され、SF3が実行される。
【0100】
SF3においては、表示している透視型仮想内視鏡画像の視野角Φが、予め定められた閾値を上回っているか否かが判断される。この視野角の閾値は、透視型仮想内視鏡画像を用いた場合に、画像に表示されているものが識別することができなくなる程度にゆがむ角度とされる。視野角Φが、予め定められた閾値を上回っている場合には、本ステップの判断が肯定されて、SF4が実行される。一方、視野角Φが、予め定められた閾値を上回っていない場合には、表示の切換を行なうことなく本フローチャートが終了される。
【0101】
SF2の判断が肯定された場合、およびSF3の判断が肯定された場合に実行されるSF4においては、表示手段64により表示される仮想内視鏡画像を透視型仮想内視鏡画像から全球型仮想内視鏡画像に切り換える。
【0102】
SF5においては、ユーザにより表示切換を行なう旨の操作が行なわれたか否かが判断される。ユーザにより表示切換を行なう旨の操作が行なわれた場合には本ステップの判断が肯定され、SF6が実行される。ユーザにより表示切換を行なう旨の操作が行なわれなかった場合には、本ステップの判断は否定され、表示の切換を行なうことなく本フローチャートが終了される。
【0103】
SF5の判断が肯定された場合に実行されるSF6においては、表示手段64により表示される仮想内視鏡画像を全球型仮想内視鏡画像から透視型仮想内視鏡画像に切り換える。
【0104】
前述の実施例によれば、仮想内視鏡画像生成手段56の全球型画像生成手段58により、視点位置pを球状に取り囲む視野を有する全球型仮想内視鏡画像が生成され、表示手段64によってその全球型仮想内視鏡画像が出力装置26に表示されるので、仮想内視鏡装置10により視点位置pを球状に取り囲む広い視野を有する全球型仮想内視鏡画像を得ることができる。
【0105】
前述の実施例によれば、仮想内視鏡画像生成手段56の全球型画像生成手段58は、視点位置pから視野に対しレイを発生させることによりボリュームレンダリング法を用いて前記全球型仮想内視鏡画像を生成するので、3次元画像データfに基づいて視点位置pを球状に取り囲む広い視野を有する全球型仮想内視鏡画像を生成することができる。
【0106】
前述の実施例によれば、仮想内視鏡画像生成手段56の全球型画像生成手段58は、予め設定された最大視野角Φの全球型仮想内視鏡画像を生成するので、視点位置pを球状に取り囲む視野について、操作者によって予め自由に設定された広い視野角の全球型仮想内視鏡画像を得ることができる。特に実際の内視鏡装置や透視法によっては実現できない、最大視野角Φが180度を上回る全球型仮想内視鏡画像を生成することができる。また、最大視野角Φが180度未満であっても透視型仮想内視鏡画像においては画像が発散して判読が困難となる最大視野角Φに対応した全球型仮想内視鏡画像を生成することができる。
【0107】
前述の実施例によれば、表示手段64により、全球型仮想内視鏡画像と、視野角を表示する記号とが重ね合わせて出力装置26に表示されるので、視点位置pを球状に取り囲む広い視野を有する全球型仮想内視鏡画像において視野角を把握することができる。
【0108】
前述の実施例によれば、仮想内視鏡画像生成手段56においては、全球型画像生成手段58により生成される全球型仮想内視鏡画像に加えて、透視型画像生成手段62により視点位置pから透視法によって生成される透視型仮想内視鏡画像が生成され、表示手段64の表示切換手段68により、前記全球型仮想内視鏡画像と前記透視型仮想内視鏡画像とが切り換えて表示されるので、同一の視点位置pにおいて視点位置を球状に取り囲む広い視野を有する前記全球型仮想内視鏡画像と、実際の内視鏡画像に近い前記透視型仮想内視鏡画像とを切り換えて観察することができる。
【0109】
また前述の実施例によれば、表示手段64は、最大視野角Φに応じて全球型仮想内視鏡画像と透視型仮想内視鏡画像と切り換えて出力装置26に表示するので、最大視野角Φに応じて仮想内視鏡画像を自動的に切り換えて表示することができる。
【0110】
前述の実施例によれば、仮想内視鏡画像生成手段56においては、全球型画像生成手段58により生成される全球型仮想内視鏡画像に加えて、透視型画像生成手段62により視点位置pから透視法によって生成される透視型仮想内視鏡画像が生成され、表示手段64の対比表示手段70により、前記全球型仮想内視鏡画像と、前記透視型仮想内視鏡画像とが対比可能に表示されるので、共通する視点位置から異なる方法により生成された仮想内視鏡画像を同時に参照することができ、仮想内視鏡画像の観察における利便性が向上する。
【0111】
続いて、本発明の別の実施例について説明する。以下の説明において、実施例相互に共通する部分については、同一の符号を付して説明を省略する。