(57)【要約】【課題】臓器内部の描画速度の高速化を図ること。【解決手段】（Ａ）は、時刻ｔ１の心臓モデルＭ（ｔ１）である。可視化装置は、時刻ｔ１の心臓モデルＭ（ｔ１）において、領域となる面を指定する。（Ｂ）可視化装置は、指定領域Ｒから奥行き方向の心筋部分を透過処理する。このように、心筋部分を刳り貫くのではなく、心筋部分はそのままにして透過させることにより、透過した心筋部分から、心臓モデルの内部を視認することができる。したがって、指定領域Ｒに対応する心筋部分を透過処理するだけで、時刻ｔ１での血流ベクトルの方向を視認することができる。（Ｃ）は、時刻ｔ２の心臓モデルＭ（ｔ２）での指定領域Ｒに対応する心筋部分を透過処理した状態を示す。時刻ごとに、指定領域Ｒに対応する心筋を透過処理した心臓モデルを描画することにより、内部の血流ベクトルの方向を時系列で視認することができる。【選択図】図１
2014010579.tif 000002
【特許請求の範囲】
【請求項１】
臓器を描画する可視化プログラムにおいて、
コンピュータに、
入力された法線ベクトルに沿って所定の立体的形状を生成させ、
前記生成された所定の立体的形状と前記臓器の形状とが重複する重複部分を算出させ、
前記算出した重複部分の透過率を変更させ、
前記透過率を変更した重複部分を含む臓器の形状を描画させることを特徴とする可視化プログラム。
【請求項２】
前記臓器の形状が変化する場合、
前記可視化プログラムはさらに、
前記コンピュータに、
前記臓器の形状の変化に関わらず、前記生成された所定の立体的形状と前記臓器の形状とが重複する重複部分を再算出させ、
前記再算出した重複部分の透過率を変更させ、
前記透過率を変更した重複部分を含む臓器の形状を描画させることを特徴とする請求項１記載の可視化プログラム。
【請求項３】
前記臓器の形状が変化する場合、
前記可視化プログラムはさらに、
前記コンピュータに、
変化前の臓器の形状の重複部分を変化後の臓器の形状に写像させることにより、変化後の臓器の重複部分を算出させ、
前記変化後の臓器の重複部分の透過率を変更させ、
前記透過率を変更した前記変化後の臓器の重複部分を含む臓器の形状を描画させることを特徴とする請求項１記載の可視化プログラム。
【請求項４】
前記臓器の形状が変化する場合、
前記可視化プログラムはさらに、
前記コンピュータに、
変化前の臓器の形状に基づいて、変化後の臓器において前記所定の立体的形状を再生成させ、
前記再生成された所定の立体的形状と前記変化後の臓器の形状とが重複する重複部分を算出させ、
前記変化後の臓器の重複部分の透過率を変更させ、
前記透過率を変更した前記変化後の臓器の重複部分を含む臓器の形状を描画させることを特徴とする請求項１記載の可視化プログラム。
【請求項５】
前記所定の立体的形状の生成では、
前記コンピュータに、
視点からの視線方向に沿って前記所定の立体的形状を生成させることを特徴とする請求項１〜４のいずれか一つに記載の可視化プログラム。
【請求項６】
前記可視化プログラムはさらに、
前記コンピュータに、
前記所定の立体的形状に隣接する部分の物理値を表示させることを特徴とする請求項１〜５のいずれか一つに記載の可視化プログラム。
【請求項７】
臓器を描画する可視化方法において、
コンピュータが、
入力された法線ベクトルに沿って所定の立体的形状を生成し、
前記生成された所定の立体的形状と前記臓器の形状とが重複する重複部分を算出し、
前記算出した重複部分の透過率を変更し、
前記透過率を変更した重複部分を含む臓器の形状を描画することを特徴とする可視化方法。
【請求項８】
臓器を描画する可視化装置において、
前記臓器の形状データを記憶する記憶部と、
入力された法線ベクトルに沿って所定の立体的形状を生成する生成部と、
前記記憶された臓器の形状データを用いて、前記生成された所定の立体的形状と前記臓器の形状とが重複する重複部分を算出する算出部と、
前記算出した重複部分の透過率を変更する変更部と、
前記透過率を変更した重複部分を含む臓器の形状を描画する描画部と、
を有することを特徴とする可視化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可視化プログラム、可視化方法、および可視化装置に関する。
【背景技術】
【０００２】
従来、電気的な信号により収縮する心臓の心筋により全身に向けて血液が拍出される心臓の現象を再現する数値解析が行われている。一般的には、数値解析の結果は、３次元のコンピュータグラフィックス技術を用いてカラー分布により表示される。心筋内部の仕事や仕事率などの物理値の分布については、断面や等値面による領域表示により把握される。心臓に限らず、胃、小腸、大腸、膀胱等の臓器に関する数値シミュレーションを計算機で行い、その数値シミュレーションの結果を可視化装置に表示することにより、臓器に関する数値シミュレーションの可視化を行う技術が従来から知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｗｉｌｌ  Ｓｃｈｒｏｅｄｅｒ，Ｋｅｎ  Ｍａｔｒｉｎ，Ｂｉｌｌ  Ｌｏｒｅｎｓｅｎ  著  Ｔｈｅ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  Ｔｏｏｌｋｉｔ  ２ｎｄ  Ｅｄｉｔｉｏｎ，１９９７年１月  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  ＰＴＲ  ｐｐ．３６０−３６２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、内部が空洞である心臓、胃、小腸、大腸、膀胱等の臓器の内部を観察したい場合には、再度、臓器のモデルを作成する必要がある。すなわち、臓器のモデリング工程に戻り、内部を観察したい箇所に穴を開けた臓器のモデルを作成してから、再度レンダリングを行う必要がある。したがって、臓器の内部を高速に描画することは困難である。たとえば、心臓内部の血流分布を確認する場合、観察したい箇所に穴を開けた心臓のモデルを作成してから、再度レンダリングを行う必要があり、心臓内部の血流の移動方向を高速に描画することは困難である。
【０００５】
本発明は、臓器内部の描画速度の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、臓器を描画する可視化プログラム、可視化方法、および可視化装置において、入力された法線ベクトルに沿って所定の立体的形状を生成し、前記生成された所定の立体的形状と前記臓器の形状とが重複する重複部分を算出し、前記算出した重複部分の透過率を変更し、前記透過率を変更した重複部分を含む臓器の形状を描画する可視化プログラム、可視化方法、および可視化装置が提案される。
【発明の効果】
【０００７】
本発明の一側面によれば、臓器内部の描画速度の高速化を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１にかかる心臓モデルの可視化例を示す説明図である。
【図２】図２は、心臓モデルの断面図である。
【図３】図３は、実施の形態１にかかる可視化装置のハードウェア構成例を示すブロック図である。
【図４】図４は、時刻ｔ１〜ｔｎごとのテトラ要素群のデータ構造Ｄ１〜Ｄｎの一例を示す説明図である。
【図５】図５は、データ構造Ｄｉにおけるテトラ要素Ｅｊ（ｔｉ）を示す説明図である。
【図６】図６は、時刻ｔ１〜ｔｎごとの血流ベクトルのデータ構造Ｇ１〜Ｇｎの一例を示す説明図である。
【図７】図７は、実施の形態１にかかる可視化装置の機能的構成例を示すブロック図である。
【図８】図８は、実施の形態１にかかる可視化装置７００による可視化処理手順例を示すフローチャートである。
【図９】図９は、図８に示した表面要素群検出処理（ステップＳ８０４）の詳細な処理手順例を示すフローチャートである。
【図１０】図１０は、図８に示した背面要素群検出処理（ステップＳ８０５）の詳細な処理手順例を示すフローチャートである。
【図１１】図１１は、実施の形態２にかかる心臓モデルの可視化例を示す説明図である。
【図１２】図１２は、実施の形態２にかかる可視化装置７００による可視化処理手順例を示すフローチャートである。
【図１３】図１３は、図１２に示した表面要素群検出処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャートである。
【図１４】図１４は、図１２に示した背面要素群検出処理（ステップＳ１２０５）の詳細な処理手順例を示すフローチャートである。
【図１５】図１５は、実施の形態２にかかる可視化装置７００による可視化処理手順の他の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる可視化プログラム、可視化方法、および可視化装置の実施の形態を詳細に説明する。心臓などの臓器は、時刻ごとに物理値が変動する。このような臓器を表現するため、本実施の形態では、臓器の３次元モデルが採用される。臓器の３次元モデルは、テトラ要素と呼ばれる四面体の非構造格子データの集合である。各テトラ要素は、当該テトラ要素の配置位置に応じた物理値を持つ。物理値は、テトラ要素に対応する心筋の挙動を示す値であり、たとえば、仕事力［ＫＰａ］や、仕事［Ｊ／ｍｌ］、仕事率［Ｊ／ｓ・ｍｌ］が物理値として採用される。
【００１０】
なお、本実施の形態では、臓器の一例として心臓の３次元モデルを用いて説明するが、心臓以外の他の臓器の３次元モデルでも実現可能である。以下、心臓の３次元モデルを「心臓モデル」と称す。心臓モデルは、時刻ごとに存在するが、モデル元の心臓は同一人物の心臓である。
【００１１】
（実施の形態１）
＜心臓モデルの可視化例＞
図１は、実施の形態１にかかる心臓モデルの可視化例を示す説明図である。図１では、時系列な心臓の挙動を示すため、ある時刻ｔ１での心臓モデルと時刻ｔ１以降の時刻ｔ２での心臓モデルとを用いて、心臓モデルの内部可視化例を説明する。
【００１２】
図１において、（Ａ）は、時刻ｔ１の心臓モデルＭ（ｔ１）である。なお、時刻ｔｉ（１≦ｉ≦ｎ）での心臓モデルをＭ（ｔｉ）と表記する。可視化装置は、マウスなどの入力装置の操作入力により、時刻ｔ１の心臓モデルＭ（ｔ１）の表面において、領域となる面を指定する。指定された領域となる面を「指定領域Ｒ」と称す。指定領域Ｒは矩形でも円形でもよい。また、入力装置を操作することにより描かれる自由な閉曲線が示す領域でもよい。
【００１３】
（Ｂ）可視化装置は、指定領域Ｒから奥行き方向の心筋部分を透過処理する。このように、心筋部分を刳り貫くのではなく、心筋部分はそのままにして透過させることにより、透過した心筋部分から、心臓モデルの内部を視認することができる。心臓内部には、血液の流れである血流を示す時刻ｔ１での血流ベクトルがモデル化されている。したがって、指定領域Ｒに対応する心筋部分を透過処理するだけで、時刻ｔ１での血流ベクトルの方向を視認することができる。
【００１４】
（Ｃ）は、時刻ｔ２の心臓モデルＭ（ｔ２）での指定領域Ｒに対応する心筋部分を透過処理した状態を示す。時刻ｔ１と比べると、時刻ｔ２では、血流ベクトルの方向が変化している。このように、時刻ごとに、指定領域Ｒに対応する心筋を透過処理した心臓モデルを描画することにより、内部の血流ベクトルの方向を時系列で視認することができる。
【００１５】
このように、図１では、心筋部分のデータを除外するのではなく、心筋部分のデータをそのままにして透過するため、心筋部分が刳り貫かれた心臓モデルの再作成や再レンダリングが不要となり、描画速度の高速化を図ることができる。
【００１６】
図２は、心臓モデルの断面図である。図２では、（Ａ）〜（Ｅ）の順に、心臓モデルＭ（ｔｉ）の断面が時系列に示される。また、（Ａ）〜（Ｅ）において、左側が心臓モデルＭ（ｔｉ）の表面側であり、右側が心臓モデルＭ（ｔｉ）の内部である。心臓モデルＭ（ｔｉ）の内部には血流ベクトルが存在するが、図２では省略する。また、図２中、テトラ要素からの矢印は、そのテトラ要素が持つ法線ベクトルである。法線ベクトルは、表面や内周面などの面を構成するテトラ要素が持つ属性であり、それ以外のテトラ要素は法線ベクトルを持たない。また、図２中、ＶＰは視点、ＶＤは視点ＶＰからの視線方向ベクトルである。
【００１７】
（Ａ）指定領域Ｒが設定されると、可視化装置は、指定領域Ｒを含むテトラ要素群を検出する。つぎに、可視化装置は、検出されたテトラ要素群の中から、法線ベクトルを持つテトラ要素群を抽出する。そして、可視化装置は、抽出されたテトラ要素群の各テトラ要素が持つ法線ベクトルと視線方向ベクトルＶＤとのなす角度θから、視線方向ベクトルＶＤと反対方向を向いている法線ベクトルを持つテトラ要素群を特定する。特定されたテトラ要素群を「表面要素群」と称す。（Ａ）において、表面要素群は、塗りつぶしたテトラ要素群である。反対方向とは、１８０度逆向きである必要はなく、たとえば、９０°＜θ＜２７０°であればよい。
【００１８】
（Ｂ）（Ａ）において表面要素群が決まると、可視化装置は、指定領域Ｒを、心臓モデルの奥行き方向に所定距離押し出し、立体的形状Ｓを生成する。ここで、奥行き方向とは、心臓モデルＭ（ｔｉ）の外から内部への方向であり、たとえば、表面要素群の各テトラ要素群が持つ法線ベクトルが示す方向の逆方向である。また、視線方向ベクトルＶＤの向きである視線方向でもよい。可視化装置は、指定領域Ｒを押し出して形成された立体的形状Ｓの奥行き側の面に含まれるテトラ要素群を検出する。
【００１９】
（Ｂ）において、塗りつぶしたテトラ要素群が、検出されたテトラ要素群である。奥行き側の面を「押出し面Ｘ」と称す。つぎに、可視化装置は、検出されたテトラ要素群の中から、法線ベクトルを持つテトラ要素群を抽出する。（Ｂ）では、押出し面Ｘに含まれるテトラ要素は、いずれも法線ベクトルを持たないため、可視化装置は、押出し面Ｘをさらに奥行き方向に所定距離押し出す。
【００２０】
（Ｃ）（Ｂ）により、押出し面Ｘが押し出された後、可視化装置は、再度、押出し面Ｘに含まれるテトラ要素群を検出する。つぎに、可視化装置は、検出されたテトラ要素群の中から、法線ベクトルを持つテトラ要素群を抽出する。（Ｃ）では、押出し面Ｘに含まれるテトラ要素群の中に、法線ベクトルを持つテトラ要素群が存在する。可視化装置は、このテトラ要素群の各テトラ要素が持つ法線ベクトルと視線方向ベクトルＶＤとのなす角度θから、視線方向ベクトルＶＤに沿う方向に向いている法線ベクトルを持つテトラ要素群を特定する。特定されたテトラ要素群を「背面要素群」と称す。
【００２１】
（Ｃ）において、背面要素群は、塗りつぶしたテトラ要素群である。視線方向ベクトルＶＤに沿う方向とは、視線方向ベクトルＶＤと同方向である必要はなく、たとえば、０°≦θ＜９０°であればよい。可視化装置は、視線方向ベクトルＶＤに沿う方向の法線ベクトルを持つテトラ要素が検出されなくなるまで、押出し面Ｘを所定距離奥行き方向に押出す。
【００２２】
（Ｄ）（Ｃ）による押出しにより、視線方向ベクトルＶＤに沿う方向の法線ベクトルを持つテトラ要素が検出されなくなる。（Ｄ）において、背面要素群は、塗りつぶしたテトラ要素群である。可視化装置は、立体的形状Ｓに重複するテトラ要素群を特定する。ここでは、特定されたテトラ要素群を、「透過対象要素群」と称す。透過対象要素群は、表面要素群、背面要素群、および、表面要素群から背面要素群までの間に存在するテトラ要素群の集合である。可視化装置は、透過対象要素群に隣接するテトラ要素の物理値分布を表示することとしてもよい。
【００２３】
（Ｅ）（Ｄ）により透過対象要素群が特定されると、可視化装置は、たとえば、αブレンディングにより、透過対象要素群の透過処理を実行する。（Ｅ）において、透過された透過対象要素群を、点線で示す。これにより、視点ＶＰからみた場合に、透過対象要素群が透過されるため、透過対象要素群から心臓モデル内部の血流ベクトルや、心臓モデルの内壁面を視認することができる。また、奥行き側の内壁面については、透過も刳り貫きもされないため、ユーザは、透過対象要素群のみがあたかも刳り貫かれた状態で心臓内部を視認することができる。
【００２４】
（可視化装置のハードウェア構成例）
図３は、実施の形態１にかかる可視化装置のハードウェア構成例を示すブロック図である。図３において、可視化装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ３０１は、可視化装置の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００２６】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２７】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ３１２は、画像を光学的に読み取り、可視化装置内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。なお、光ディスクドライブ３０６、光ディスク３０７、ディスプレイ３０８、キーボード３１０、マウス３１１、スキャナ３１２、およびプリンタ３１３の少なくともいずれか１つは、なくてもよい。
【００３１】
＜データベースの記憶内容例＞
つぎに、可視化装置が有するデータベース（Ｄａｔａ  Ｂａｓｅ。以下、「ＤＢ」）の記憶内容について説明する。ＤＢは、テトラ要素群のデータ構造と、血流ベクトルのデータ構造と、を有する。ＤＢは、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置によりその機能を実現する。
【００３２】
図４は、時刻ｔ１〜ｔｎごとのテトラ要素群のデータ構造Ｄ１〜Ｄｎの一例を示す説明図である。ｎはタイムステップ数である。時刻ｔｉでの心臓モデルＭ（ｔｉ）は、時刻ｔｉのテトラ要素群のデータ構造Ｄｉにより構成される。ｉは、１≦ｉ≦ｎを満たす整数である。ここで、時刻ｔｉのテトラ要素群のデータ構造Ｄｉは、ＩＤ項目と、第１頂点項目〜第４頂点項目と、重心項目と、物理値項目と、法線ベクトル項目と、透過項目と、を有し、テトラ要素ごとに、各項目の値を有するデータ構造である。
【００３３】
ＩＤ項目には、テトラ要素のＩＤ：ｉ（１≦ｊ≦ｍ）が格納される。ｍはテトラ要素の総数である。ｊは、１≦ｊ≦ｍを満たす整数である。ＩＤとは、テトラ要素を一意に識別する識別情報である。ＩＤ：ｊのテトラ要素を、テトラ要素Ｅｊ（ｔｉ）とする。第１頂点項目〜第４頂点項目には、テトラ要素Ｅｊ（ｔｉ）の第１頂点ｖ１（Ｅｊ（ｔｉ））〜第４頂点ｖ４（Ｅｊ（ｔｉ））の頂点座標値が格納される。便宜上、座標値についても、ｖ１（Ｅｊ（ｔｉ））〜ｖ４（Ｅｊ（ｔｉ））と表記する。第１頂点ｖ１（Ｅｊ（ｔｉ））〜第４頂点ｖ４（Ｅｊ（ｔｉ））とは、四面体であるテトラ要素の各頂点である。
【００３４】
重心項目には、テトラ要素Ｅｊ（ｔｉ）の重心ｇ（Ｅｊ（ｔｉ））となる重心座標値が格納される。便宜上、座標値についても、ｇ（Ｅｊ（ｔｉ））と表記する。物理値項目には、テトラ要素Ｅｊ（ｔｉ）の重心ｇ（Ｅｊ（ｔｉ））に割り当てられた物理値ｐ（Ｅｊ（ｔｉ））が格納される。上述したように、物理値ｐ（Ｅｊ（ｔｉ））は、テトラ要素に対応する心筋の挙動を示す値であり、たとえば、仕事力［ＫＰａ］や、仕事［Ｊ／ｍｌ］、仕事率［Ｊ／ｓ・ｍｌ］が採用される。
【００３５】
法線ベクトル項目には、法線ベクトルが格納される。法線ベクトルは、どのテトラ要素も持つ属性ではなく、表面や内周面などの面を構成するテトラ要素が持つ属性であり、それ以外のテトラ要素は法線ベクトルを持たない。透過項目には、そのテトラ要素が透過対象要素であるか否かを示す透過フラグが格納される。透過フラグの初期値は「０」である。「０」は非透過対象であることを示し、「１」は透過対象であることを示す。透過フラグは、そのテトラ要素が表面要素群や背面要素群、表面要素群から背面要素群までの間の要素群になった場合、すなわち、立体形状に重複する場合に、「１」に設定される。
【００３６】
図５は、データ構造Ｄｉにおけるテトラ要素Ｅｊ（ｔｉ）を示す説明図である。テトラ要素Ｅｊ（ｔｉ）の形状は第１頂点ｖ１（Ｅｊ（ｔｉ））〜第４頂点ｖ４（Ｅｊ（ｔｉ））を有する四面体である。また、重心ｇ（Ｅｊ（ｔｉ））には、物理値ｐ（Ｅｊ（ｔｉ））が割り当てられる。
【００３７】
図６は、時刻ｔ１〜ｔｎごとの血流ベクトルのデータ構造Ｇ１〜Ｇｎの一例を示す説明図である。時刻ｔｉでの心臓モデル内の血流は、時刻ｔｉの血流ベクトルのデータ構造Ｇｉにより構成される。ここで、時刻ｔｉの血流ベクトルのデータ構造Ｇｉは、ＩＤ項目と、第１頂点項目〜第４頂点項目と、第１血流項目〜第４血流項目と、を有し、血流ベクトルを有するテトラ要素ごとに、各項目の値を有するデータ構造である。
【００３８】
ＩＤ項目には、血流ベクトルを有するテトラ要素のＩＤが格納される。ＩＤとは、テトラ要素を一意に識別する識別情報である。たとえば、ＩＤ：Ｂ１（ｔｉ）は、血流ベクトルを有する時刻ｔｉのテトラ要素Ｂ１である。以下、任意の血流ベクトルを有する時刻ｔｉでのテトラ要素をテトラ要素Ｂ（ｔｉ）と表記する。
【００３９】
第１頂点項目〜第４頂点項目には、テトラ要素Ｂ（ｔｉ）の第１頂点ｖ１（Ｂ（ｔｉ））〜第４頂点ｖ４（Ｂ（ｔｉ））の頂点座標値が格納される。便宜上、座標値についても、ｖ１（Ｂ（ｔｉ））〜ｖ４（Ｂ（ｔｉ））と表記する。第１頂点ｖ１（Ｂ（ｔｉ））〜第４頂点ｖ４（Ｂ（ｔｉ））とは、四面体であるテトラ要素Ｂ（ｔｉ）の各頂点である。
【００４０】
第１血流項目〜第４血流項目には、テトラ要素Ｂ（ｔｉ）の第１頂点ｖ１（Ｂ（ｔｉ））〜第４頂点ｖ４（Ｂ（ｔｉ））が持つ血流ベクトルｂｓ１（Ｂ（ｔｉ））〜ｂｓ４（Ｂ（ｔｉ））が格納される。なお、テトラ要素Ｂ（ｔｉ）の頂点は、他のテトラ要素Ｂ（ｔｉ）の頂点と共通する場合があり、その場合は、血流ベクトルも共通である。
【００４１】
＜可視化装置の機能的構成例＞
図７は、実施の形態１にかかる可視化装置の機能的構成例を示すブロック図である。可視化装置７００は、生成部７０１と、算出部７０２と、変更部７０３と、描画部７０４と、ＤＢ７０５と、を有する。生成部７０１、算出部７０２、変更部７０３および描画部７０４は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。ＤＢ７０５には、心臓モデルＭ（ｔ１）〜Ｍ（ｔｎ）のデータ構造Ｄ１〜Ｄｎと血流のデータ構造Ｇ１〜Ｇｎが格納されている。
【００４２】
生成部７０１は、ＤＢ７０５を参照して、入力された法線ベクトルに沿って所定の立体的形状Ｓを生成する。具体的には、生成部７０１は、指定部７１０と、第１の検出部７１１と、第２の検出部７１２とを有する。指定部７１０は、臓器モデルの表面領域を指定する。指定された表面領域が、図１および図２に示した指定領域Ｒである。第１の検出部７１１は、図２の（Ａ）に示したように、表面要素群を検出する。第２の検出部７１２は、図２の（Ｂ）〜（Ｄ）に示したように、背面要素群を検出する。指定部７１０、第１の検出部７１１、および第２の検出部７１２により、立体的形状Ｓが生成されることになる。
【００４３】
算出部７０２は、生成部７０１によって生成された所定の立体的形状Ｓと臓器の形状とが重複する重複部分を算出する。具体的には、たとえば、図２の（Ｄ）に示したように、算出部７０２は、立体的形状Ｓに重複するテトラ要素群を透過対象要素群として特定する。
【００４４】
変更部７０３は、算出部７０２によって算出された重複部分の透過率を変更する。具体的には、たとえば、変更部７０３は、図２の（Ｅ）に示したように、重複部分である透過対象要素群の透過率のα値を低下させる。α値とは透明度を表す数値である。最大値が２５５である場合、２５５から数値が小さくなるにつれ透明度が上がり、α値が０になると、完全な透明になる。どの程度までα値を低下させるかは、あらかじめ設定される。
【００４５】
描画部７０４は、変更部７０３による透過率の変更後の臓器モデルを描画する。具体的には、たとえば、描画部７０４は、時刻ｔ１〜ｔｎごとに、心臓モデルＭ（ｔｉ）のデータ構造Ｄｉを用いて、透過対象要素群については変更後の透過率を適用して描画し、それ以外のテトラ要素については、あらかじめ設定された色により公知のレンダリング処理で描画する。また、描画部７０４は、血流ベクトルについても、血流のデータ構造Ｂｉを参照して描画する。これにより、図１および図２の（Ｅ）に示したように、透過対象要素群の位置から心臓モデルを覗いた形状を描画することができる。これにより、ユーザは、心臓モデル内部の血流ベクトルを透過対象要素群の位置から視認することができる。また、描画部７０４は、透過対象要素群に隣接するテトラ要素の物理値分布を描画することとしてもよい。
【００４６】
＜可視化処理手順＞
図８は、実施の形態１にかかる可視化装置７００による可視化処理手順例を示すフローチャートである。まず、可視化装置７００は、タイムステップ数ｎを指定し（ステップＳ８０１）、時刻ｔ１の心臓モデルＭ（ｔ１）のデータ構造Ｄ１を用いて、心臓モデルＭ（ｔ１）で領域の指定をおこなう（ステップＳ８０２）。これにより、指定領域Ｒが設定される。
【００４７】
つぎに、可視化装置７００は、タイムステップのインデックスｉをｉ＝１とし（ステップＳ８０３）、第１の検出部７１１により表面要素群検出処理を実行する（ステップＳ８０４）。表面要素群検出処理（ステップＳ８０４）は、図２の（Ａ）に示したように表面要素群を検出する処理である。表面要素群検出処理（ステップＳ８０４）の詳細については、図９で後述する。
【００４８】
つぎに、可視化装置７００は、第２の検出部７１２により背面要素群検出処理を実行する（ステップＳ８０５）。背面要素群検出処理（ステップＳ８０５）は、図２の（Ｂ）〜（Ｄ）に示したように背面要素群を検出する処理である。背面要素群検出処理（ステップＳ８０５）の詳細については、図１０で後述する。
【００４９】
表面要素群および背面要素群が検出されると、可視化装置７００は、表面要素群から背面要素群までのテトラ要素群に重複する立体的形状Ｓを生成したことになる。可視化装置７００は、図２の（Ｄ）に示したように、この立体的形状Ｓに重複するテトラ要素群を透過対象要素群として特定する（ステップＳ８０６）。
【００５０】
このあと、可視化装置７００は、透過対象要素群の透過率を低下させ（ステップＳ８０７）、透過対象要素群の透過率の低下後の心臓モデルを描画する（ステップＳ８０８）。これにより、図１の（Ｂ）に示したように、時刻がｔ１の場合は、透過対象要素群があたかも刳り貫かれたような心臓モデルの形状が描画され、透過対象要素群から透過された心臓モデルの内部の血流ベクトルを視認することができる。
【００５１】
このあと、可視化装置７００は、タイムステップ数のインデックスｉをインクリメントし（ステップＳ８０９）、ｉ＞ｎであるか否かを判断する（ステップＳ８１０）。ｉ＞ｎでない場合（ステップＳ８１０：Ｎｏ）、可視化装置７００は、時刻ｔｉの心臓モデルＭ（ｔｉ）で指定面領域を再設定し（ステップＳ８１１）、ステップＳ８０４に戻る。具体的には、たとえば、時刻ｔ１から時刻ｔ２にうつる場合でも、心臓モデルＭ（ｔ１）の指定領域Ｒと心臓モデルＭ（ｔ２）の指定領域Ｒとは同一位置となる。
【００５２】
これにより、可視化装置７００は、心臓モデルＭ（ｔｉ）の形状が経時的に変化する場合でも、時刻ごとに描画される心臓モデルＭ（ｔｉ）において透過される透過対象要素群の位置に変化はないため、ユーザは、固定された位置から心臓モデルＭ（ｔｉ）内部の血流ベクトルを観察することができる。また、ステップＳ８１０において、ｉ＞ｎである場合（ステップＳ８１０：Ｙｅｓ）、可視化装置７００は、一連の可視化処理を終了する。
【００５３】
図９は、図８に示した表面要素群検出処理（ステップＳ８０４）の詳細な処理手順例を示すフローチャートである。まず、可視化装置７００は、指定領域Ｒを含むテトラ要素群を検出する（ステップＳ９０１）。検出したテトラ要素群を「検出テトラ要素群」と称す。可視化装置７００は、時刻ｔｉのデータ構造Ｄｉを参照して、検出テトラ要素群の中から法線ベクトルを有するテトラ要素群を抽出する（ステップＳ９０２）。抽出したテトラ要素群を「抽出テトラ要素群」と称す。
【００５４】
そして、可視化装置７００は、抽出テトラ要素群に未選択のテトラ要素があるか否かを判断する（ステップＳ９０３）。未選択のテトラ要素がある場合（ステップＳ９０３：Ｙｅｓ）、可視化装置７００は、抽出テトラ要素群の中から未選択のテトラ要素を１つ選択する（ステップＳ９０４）。選択したテトラ要素を「選択テトラ要素」と称す。つぎに、可視化装置７００は、視線方向ベクトルＶＤとのなす角度θについてｃｏｓθを算出する（ステップＳ９０５）。そして、可視化装置７００は、ｃｏｓθ＜０であるか否かを判断する（ステップＳ９０６）。
【００５５】
ｃｏｓθ＜０でない場合（ステップＳ９０６：Ｎｏ）、ステップＳ９０３に戻る。一方、ｃｏｓθ＜０である場合（ステップＳ９０６：Ｙｅｓ）、可視化装置７００は、選択テトラ要素を表面要素に決定する（ステップＳ９０７）。具体的には、可視化装置７００は、選択テトラ要素の透過フラグを「１」に変更する。そして、ステップＳ９０７に移行する。このあと、未選択のテトラ要素がない場合（ステップＳ９０３：Ｎｏ）、表面要素群検出処理（ステップＳ８０４）を終了する。これにより、図２の（Ａ）に示したように、表面要素群が検出されることになる。
【００５６】
図１０は、図８に示した背面要素群検出処理（ステップＳ８０５）の詳細な処理手順例を示すフローチャートである。まず、可視化装置７００は、指定領域Ｒを奥行き方向にΔｄシフトして押出し面Ｘを生成する（ステップＳ１００１）。つぎに、可視化装置７００は、押出し面Ｘに含まれるテトラ要素群を検出する（ステップＳ１００２）。検出したテトラ要素群を「検出テトラ要素群」と称す。可視化装置７００は、検出テトラ要素群から法線ベクトルを有するテトラ要素群を抽出する（ステップＳ１００３）。抽出したテトラ要素群を「抽出テトラ要素群」と称す。
【００５７】
そして、可視化装置７００は、抽出テトラ要素群に未選択のテトラ要素があるか否かを判断する（ステップＳ１００４）。未選択のテトラ要素がある場合（ステップＳ１００４：Ｙｅｓ）、可視化装置７００は、抽出テトラ要素群の中から未選択のテトラ要素を１つ選択する（ステップＳ１００５）。選択したテトラ要素を「選択テトラ要素」と称す。つぎに、可視化装置７００は、視線方向ベクトルＶＤとのなす角度θについてｃｏｓθを算出する（ステップＳ１００６）。そして、可視化装置７００は、ｃｏｓθ＞０であるか否かを判断する（ステップＳ１００７）。
【００５８】
ｃｏｓθ＜０でない場合（ステップＳ１００６：Ｎｏ）、ステップＳ１００４に戻る。一方、ｃｏｓθ＞０でない場合（ステップＳ１００７：Ｎｏ）、ステップＳ１００４に戻る。一方、ｃｏｓθ＞０である場合（ステップＳ１００７：Ｙｅｓ）、可視化装置７００は、選択テトラ要素を背面要素に決定する（ステップＳ１００８）。具体的には、可視化装置７００は、選択テトラ要素の透過フラグを「１」に変更する。そして、決定フラグＦがＦ＝０であるか否かを判断する（ステップＳ１００９）。ここで、決定フラグＦについて説明する。
【００５９】
決定フラグＦとは、時刻ｔｉのデータ構造Ｄｉにおいて、背面要素に決定されたテトラ要素が最初に出現してから、押出し面ＸをΔｄシフトし続けて、押出し面Ｘがテトラ要素群に含まれなくなるまでの状態を観測するためのフラグである。決定フラグＦの初期値はＦ＝０とする。Ｆ＝０は、未決定状態を示す。すなわち、背面要素が始めて決定された場合、決定フラグＦがＦ＝０からＦ＝１に変化する。そして、決定フラグＦがＦ＝１のときに、抽出テトラ要素群から１個も背面要素が決定されなかった場合は、押出し面Ｘが心筋を通り越して心臓モデルの内部空間に移動したと判断する。
【００６０】
すなわち、ステップＳ１００９において、可視化装置７００は、決定フラグＦがＦ＝０である場合（ステップＳ１００９：Ｙｅｓ）、背面要素がはじめて出現したとして、決定フラグＦをＦ＝１に変更する（ステップＳ１０１０）。そして、ステップＳ１００４に移行する。一方、可視化装置７００は、決定フラグＦがＦ＝１である場合（ステップＳ１００９：Ｎｏ）、ステップＳ１００４に移行する。
【００６１】
また、ステップＳ１００４において、未選択のテトラ要素がない場合（ステップＳ１００４：Ｎｏ）、可視化装置７００は、決定フラグＦがＦ＝１であるか否かを判断する（ステップＳ１０１１）。Ｆ＝１でない場合（ステップＳ１０１１：Ｎｏ）、まだ、背面要素が１個も決定されていないため、ステップＳ１００２に移行する。
【００６２】
一方、Ｆ＝１の場合（ステップＳ１０１１：Ｙｅｓ）、可視化装置７００は、現在の抽出テトラ要素群において背面要素が１つも決定されなかったか否かを判断する（ステップＳ１０１２）。背面要素が１つでも決定された場合（ステップＳ１０１２：Ｎｏ）、ステップＳ１００２に移行する。一方、背面要素が１つも決定されなかった場合（ステップＳ１０１２：Ｙｅｓ）、押出し面Ｘが心筋を通り越して心臓モデルの内部空間に移動したと判断して、背面要素群検出処理（ステップＳ８０５）を終了する。これにより、図２の（Ｄ）に示したように、立体的形状Ｓに重複するテトラ要素群の特定が可能になる。
【００６３】
このように、実施の形態１によれば、心筋部分のデータを除外するのではなく、心筋部分のデータをそのままにして透過するため、心筋部分が刳り貫かれた心臓モデルの再作成や再レンダリングが不要となり、描画速度の高速化を図ることができる。
【００６４】
（実施の形態２）
つぎに、実施の形態２について説明する。実施の形態１では、時刻ｔｉごとの心臓モデルＭ（ｔｉ）において指定領域Ｒを固定した状態で、時刻ｔｉごとの心臓モデルＭ（ｔｉ）を時系列で可視化する例について説明した。これに対し、実施の形態２では、時刻ｔ１での指定領域Ｒを含むテトラ要素群を固定した状態で、時刻ｔｉごとの心臓モデルＭ（ｔｉ）を時系列で可視化する例について説明する。
【００６５】
すなわち、実施の形態１では、指定領域Ｒに相当する透過対象要素群の形状はほぼ同一形状であるが、実施の形態２では、時刻ｔ１での指定領域Ｒを含むテトラ要素群を、時刻ｔ２以降追跡することになるため、時刻ｔｉごとの透過対象要素群の形状が異なる。たとえば、時刻ｔ１の心臓モデルＭ（ｔ１）に対して、ユーザがある疾患部位を指定領域Ｒに設定した場合、時間の経過とともに、疾患部位となるテトラ要素群から覗いた心臓モデルの内部の状態や血流を観測することができる。
【００６６】
これより、心臓内部が疾患部位によりどのような影響をうけているかといったことが観測可能となる。また、時刻ｔｉごとにユーザは疾患部位を指定する必要がないため、利便性の向上を図ることができる。なお、実施の形態２では、実施の形態１と異なる箇所についてのみ説明し、それ以外については、実施の形態１と同様とするため、説明を省略する。
【００６７】
＜心臓モデルの可視化例＞
図１１は、実施の形態２にかかる心臓モデルの可視化例を示す説明図である。図１１では、時系列な心臓の挙動を示すため、ある時刻ｔ１での心臓モデルと時刻ｔ１以降の時刻ｔ２での心臓モデルとを用いて、心臓モデルの内部可視化例を説明する。図１１において、（Ａ）および（Ｂ）は、実施の形態１で示した図１の（Ａ）および（Ｂ）と同一内容であるため説明を省略する。
【００６８】
（Ｃ）は、時刻ｔ２での透過状態を示す。時刻ｔ１と比べると、時刻ｔ２の透過部分は、時刻ｔ１の透過部分と位置が異なる。すなわち、時刻ｔ１の指定領域Ｒを含むテトラ要素群が、時刻ｔ２では（Ｃ）の透過部分に示した位置に移動したためである。このように、時刻ｔ１の指定領域Ｒが疾患部位である場合、時間の経過とともに、疾患部位となるテトラ要素群から覗いた心臓モデルの内部の状態や血流を観測することができる。
【００６９】
また、実施の形態１と同様、心筋部分のデータを除外するのではなく、心筋部分のデータをそのままにして透過するため、心筋部分が刳り貫かれた心臓モデルの再作成や再レンダリングが不要となり、描画速度の高速化を図ることができる。
【００７０】
＜可視化処理手順＞
図１２は、実施の形態２にかかる可視化装置７００による可視化処理手順例を示すフローチャートである。まず、可視化装置７００は、タイムステップ数ｎを指定し（ステップＳ１２０１）、時刻ｔ１の心臓モデルＭ（ｔ１）のデータ構造Ｄ１を用いて、心臓モデルＭ（ｔ１）で領域の指定をおこなう（ステップＳ１２０２）。これにより、指定領域Ｒが設定される。
【００７１】
つぎに、可視化装置７００は、タイムステップのインデックスｉをｉ＝１とし（ステップＳ１２０３）、第１の検出部７１１により表面要素群検出処理を実行する（ステップＳ１２０４）。表面要素群検出処理（ステップＳ１２０４）は、図２の（Ａ）に示したように表面要素群を検出する処理である。表面要素群検出処理（ステップＳ１２０４）の詳細については、図１３で後述する。
【００７２】
つぎに、可視化装置７００は、第２の検出部７１２により背面要素群検出処理を実行する（ステップＳ１２０５）。背面要素群検出処理（ステップＳ１２０５）は、図２の（Ｂ）〜（Ｄ）に示したように背面要素群を検出する処理である。背面要素群検出処理（ステップＳ１２０５）の詳細については、図１４で後述する。
【００７３】
表面要素群および背面要素群が検出されると、可視化装置７００は、表面要素群から背面要素群までのテトラ要素群に重複する立体的形状Ｓを生成したことになる。可視化装置７００は、図２の（Ｄ）に示したように、この立体的形状Ｓに重複するテトラ要素群を透過対象要素群として特定する（ステップＳ１２０６）。
【００７４】
このあと、可視化装置７００は、透過対象要素群の透過率を低下させ（ステップＳ１２０７）、透過対象要素群の透過率の低下後の心臓モデルを描画する（ステップＳ１２０８）。これにより、図１の（Ｂ）に示したように、時刻がｔ１の場合は、透過対象要素群があたかも刳り貫かれたような心臓モデルの形状が描画され、透過対象要素群から透過された心臓モデルの内部の血流ベクトルを視認することができる。
【００７５】
このあと、可視化装置７００は、タイムステップ数のインデックスｉをインクリメントし（ステップＳ１２０９）、ｉ＞ｎであるか否かを判断する（ステップＳ１２１０）。ｉ＞ｎでない場合（ステップＳ１２１０：Ｎｏ）、ステップＳ１２０４に戻る。一方、ｉ＞ｎである場合（ステップＳ１２１０：Ｙｅｓ）、可視化装置７００は、一連の可視化処理を終了する。
【００７６】
図１３は、図１２に示した表面要素群検出処理（ステップＳ１２０４）の詳細な処理手順例を示すフローチャートである。まず、可視化装置７００は、指定領域Ｒがあるか否かを判断する（ステップＳ１３０１）。具体的には、時刻ｔ１の心臓モデルＭ（ｔ１）については指定領域Ｒが存在し、時刻ｔ２以降の心臓モデルについては、指定領域Ｒが存在しない。したがって、時刻ｔ１の場合は、指定領域Ｒがあることになり（ステップＳ１３０１：Ｙｅｓ）、時刻ｔ２以降の場合は、指定領域Ｒがない（ステップＳ１３０１：Ｎｏ）ことになる。
【００７７】
可視化装置７００は、指定領域Ｒがある場合（ステップＳ１３０１：Ｙｅｓ）、指定領域Ｒを含むテトラ要素群を検出する（ステップＳ１３０２）。検出したテトラ要素群を「検出テトラ要素群」と称す。可視化装置７００は、検出テトラ要素群の要素ＩＤを保存して（ステップＳ１３０３）、ステップＳ１３０５に移行する。要素ＩＤとは、異なる時刻で共通して検出テトラ要素を一意に特定する識別情報である。たとえば、テトラ要素Ｅｊ（ｔｉ）の「Ｅｊ」である。
【００７８】
また、ステップＳ１３０１において、可視化装置７００は、指定領域Ｒがない場合（ステップＳ１３０１：Ｎｏ）、時刻ｔ１の心臓モデルＭ（ｔ１）についてステップＳ１３０３で保存した要素ＩＤと同一ＩＤのテトラ要素群を、時刻ｔｉの心臓モデルＭ（ｔｉ）のデータ構造Ｄｉから検出して（ステップＳ１３０４）、ステップＳ１３０５に移行する。これにより、時刻ごとに同一のテトラ要素の追跡が可能となる。
【００７９】
ステップＳ１３０５において、可視化装置７００は、時刻ｔｉのデータ構造Ｄｉを参照して、検出テトラ要素群の中から法線ベクトルを有するテトラ要素群を抽出する（ステップＳ１３０５）。抽出したテトラ要素群を「抽出テトラ要素群」と称す。
【００８０】
そして、可視化装置７００は、抽出テトラ要素群に未選択のテトラ要素があるか否かを判断する（ステップＳ１３０６）。未選択のテトラ要素がある場合（ステップＳ１３０６：Ｙｅｓ）、可視化装置７００は、抽出テトラ要素群の中から未選択のテトラ要素を１つ選択する（ステップＳ１３０７）。選択したテトラ要素を「選択テトラ要素」と称す。つぎに、可視化装置７００は、視線方向ベクトルＶＤとのなす角度θについてｃｏｓθを算出する（ステップＳ１３０８）。そして、可視化装置７００は、ｃｏｓθ＜０であるか否かを判断する（ステップＳ１３０９）。
【００８１】
ｃｏｓθ＜０でない場合（ステップＳ１３０９：Ｎｏ）、ステップＳ１３０６に戻る。一方、ｃｏｓθ＜０である場合（ステップＳ１３０９：Ｙｅｓ）、可視化装置７００は、選択テトラ要素を表面要素に決定する（ステップＳ１３１０）。具体的には、可視化装置７００は、選択テトラ要素の透過フラグを「１」に変更する。そして、ステップＳ１３０６に移行する。このあと、未選択のテトラ要素がない場合（ステップＳ１３０６：Ｎｏ）、表面要素群検出処理（ステップＳ１２０４）を終了する。これにより、図２の（Ａ）に示したように、表面要素群が検出されることになる。
【００８２】
すなわち、時刻ｔ１の場合は、実施の形態１と同様にして、表面要素群が検出されるが、時刻ｔ２以降では、時刻ｔ１の指定領域Ｒを含むテトラ要素群と同一要素ＩＤのテトラ要素群が検出テトラ要素群として扱われる。したがって、表面要素群の位置が時々刻々と変化するようになる。
【００８３】
図１４は、図１２に示した背面要素群検出処理（ステップＳ１２０５）の詳細な処理手順例を示すフローチャートである。まず、可視化装置７００は、指定領域Ｒがあるか否かを判断する（ステップＳ１４０１）。具体的には、時刻ｔ１の心臓モデルＭ（ｔ１）については指定領域Ｒが存在し、時刻ｔ２以降の心臓モデルについては、指定領域Ｒが存在しない。したがって、時刻ｔ１の場合は、指定領域Ｒがあることになり（ステップＳ１４０１：Ｙｅｓ）、時刻ｔ２以降の場合は、指定領域Ｒがない（ステップＳ１４０１：Ｎｏ）ことになる。
【００８４】
可視化装置７００は、指定領域Ｒがある場合（ステップＳ１４０１：Ｙｅｓ）、ステップＳ１４０３に移行する。一方、指定領域Ｒがない場合（ステップＳ１４０１：Ｎｏ）、領域を生成する（ステップＳ１４０２）。具体的には、たとえば、可視化装置７００は、時刻ｔ（ｉ−１）での表面要素群により特定される心臓モデル表面を構成する面を領域とする。
【００８５】
そして、可視化装置７００は、領域を奥行き方向にΔｄシフトして押出し面Ｘを生成する（ステップＳ１４０３）。つぎに、可視化装置７００は、押出し面Ｘに含まれるテトラ要素群を検出する（ステップＳ１４０４）。検出したテトラ要素群を「検出テトラ要素群」と称す。可視化装置７００は、検出テトラ要素群から法線ベクトルを有するテトラ要素群を抽出する（ステップＳ１４０５）。抽出したテトラ要素群を「抽出テトラ要素群」と称す。
【００８６】
そして、可視化装置７００は、抽出テトラ要素群に未選択のテトラ要素があるか否かを判断する（ステップＳ１４０６）。未選択のテトラ要素がある場合（ステップＳ１４０６：Ｙｅｓ）、可視化装置７００は、抽出テトラ要素群の中から未選択のテトラ要素を１つ選択する（ステップＳ１４０７）。選択したテトラ要素を「選択テトラ要素」と称す。つぎに、可視化装置７００は、視線方向ベクトルＶＤとのなす角度θについてｃｏｓθを算出する（ステップＳ１４０８）。そして、可視化装置７００は、ｃｏｓθ＞０であるか否かを判断する（ステップＳ１４０９）。
【００８７】
ｃｏｓθ＞０でない場合（ステップＳ１４０９：Ｎｏ）、ステップＳ１４０６に戻る。一方、ｃｏｓθ＞０である場合（ステップＳ１４０９：Ｙｅｓ）、可視化装置７００は、選択テトラ要素を背面要素に決定する（ステップＳ１４１０）。具体的には、可視化装置７００は、選択テトラ要素の透過フラグを「１」に変更する。そして、決定フラグＦがＦ＝０であるか否かを判断する（ステップＳ１４１１）。ここで、決定フラグＦについては、実施の形態１と同一であるため、説明を省略する。
【００８８】
可視化装置７００は、決定フラグＦがＦ＝０である場合（ステップＳ１４１１：Ｙｅｓ）、背面要素がはじめて出現したとして、決定フラグＦをＦ＝１に変更する（ステップＳ１４１２）。そして、ステップＳ１４０６に移行する。一方、可視化装置７００は、決定フラグＦがＦ＝１である場合（ステップＳ１４１１：Ｎｏ）、ステップＳ１４０６に移行する。
【００８９】
また、ステップＳ１４０６において、未選択のテトラ要素がない場合（ステップＳ１４０６：Ｎｏ）、可視化装置７００は、決定フラグＦがＦ＝１であるか否かを判断する（ステップＳ１４１３）。Ｆ＝１でない場合（ステップＳ１４１３：Ｎｏ）、まだ、背面要素が１個も決定されていないため、ステップＳ１４０３に移行する。
【００９０】
一方、Ｆ＝１の場合（ステップＳ１４１３：Ｙｅｓ）、可視化装置７００は、現在の抽出テトラ要素群において背面要素が１つも決定されなかったか否かを判断する（ステップＳ１４１４）。背面要素が１つでも決定された場合（ステップＳ１４１４：Ｎｏ）、ステップＳ１４０３に移行する。一方、背面要素が１つも決定されなかった場合（ステップＳ１４１４：Ｙｅｓ）、押出し面Ｘが心筋を通り越して心臓モデルの内部空間に移動したと判断して、背面要素群検出処理（ステップＳ１２０５）を終了する。これにより、図２の（Ｄ）に示したように、立体的形状Ｓに重複するテトラ要素群の特定が可能になる。
【００９１】
実施の形態２によれば、時刻ｔ１の心臓モデルＭ（ｔ１）での指定領域Ｒを含むテトラ要素群の経時的な位置の変化を追跡する。すなわち、変化前の心臓モデルＭ（ｔ１）での表面要素群を、変化後の心臓モデルＭ（ｔ（ｉ））に写像することになる。したがって、変化前の心臓モデルＭ（ｔ１）での表面要素群と同一のテトラ要素群を用いて、変化後の心臓モデルＭ（ｔ（ｉ））の表面要素群を検出することになる。
【００９２】
このように、時刻ｔｉごとの表面要素群を時刻ｔ１での表面要素群を用いて検出することにより、時刻ｔ１の指定領域Ｒが疾患部位である場合、ユーザは、時々刻々と移動する疾患部位となるテトラ要素群から覗いた心臓モデルの内部の状態や血流を、疾患部位に起因する挙動として観測することができる。
【００９３】
また、可視化装置は、時刻ｔｉの表面要素群の各テトラ要素の要素ＩＤを保存するのではなく、時刻ｔｉの透過対象要素群を特定することとしてもよい。具体的には、時刻ｔ１において透過対象要素群が特定されると、時刻ｔ１の透過対象要素群の各テトラ要素群の要素ＩＤが保存される。そして、時刻ｔ２以降は、時刻ｔ１の透過対象要素群の各テトラ要素群の要素ＩＤを流用して、透過対象要素群を特定すればよい。以下、具体的にフローチャートを示す。
【００９４】
図１５は、実施の形態２にかかる可視化装置７００による可視化処理手順の他の例を示すフローチャートである。なお、図１５において、図１２と同一処理には、同一ステップ番号を付し、その説明を省略する。ステップＳ１２１０において、ｉ＞ｎでない場合（ステップＳ１２１０：Ｎｏ）、可視化装置７００は、ステップＳ１２０６で特定された時刻ｔ１の透過対象要素群と同一要素ＩＤのテトラ要素群を時刻ｔｉの透過対象要素群として特定する（ステップＳ１５１１）。そして、ステップＳ１２０７に移行する。すなわち、時刻ｔ１により透過対象要素群が決まると、時刻ｔ２以降は、時刻ｔ１の透過対象要素群を時刻ｔｉの心臓モデルＭ（ｔｉ）に写像されることになる。
【００９５】
これにより、時刻ｔ２以降は、図１２に示したような表面要素群検出処理（ステップＳ１２０４）および背面要素群検出処理（ステップＳ１２０５）が不要となる。したがって、透過対象要素群を特定するための演算量の低減化を図ることができ、描画処理の高速化を図ることができる。
【００９６】
また、実施の形態１と同様、心筋部分のデータを除外するのではなく、心筋部分のデータをそのままにして透過するため、心筋部分が刳り貫かれた心臓モデルの再作成や再レンダリングが不要となり、描画速度の高速化を図ることができる。
【００９７】
また、上述した実施の形態１，２では、指定領域Ｒの法線ベクトルの方向と反対方向に押出し面Ｘを押出すことにより、立体的形状Ｓを生成することとしたが、視線方向ベクトルＶＤの方向に沿って押出し面Ｘを押出すことにより、立体的形状Ｓを生成することとしてもよい。これにより、ユーザは、視線方向ベクトルＶＤの方向に沿って、透過処理された透過対象要素群の位置から、心臓モデルＭ（ｔｉ）の内部を観察することができる。
【００９８】
以上のことから、本実施の形態によれば、臓器内部の描画速度の高速化を図ることができるという効果を奏する。
【符号の説明】
【００９９】
７００  可視化装置
７０１  生成部
７０２  算出部
７０３  変更部
７０４  描画部
７１０  指定部
７１１  第１の検出部
７１２  第２の検出部
【図１】
2014010579.tif 000003
【図２】
2014010579.tif 000004
【図３】
2014010579.tif 000005
【図４】
2014010579.tif 000006
【図５】
2014010579.tif 000007
【図６】
2014010579.tif 000008
【図７】
2014010579.tif 000009
【図８】
2014010579.tif 000010
【図９】
2014010579.tif 000011
【図１０】
2014010579.tif 000012
【図１１】
2014010579.tif 000013
【図１２】
2014010579.tif 000014
【図１３】
2014010579.tif 000015
【図１４】
2014010579.tif 000016
【図１５】
2014010579.tif 000017