以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、三次元物体を構成する点に対して、動的にラベル情報(属性値)を設定できる情報処理装置について説明する。また、ここでのラベル情報は、三次元物体を構成する点の属性値である。また、ラベル情報は、三次元物体を構成する点の位置情報(x,y,z)、色情報(col)は含まれない。また、ラベル情報は、出力態様を決定する情報である。また、特に、ここでのラベル情報は、特定の断面を示す情報と、当該断面がモノクロ表示されることを示す情報である。つまり、本実施の形態において、例えば、ユーザの指示により、カラー表示されている三次元物体において、特定の断面がモノクロ表示される情報処理装置について説明する。なお、本明細書において、三次元物体は、主として、人体の一部または全部であるが、他の物体でも良い。他の物体として、例えば、水道管や建築物など、外から内部が見えない物体が好適である。ただし、他の物体は、CT撮像装置やMRI撮像装置やPET(陽電子放射断層撮像法)を用いた撮像装置や超音波撮像装置や顕微鏡などの撮像機器により、2次元画像の集合が取得でき得るものであれば良い。
図1は、本実施の形態における情報処理装置1のブロック図である。情報処理装置1は、入力機器100、物体情報格納部101、受付部102、スライス情報群取得部103、スライス情報群格納部104、第一メッシュ情報格納部105、サンプリング位置情報取得部106、第一メッシュ情報蓄積部107、スライス情報群出力部108、ラベル情報構成部109、第二メッシュ情報取得部110、第一スライス情報群取得部111、色情報決定部112、第二スライス情報群取得部113、変更物体出力部114を具備する。
色情報決定部112は、対応点決定手段1121、色情報決定手段1122を具備する。
入力機器100は、情報処理装置1に対して、各種の指示を入力する。入力機器100は、例えば、スライス情報群を出力する指示である出力指示を入力する。入力機器100は、例えば、出力されているスライス情報群に対する所定の点または領域に対する指示を入力する。入力機器100は、例えば、マウスやペンやキーボード等である。入力機器100は、2以上の機器から構成されていても良い。また、入力機器100は、情報処理装置1に含まれると考えても、含まれないと考えても良い。なお、図1のブロック図において、情報処理装置1は入力機器100を含む場合の図である。領域に対する指示は、例えば、手術の器具である術具のイメージを示す術具メタファ(図示しない。例えば、特許文献1参照のこと。)を用いて、複数の点(ノード)を含む領域に対する指示である。術具メタファは、手術で利用されるはさみやピンセットの図柄を有する画像データでも良いし、直方体や球などの形状を有する図形データや三次元画像データ等でも良い。また、入力機器100は、出力機能を備えていても良い。出力機能を備えていている入力機器100は、入出力機器と言っても良い。入出力機器は、例えば、PHANToM(ファントム)や振動する入力機器等である。入出力機器は、例えば、後述する3Dボクセル情報が有する弾性情報に対応する力ベクトルを出力する。「対応する力ベクトルを出力する」とは、例えば、モータ駆動により実現される。
物体情報格納部101は、三次元の物体のボリュームテクスチャである3Dボクセル情報を格納し得る。3Dボクセル情報は、例えば、CTやMRIやPETなどの医用機器により取得される二次元画像の集合である。3Dボクセル情報は、例えば、CTやMRIなどで、人体の脳や、身体の中を撮影した二次元画像の集合である。3Dボクセル情報は、例えば、(x,y,z,col,)や、(x,y,z,col,弾性率)等で構成される点の情報である。(x,y,z,col、弾性率)の(x,y,z)は、三次元空間内での座標情報である。「col」は、当該点の色情報である。「弾性率」は、当該点の弾力を示す値であり、弾性情報の一例である。なお、弾性率は、例えば、ヤング率であるが、剛性率、体積弾性率などとしても良い。また、弾性情報の例として、例えば、ヤング率、ポワソン比、破断値、摩擦係数などがある。点の情報は、アルファ値などの透明度についての情報である透明度情報を含んでも良い。3Dボクセル情報は、ここでは、点の間隔がなく、詰まっている点の情報であることが好適であるが、離散的な点の情報でも良い。なお、3Dボクセル情報は、(x,y,z,col)であり、弾性情報は、3Dボクセル情報への付加情報として保持していても良い。かかる場合も、3Dボクセル情報が弾性情報を有する、と考えても良い。物体情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。さらに、CT(コンピュータ断層撮影(Computed Tomography))は、放射線など(X線)を利用して物体を走査しコンピュータを用いて処理し、物体の内部画像を構成する技術である。CTには、ポジトロン断層法(PET)や単一光子放射断層撮影(SPECT)、や核磁気共鳴画像法(MRI)などの、コンピュータを用いて断面像を得る各種検査法を含む。
物体情報格納部101に3Dボクセル情報が記憶される過程は問わない。例えば、記録媒体を介して3Dボクセル情報が物体情報格納部101で記憶されるようになってもよく、通信回線等を介して送信された3Dボクセル情報が物体情報格納部101で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された3Dボクセル情報が物体情報格納部101で記憶されるようになってもよい。
受付部102は、スライス情報群出力部108が出力したスライス情報群に対する指示を受け付ける。受付部102が受け付ける指示は、例えば、出力されている三次元物体を複数の領域に区分する指示である。複数の領域は、3以上でも良い。また、受付部102が受け付ける指示は、例えば、出力されている三次元物体を複数の領域に区分する断面を特定する指示である。ここで、断面とは、曲面でも良い。また、断面は、2以上でも良い。受付部102は、通常、入力機器100により入力された指示を受け付ける。ここで、受け付けとは、入力機器100(キーボードやマウス、タッチパネルなどの入力デバイス)から入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
スライス情報群取得部103は、物体情報格納部101に格納されている3Dボクセル情報から、2以上のスライス情報を切り出し、当該2以上のスライス情報からなるスライス情報群を取得し、スライス情報群格納部104に少なくとも一時的に格納する。なお、スライス情報群取得部103が切り出すスライス情報は、視線に対して垂直で、かつ間隔が一定の複数のスライス情報である。ここで、「視線に対して垂直である」とは、三次元物体が表示されている画面に垂直なベクトルである視線ベクトルに対して垂直である、ことである。なお、スライス情報は、平面を構成する点の情報の集合であり、通常、点間の間隔がなく、詰まっている。スライス情報群取得部103は、通常、MPUやメモリ等から実現され得る。スライス情報群取得部103の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スライス情報群格納部104は、複数のスライス情報を有するスライス情報群を格納し得る。スライス情報は、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報である。スライス情報は、位置を示す情報である位置情報と色についての情報である色情報を有する複数の点の情報から構成される。また、スライス情報を構成する点は、位置情報と色情報と弾性情報を有しても良い。なお、スライス情報群格納部104は、物体情報格納部101に格納されている3Dボクセル情報から、取得されたスライス情報群を格納していても良い。さらに、スライス情報群は、スライス情報群取得部103が取得しても良い。
スライス情報群格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。スライス情報群格納部104にスライス情報群が記憶される過程は問わない。例えば、記録媒体を介してスライス情報群がスライス情報群格納部104で記憶されるようになってもよく、通信回線等を介して送信されたスライス情報群がスライス情報群格納部104で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたスライス情報群がスライス情報群格納部104で記憶されるようになってもよい。
第一メッシュ情報格納部105は、三次元の物体の三次元メッシュの情報である第一メッシュ情報を格納し得る。三次元メッシュの情報は、三次元物体を構成する点の情報の集合である。三次元メッシュの情報は、間隔が空いている点の情報の集合である。ここでの点の情報は、通常、(x,y,z,col,弾性情報)のデータ構造を有する情報である。ただし、点の情報は、(x,y,z)という座標情報のみでも良い。第一メッシュ情報は、後述する複数のサンプリング位置情報により構成されることは好適である。
第一メッシュ情報格納部105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。第一メッシュ情報格納部105に第一メッシュ情報が記憶される過程は問わない。例えば、記録媒体を介して第一メッシュ情報が第一メッシュ情報格納部105で記憶されるようになってもよく、通信回線等を介して送信された第一メッシュ情報が第一メッシュ情報格納部105で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された第一メッシュ情報が第一メッシュ情報格納部105で記憶されるようになってもよい。
サンプリング位置情報取得部106は、複数のサンプリング位置情報を取得する。サンプリング位置情報とは、三次元の物体の三次元空間をサンプリングする点を構成する情報であり、位置情報を有する情報である。サンプリング位置情報取得部106は、例えば、三次元の物体の三次元空間をX軸、Y軸、Z軸を10等分し、三次元空間内に点を構成し、当該点を示す位置情報をサンプリング位置情報としても良い。この点は、三次元の物体内または三次元の物体上の点であることは好適である。また、サンプリング位置情報取得部106は、例えば、三次元の物体の三次元空間をX,Y,Zのそれぞれの軸を10の幅で区切り、区切った交点の位置情報をサンプリング位置情報としても良い。その他、サンプリング位置情報取得部106がサンプリング位置情報を取得するアルゴリズムは問わない。サンプリング位置情報取得部106は、通常、MPUやメモリ等から実現され得る。サンプリング位置情報取得部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一メッシュ情報蓄積部107は、サンプリング位置情報取得部106が取得した複数のサンプリング位置情報を用いて第一メッシュ情報を構成し、当該第一メッシュ情報を第一メッシュ情報格納部105に蓄積する。例えば、サンプリング位置情報は、第一メッシュ情報を構成する各点である。第一メッシュ情報蓄積部107は、通常、MPUやメモリ等から実現され得る。第一メッシュ情報蓄積部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スライス情報群出力部108は、スライス情報群取得部103が取得したスライス情報群を出力する。スライス情報群出力部108は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。スライス情報群出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
ラベル情報構成部109は、受付部102が受け付けた指示に対応して、1以上のスライス情報を構成する点の属性値であるラベル情報を構成する。ここでのスライス情報は、スライス情報群または第二スライス情報群を構成するスライス情報である。また、ここでは、ラベル情報は、スライス情報群または第二スライス情報群の出力態様を決定する情報である。また、ラベル情報は、例えば、他の点とは異なった出力態様で出力される点により構成される断面を示す情報である。ラベル情報は、出力する点と出力しない点とを区別する情報である。また、ラベル情報は、例えば、モノクロで表示される断面を示す情報である。ラベル情報は、例えば、断面を特定する矩形の4点を特定する情報である。また、かかる場合、受付部102が受け付ける指示は、断面を特定する指示である。また、ラベル情報は、カラーマップを識別するカラーマップ識別子などでも良い。カラーマップは、三次元物体をカラー表示するためのマップであり、例えば、CT値と色情報とが対応付けられた情報群である。ラベル情報構成部109は、通常、MPUやメモリ等から実現され得る。ラベル情報構成部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二メッシュ情報取得部110は、受付部102が受け付けた指示に基づいて、第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。かかる場合、受付部102が受け付ける指示は、第一メッシュ情報を変形する指示である。第一メッシュ情報を変形する指示は、出力されている三次元物体を変形する指示とも言える。また、第二メッシュ情報のデータ構造は、通常、第一メッシュ情報と同じである。第二メッシュ情報取得部110が、第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する処理は、通常、有限要素法による処理であり、公知技術であるので、詳細な説明は省略する。第二メッシュ情報取得部110は、通常、MPUやメモリ等から実現され得る。第二メッシュ情報取得部110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一スライス情報群取得部111は、第二メッシュ情報に基づいて、スライス情報群格納部104から、色情報を有しない複数のスライス情報である第一スライス情報群を取得する。第一スライス情報群取得部111は、第一メッシュ情報に対して変形したメッシュ情報である第二メッシュ情報から構成される三次元物体をスライスして取得できる情報であるスライス情報を複数取得する。かかるスライス情報間の間隔は一定であることが好適である。また、複数のスライス情報は、視線ベクトルに対して垂直であることが好適である。また、第一スライス情報群を構成するスライス情報が色情報を有しない、とは、最終的に表示されない色であるダミーの色の色情報を有することも含む。第一スライス情報群取得部111は、通常、MPUやメモリ等から実現され得る。第一スライス情報群取得部111の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
色情報決定部112は、第一スライス情報群を構成する複数のスライス情報の各点であり、3Dボクセル情報の点に対応する各点の色情報を決定する。3Dボクセル情報の点に対応する各点は、3Dボクセル情報中の点であり、変形前の点である。色情報決定部112は、通常、MPUやメモリ等から実現され得る。色情報決定部112の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
対応点決定手段1121は、第一スライス情報群を構成する複数のスライス情報の各点に対応する、3Dボクセル情報の中の各点を決定する。なお、この3Dボクセル情報の中の各点は、変形前の各点である。対応点決定手段1121は、通常、MPUやメモリ等から実現され得る。対応点決定手段1121の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
色情報決定手段1122は、対応点決定手段1121が決定した3Dボクセル情報の中の各点の色情報を取得する。色情報決定手段1122は、通常、MPUやメモリ等から実現され得る。色情報決定手段1122の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二スライス情報群取得部113は、色情報決定部112が決定した各点の色情報に基づいて、第一スライス情報群取得部111が取得した第一スライス情報群の各点に新たな色情報を設定し、かつ、ラベル情報構成部109が構成したラベル情報に応じて、第二スライス情報群を取得する。例えば、ラベル情報が断面を示す情報である場合、第二スライス情報群取得部113は、当該断面を構成する各点の色情報を、予め決められた方法(ルールやアルゴリズムと言っても良い)により変更し、他の点の色情報は、第一スライス情報群取得部111が取得した第一スライス情報群の各点の色情報(カラー)のままとする第二スライス情報群を取得する。また、さらに具体的には、例えば、ラベル情報が断面を示す情報である場合、第二スライス情報群取得部113は、当該断面を構成する各点の色情報をモノクロに変更し、他の点の色情報は、第一スライス情報群取得部111が取得した第一スライス情報群の各点の色情報(カラー)のままとする第二スライス情報群を取得する。また、例えば、ラベル情報が断面を示す情報である場合、第二スライス情報群取得部113は、当該断面を構成する各点の色情報を、モノクロの色情報に変更し、かつ、ラベル情報が示す断面により区分された三次元物体の一方の領域が未表示となるように色情報を変更(ここでは、α値を0とする)して、かつ、ラベル情報が示す断面により区分された三次元物体の他方の領域の色情報は、第一スライス情報群取得部111が取得した第一スライス情報群の各点の色情報(カラー)のままとする第二スライス情報群を取得するようにしても良い。第二スライス情報群取得部113は、通常、MPUやメモリ等から実現され得る。第二スライス情報群取得部113の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変更物体出力部114は、ラベル情報構成部109が構成したラベル情報に応じて、変更されたスライス情報群を出力する。また、変更物体出力部114は、第二スライス情報群取得部113が取得した第二スライス情報群を出力する。変更物体出力部114がスライス情報群または第二スライス情報群を出力することにより、例えば、三次元物体が表示される。変更物体出力部114は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。変更物体出力部114は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
なお、情報処理装置1を構成する第二スライス情報群取得部113および変更物体出力部114、または変更物体出力部114はGPU(Graphics Processing Unit)で構成されても良い。かかる場合の情報処理装置1の処理のイメージを示した図が図2である。情報処理装置1において、カラーのボリュームと属性ボリュームとをGPUに送付し、GPUでカラーのボリューム(201)と属性ボリューム(202)とをレンダリングする。レンダリングした結果、最終的な出力結果(203)が得られる。なお、カラーのボリュームと属性ボリュームとを得るまでの処理は、CPU(またはMPU)で行われる。カラーのボリュームと属性ボリュームとを得るまでの処理は、1つのCPU(MPU)で行われても良いし、2つのCPU(MPU)で行われても良い。また、かかることは、後述する情報処理装置2、情報処理装置3においても同様である。情報処理装置2または情報処理装置3の場合も、GPUで実現される手段は、第二スライス情報群取得部および変更物体出力部、または変更物体出力部である。なお、カラーのボリュームとは、三次元物体の濃淡情報が格納された3Dボクセル群の濃淡情報を、色情報に変換した後の3Dボクセル群のことである。属性ボリュームとは、ラベル情報が格納された3Dボクセル群である。
次に、情報処理装置1の動作について図3のフローチャートを用いて説明する。
(ステップS301)受付部102は、入力機器100(例えば、キーボードやマウスなど)からの指示を受け付けたか否かを判断する。指示を受け付ければステップS302に行き、指示を受け付けなければステップS301に戻る。
(ステップS302)受付部102は、ステップS301で受け付けた指示が、情報処理装置1(例えば、手術シミュレーション)の起動指示であるか否かを判断する。起動指示であればステップS303に行き、起動指示でなければステップS304に行く。
(ステップS303)サンプリング位置情報取得部106および第一メッシュ情報蓄積部107は、メッシュ情報蓄積処理を行う。メッシュ情報蓄積処理について、図4のフローチャートを用いて説明する。ステップS301に戻る。
(ステップS304)受付部102は、ステップS301で受け付けた指示が、スライス情報群の出力指示であるか否かを判断する。出力指示であればステップS305に行き、出力指示でなければステップS307に行く。
(ステップS305)スライス情報群出力部108は、スライス情報群格納部104からスライス情報群を読み出す。
(ステップS306)スライス情報群出力部108は、ステップS305等で取得されたスライス情報群を出力する。ステップS301に戻る。なお、スライス情報群の出力により、三次元物体が表示される。
(ステップS307)受付部102は、ステップS301で受け付けた指示が、三次元物体の回転指示であるか否かを判断する。回転指示であればステップS308に行き、回転指示でなければステップS311に行く。
(ステップS308)スライス情報群取得部103は、ステップS301で受け付けた回転指示に基づいて、視線ベクトルを取得する。視線ベクトルは、ディスプレイの表示面と垂直のベクトルである。回転指示は、マウス等の入力機器100により入力される。
(ステップS309)スライス情報群取得部103は、物体情報格納部101に格納されている3Dボクセル情報から、視線ベクトルに対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、スライス情報群を取得する。スライス情報の間隔の値は予め格納されている、とする。
(ステップS310)スライス情報群取得部103は、ステップS309で取得したスライス情報群を、スライス情報群格納部104に、少なくとも一時蓄積する。ステップS206に行く。
(ステップS311)ラベル情報構成部109は、ステップS301で受け付けた指示が、ラベル情報を構成する指示であるか否かを判断する。ラベル情報を構成する指示であればステップS312に行き、ラベル情報を構成する指示でなければステップS314に行く。なお、ここでのラベル情報を構成する指示は、断面を指定する指示である。なお、断面を指定する指示とは、断面を回転させる指示や、断面を平行移動させたりする指示も含む。断面を回転させる指示や、断面を平行移動させたりする指示も、新たな断面を指定する指示である。
(ステップS312)ラベル情報構成部109は、ステップS301で受け付けた指示に対応する断面の情報を用いて、ラベル情報を構成する。ここでは、例えば、ラベル情報は、断面を特定する4点の位置情報(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)である。ラベル情報構成部109は、例えば、指定された断面を構成する4点の位置情報を取得し、ラベル情報を構成する。
(ステップS313)第二スライス情報群取得部113は、ステップS312で構成されたラベル情報に応じて、第二スライス情報群を取得する。第二スライス情報群を取得する処理であるスライス情報群構成処理について、図5のフローチャートを用いて説明する。ステップS306に行く。
(ステップS314)第二メッシュ情報取得部110は、ステップS301で受け付けた指示が、変形指示であるか否かを判断する。変形指示であればステップS315に行き、変形指示でなければステップS301に戻る。
(ステップS315)第二メッシュ情報取得部110等は、表示されている三次元物体の変形処理を行う。変形処理について、図6のフローチャートを用いて説明する。ステップS306に行く。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS303のメッシュ情報蓄積処理について、図4のフローチャートを用いて説明する。
(ステップS401)サンプリング位置情報取得部106は、三次元空間における分割幅x,y,zを取得する。分割幅x,y,zは、それぞれX軸、Y軸、Z軸を分割する場合の間隔を示す値である。サンプリング位置情報取得部106は、例えば、三次元空間のX軸、Y軸、Z軸の最大値を取得し、予め決められた分割数(n)を読み出し、X軸、Y軸、Z軸のそれぞれの最大値をn等分する分割幅x,y,zを取得する。
(ステップS402)サンプリング位置情報取得部106は、カウンタiに1を代入する。
(ステップS403)サンプリング位置情報取得部106は、iはn以下であるか否かを判断する。「i<=n」であればステップS404に行き、「i<=n」でなければ上位処理にリターンする。
(ステップS404)サンプリング位置情報取得部106は、カウンタjに1を代入する。
(ステップS405)サンプリング位置情報取得部106は、jはn以下であるか否かを判断する。「j<=n」であればステップS406に行き、「j<=n」でなければステップS413に行く。
(ステップS406)サンプリング位置情報取得部106は、カウンタkに1を代入する。
(ステップS407)サンプリング位置情報取得部106は、kはn以下であるか否かを判断する。「k<=n」であればステップS408に行き、「k<=n」でなければステップS412に行く。
(ステップS408)サンプリング位置情報取得部106は、三次元の物体の三次元空間をサンプリングする点を構成する位置情報を有するサンプリング位置情報を算出する。サンプリング位置情報取得部106は、サンプリング位置情報((i−1)×x,(i−1)×y,(i−1)×z)を算出する。
(ステップS409)サンプリング位置情報取得部106は、サンプリング位置情報((i−1)×x,(i−1)×y,(i−1)×z)が示す点が、三次元の物体内(その表面上も含む)に存在するか否かを判断する。三次元の物体内に存在すればステップS410に行き、三次元の物体内に存在しなければステップS411に行く。
(ステップS410)第一メッシュ情報蓄積部107は、サンプリング位置情報取得部106が取得したサンプリング位置情報を用いて第一メッシュ情報を構成し、当該第一メッシュ情報を第一メッシュ情報格納部105に蓄積する。第一メッシュ情報が、例えば、(x,y,z)の構造を有する場合、第一メッシュ情報蓄積部107は、サンプリング位置情報((i−1)×x,(i−1)×y,(i−1)×z)を、そのまま第一メッシュ情報格納部105に蓄積する。
(ステップS411)サンプリング位置情報取得部106は、カウンタkを1、インクリメントする。ステップS407に戻る。
(ステップS412)サンプリング位置情報取得部106は、カウンタjを1、インクリメントする。ステップS405に戻る。
(ステップS413)サンプリング位置情報取得部106は、カウンタiを1、インクリメントする。ステップS403に戻る。
なお、図4のフローチャートは、メッシュ情報蓄積処理の一例に過ぎない。第一メッシュ情報を構成するサンプリング位置情報をどのようなアルゴリズムで取得するかは問わない。後述するような4面体を構成する外部の点を示す情報をサンプリング位置情報としても良い。
また、図4のフローチャートにおいて、X軸、Y軸、Z軸の分割数はすべて同じであったが、異なっていても良い。
さらに、図4のフローチャートにおいて、ステップS409における判断処理は必須ではない。
次に、ステップS313のスライス情報群構成処理について、図5のフローチャートを用いて説明する。
(ステップS501)第二スライス情報群取得部113は、カウンタiに1を代入する。
(ステップS502)第二スライス情報群取得部113は、i番目のスライス情報(未処理のスライス情報)が、第一スライス情報群の中に存在するか否かを判断する。i番目のスライス情報が存在すればステップS503に行き、i番目のスライス情報が存在しなければ上位関数にリターンする。なお、ここでは、各スライス情報の各点の色情報の初期値は、カラーの色を示す色情報である、とする。また、上位関数とは、上位の処理のことであり、ここでは、スライス情報群構成処理を呼び出している図3の処理(ステップS313の終了時点)を言う。
(ステップS503)第二スライス情報群取得部113は、カウンタjに1を代入する。
(ステップS504)第二スライス情報群取得部113は、i番目のスライス情報の中に未処理のj番目の点があるかどうか判断する。j番目の点が存在すればステップS505に行き、j番目の点が存在しなければステップS508に飛ぶ。なお、「未処理」とは、モノクロにするか否かを判断していないことを言う。
(ステップS505)第二スライス情報群取得部113は、j番目の点が、ラベル情報が示す断面上に存在する点であるか否かを判断する。j番目の点が断面上に存在する点であればステップS506に行き、断面上に存在する点でなければステップS508に行く。
(ステップS506)第二スライス情報群取得部113は、j番目の点の色情報(元々はカラーである)をモノクロに変更する。
(ステップS507)第二スライス情報群取得部113は、カウンタjを1、インクリメントする。ステップS504に戻る。
(ステップS508)第二スライス情報群取得部113は、j番目の点が、断面により分けられる領域のうちの、予め決められた領域(例えば、右側の領域)に存在するか否かを判断する。予め決められた領域に存在すればステップS509に行き、予め決められた領域に存在しなければステップS507に行く。なお、予め決められた領域とは、ここでは、断面の一方側である。
(ステップS509)第二スライス情報群取得部113は、j番目の点のα値(透明度情報)を0にする(j番目の点を透明にする)。なお、α値が0となった点は透明であり、表示されない。
(ステップS510)第二スライス情報群取得部113は、カウンタiを1、インクリメントする。ステップS502に戻る。
なお、図5のフローチャートのステップS509において、例えば、α値を0以外の他の値(例えば、「0.5」)にするなどしても良い。
次に、ステップS315の変形処理について、図6のフローチャートを用いて説明する。
(ステップS601)第二メッシュ情報取得部110は、第一メッシュ情報格納部105から第一メッシュ情報を読み出す。
(ステップS602)第二メッシュ情報取得部110は、ステップS201で受け付けた指示に基づいて、ステップS601で読み出した第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。変形指示に基づいてメッシュ情報を変形する処理は、公知技術(有限要素法の技術)であるので、詳細な説明は省略する。
(ステップS603)第一スライス情報群取得部111は、ステップS602で取得した第二メッシュ情報に基づいて、複数のスライス情報である第一スライス情報群を取得する。第二メッシュ情報が構成する三次元物体をスライスし、複数の平面の情報を得る。かかる平面の情報がスライス情報である。スライス情報は、座標情報(x,y,z)で示される点の集合であり、色情報は有さない。かかる場合、第一スライス情報群取得部111は、視線ベクトルに対して垂直となり、所定の間隔で、複数のスライス情報である第一スライス情報群を取得する。
(ステップS604)第二スライス情報群取得部113は、第二スライス情報群を取得する。かかる処理の詳細については、図7のフローチャートを用いて説明する。
(ステップS605)変形物体出力部115は、ステップS604で取得した第二スライス情報群を出力する。上位関数にリターンする。
次に、ステップS604における第二スライス情報群を取得する処理について、図7のフローチャートを用いて説明する。
(ステップS701)第二スライス情報群取得部113は、カウンタiに1を代入する。
(ステップS702)第二スライス情報群取得部113は、i番目のスライス情報(未処理のスライス情報)が、第一スライス情報群の中に存在するか否かを判断する。i番目のスライス情報が存在すればステップS703に行き、i番目のスライス情報が存在しなければ上位関数にリターンする。
(ステップS703)第二スライス情報群取得部113は、カウンタjに1を代入する。
(ステップS704)第二スライス情報群取得部113は、i番目のスライス情報の中に未処理のj番目の点があるかどうか判断する。j番目の点が存在すればステップS705に行き、j番目の点が存在しなければステップS709に飛ぶ。なお、「未処理」とは、ここでは、色情報を設定していないことを言う。
(ステップS705)対応点決定手段1121は、i番目のスライス情報の中のj番目の点に対応する点であり、3Dボクセル情報中の点を決定する。3Dボクセル情報中の点とは、変形前の点である。なお、j番目の点は、変形後の点である。3Dボクセル情報中の点を決定するアルゴリズムの例の詳細は、後述する。
(ステップS706)色情報決定手段1122は、ステップS705で決定した3Dボクセル情報中の点の色情報を取得する。
(ステップS707)色情報決定手段1122は、ステップS706で取得した色情報を、i番目のスライス情報の中のj番目の点の色情報に設定する。
(ステップS708)第二スライス情報群取得部113は、カウンタjを1、インクリメントする。ステップS704に戻る。
(ステップS709)第二スライス情報群取得部113は、カウンタiを1、インクリメントする。ステップS702に戻る。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。情報処理装置1において、例えば、三次元物体は、心臓や肺や腎臓などの臓器である。そして、例えば、図8に示す医用画像の集合(三次元画像)が、物体情報格納部101に格納されている。この医用画像の集合は、CTによって計測された患者の医用画像の集合である。ここでの3Dボクセル情報を構成する各点のデータ構造は(x、y、z,col)である。ここで、「x」は三次元空間におけるx座標値、「y」は三次元空間におけるy座標値、「z」は三次元空間におけるz座標値、colは点の色を示す情報である。
次に、ユーザは、情報処理装置1に対して、起動指示を入力した、とする。すると、受付部102は、起動指示を受け付ける。
次に、サンプリング位置情報取得部106と第一メッシュ情報蓄積部107は、以下のようにメッシュ情報蓄積処理を行う。メッシュ情報蓄積処理により、第一メッシュ情報格納部105に第一メッシュ情報が蓄積される。
サンプリング位置情報取得部106は、例えば、三次元空間内の点であり、4面体の外側の点の位置情報を自動的に取得する、とする。つまり、心臓や肺などの臓器は三次元物体であり、4面体(正4面体)の集合で近似できる。したがって、ここでは、説明の簡単化のために、図9(a)に示す4面体を変形させる場合について説明する。図9(a)において、A,B,C,Oの4点を有する。点Pは、4面体の内部のある点である。つまり、サンプリング位置情報取得部106は、三次元空間内を4面体の集合に分割し、その4面体を構成する外側の点の位置情報を自動的に取得する。なお、サンプリング位置情報取得部106は、正4面体の各辺の長さを予め保持している。そして、三次元空間内を正4面体の集合に分割し、その4面体を構成する外側の点の位置情報を自動的に取得する処理は公知技術であるので、詳細な説明を省略する。サンプリング位置情報取得部106が取得した位置情報の例は、「A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3)・・・」である。そして、第一メッシュ情報蓄積部107は、サンプリング位置情報取得部106が取得したサンプリング位置情報を、第一メッシュ情報格納部105に蓄積する。なお、第一メッシュ情報は、例えば、4面体の外側および内側の点の情報(点の間は間隔があいている)の集合であっても良い。
次に、ユーザは、スライス情報群の出力指示を入力した、とする。すると、受付部102はスライス情報群の出力指示を受け付ける。
次に、スライス情報群取得部103は、図10に示すように、視線ベクトルに対して垂直となり、所定の間隔(スライス情報群取得部103は、当該間隔を予め保持している。)で、複数のスライス情報であるスライス情報群を、3Dボクセル情報から取得する。スライス情報群取得部103は、表示対象の三次元物体の位置「minD」と「maxD」を求め、所定の間隔「D」でスライスし、複数のスライス情報を取得する。スライス情報は、点の情報の集合である。また、スライス情報を構成する点間の間隔はない。つまり、スライス情報により示される平面は、点の情報により詰まっている。ここでの点の情報は、位置情報(x,y,z)を有し、色情報を有さない。その結果、スライス情報群取得部103は、図11に示すスライス情報群を取得する。スライス情報群は、スライス情報S1,スライス情報S2,スライス情報S3などを有する。なお、視線ベクトルに対して垂直にスライス情報を取得するのは、ユーザがスライス情報の集合を見た場合に、間引いたスライス情報でも、立体的に見えるようにするためである。また、所定の間隔で、間引いたスライス情報を取得するのは、表示処理の高速化のためである。また、一定の間隔でスライス情報を取得するのは、高品質な三次元物体を表示するためである。なお、視線ベクトルは、画面に対して垂直のベクトルであり、受付部102が回転指示を受け付けた場合、当該回転指示に応じて変化する。
そして、スライス情報群取得部103は、取得した図11のスライス情報群を、少なくとも一時的に、スライス情報群格納部104に格納する。
次に、スライス情報群出力部108は、スライス情報群格納部104のスライス情報群を出力する。ここで、出力されたスライス情報群により、ユーザは、三次元の四面体を認識できる。なお、スライス情報群出力部108がスライス情報群を出力するトリガーは、ユーザ指示でも良いし、外部装置からの命令の受信等でも良い。そのトリガーは問わない。なお、ここで出力された三次元物体は、図12であったとする。図12は、腎臓と背骨と血管等が見えている三次元画像である。
次に、ユーザは、出力されているスライス情報群(三次元物体)に対して、回転指示を入力した、とする。すると、受付部102はスライス情報群の回転指示を受け付ける。
次に、スライス情報群取得部103は、受け付けた回転指示に基づいて、視線ベクトルを取得する。
次に、スライス情報群取得部103は、物体情報格納部101に格納されている3Dボクセル情報から、視線ベクトルに対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、スライス情報群を取得する。また、スライス情報群取得部103は、取得したスライス情報群を、スライス情報群格納部104に、少なくとも一時蓄積する。そして、スライス情報群出力部108は、取得されたスライス情報群を出力する。以上の処理により、三次元物体の全体が回転したように見える。図12の画像を回転させた後の出力の例を図13に示す。
次に、ユーザは、出力されているスライス情報群に対する所定の点または領域に対する指示を入力し、表示されている三次元の四面体を変形しようとする、とする。かかる指示を変形指示という。ここでは、変形指示は、例えば、情報処理装置1が具備するファントム(入力機器100の一種)で入力する。ファントムでの入力は、例えば、図9(a)に示す4面体の点Oを左横に所定の力で押下する入力である。そして、受付部102は、変形指示を受け付ける。かかる入力により、図9(a)に示す4面体は、図9(b)に示すような4面体になる。そして、かかる変形指示に基づいて、第二メッシュ情報取得部110は、第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。第二メッシュ情報は、例えば、「A'(x'1,y'1,z'1)、B(x'2,y'2,z'2)、C(x'3,y'3,z'3)・・・」である。つまり、第二メッシュ情報は、図9(b)の4面体を示す情報である。なお、第一メッシュ情報を変形し、第二メッシュ情報を取得する処理は、有限要素法による公知技術であるので詳細な説明は省略する。
次に、色情報の取得処理について説明する。図9(a),(b)にあるように、メッシュ要素内部のある点Pが、変形指示の入力によってP'に変位したとき、P'の色情報には3Dボクセル情報内のPの位置にある色情報を割り当てる必要がある。変形前後においてメッシュ内部の任意点の各頂点からの相対位置が変化しないとすれば、変形前後の内部点P,P'の位置は共通のパラメータs,t,uを用いて、次のように各エッジの線形結合として表すことができる。
OP=sOA+tOB+uOC 式(1)
O'P'=sO'A'+tO'B'+uO'C' 式(2)
ここで、対応点決定手段1121は、式(2)を解いて、変形後のメッシュから内部の点P'を定義するパラメータs,t,uを求め、式(1)から変形前の位置Pを得る。そして、位置Pに対応する色情報を、3Dボクセル情報から取得する。そして、色情報決定手段1122は、対応点決定手段1121が決定した第一スライス情報群を構成する複数のスライス情報の中の各点の色情報を取得し、設定する。その結果、図14の変形後の各スライス情報を構成する各点は、色情報を有することとなる。
以上の処理において、メッシュ情報を構成するノード(点)に変位が生じたり、メッシュ情報の再構成が行われたりした場合でも、シミュレーション前後において、要素内の点の各ノードからの相対位置が求められる限り、内部の任意点における色情報が再現可能である。
次に、変更物体出力部114は、第二スライス情報群を出力する。かかる処理により、変形指示を受け付けた後の三次元物体がリアルタイムに出力される。変形指示の受け付けと変形後の三次元物体の出力を繰り返すことで、例えば、医療分野における生体機能解析やリアルタイムの手術シミュレーション等が可能となる。変形前の出力の例を図15、変形後の出力の例を図16に示す。変形前の出力(図15)の腎臓の先がつままれ、背骨側に延ばすように変形されたのが、変形後の出力(図16)である。
次に、ユーザは、モノクロ表示する断面を指定する入力を、入力機器100に対して行った、とする。かかる入力は、例えば、入力機器100であるマウスを用いて、「断面」ボタンを押下し、断面を指定する入力である。そして、受付部102は、断面を指定する入力を受け付ける。
次に、ラベル情報構成部109は、受け付けた指示に対応する断面の情報を用いて、ラベル情報を構成する。ここでは、例えば、ラベル情報は、断面を特定する4点の位置情報(xa,ya,za)(xb,yb,zb)(xc,yc,zc)(xd,yd,zd)である。
次に、第二スライス情報群取得部113は、4点の位置情報(xa,ya,za)(xb,yb,zb)(xc,yc,zc)(xd,yd,zd)により構成される断面上の点であり、三次元物体上の点の色情報をモノクロに変更する。そして、第二スライス情報群取得部113は、断面により区切られる三次元領域の一方の領域内の点の色情報は元のカラーのままにし、前記断面により区切られる三次元領域の他方の領域内の点のα値を0にする(非表示にする)変更を行う。そして、第二スライス情報群取得部113は、かかる変更が行われた第二スライス情報群を取得する。そして、変更物体出力部114は、ラベル情報構成部109が構成したラベル情報に応じて、変更された第二スライス情報群を出力する。かかる出力例を図17に示す。図17において、腎臓の右側が切り取られ、その断面がモノクロ表示されている。
また、ユーザが断面を回転させたり、断面を平行移動させたりする指示を入力すると、モノクロの面が回転したり、平行移動したりする。かかる処理は、1)断面の設定、2)断面の点のモノクロ化、3)他の点の色情報の取得、4)スライス情報群の出力、という処理手順により実現できる、ことは上述した通りである。断面の回転前後の出力例を図18、図19に示す。図17、図18、図19と進むにしたがって、断面を左周りに回転させ、モノクロ表示の面の面積が大きくなり、正面に近づいていっている。
以上、本実施の形態によれば、三次元物体を構成する点に対して、ユーザ指示に応じて、動的に属性値を設定できる。さらに具体的には、本実施の形態によれば、三次元物体を断面で切り、断面の色情報を他と区別して、三次元物体を出力できる。そして、特に、断面の区切られた領域の一部を未表示とすることにより、三次元物体の断面が非常に良く観察できるようになる。かかることにより、例えば、手術のシミュレーションとして、極めて有用である。
なお、本実施の形態において、断面をモノクロにしたが、断面もカラーのままでも良い。そして、断面の一方を未表示とすることで、断面がカラーで観察できる。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と色についての情報である色情報を有する複数の点の情報から構成される複数のスライス情報を有するスライス情報群が格納されており、コンピュータを、前記記憶媒体に格納されているスライス情報群を出力するスライス情報群出力部と、前記スライス情報群出力部が出力したスライス情報群に対する指示を受け付ける受付部と、前記受付部が受け付けた指示に対応して、スライス情報を構成する点の属性値であるラベル情報を構成するラベル情報構成部と、前記ラベル情報構成部が構成したラベル情報に応じて、変更された前記スライス情報群を出力する変更物体出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、記憶媒体に、さらに、三次元の物体の三次元メッシュの情報である第一メッシュ情報を格納しており、コンピュータを、前記受付部が受け付けた指示に基づいて、前記第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する第二メッシュ情報取得部と、前記第二メッシュ情報に基づいて、前記記憶媒体から、色情報を有しない複数のスライス情報である第一スライス情報群を取得する第一スライス情報群取得部と、前記第一スライス情報群を構成する複数のスライス情報の各点であり、前記3Dボクセル情報の点に対応する各点の色情報を決定する色情報決定部と、前記色情報決定部が決定した各点の色情報に基づいて、前記第一スライス情報群取得部が取得した第一スライス情報群の各点に新たな色情報を設定し、かつ、前記ラベル情報構成部が構成したラベル情報に応じて、第二スライス情報群を取得する第二スライス情報群取得部として、さらに機能させ、前記変更物体出力部は、前記第二スライス情報群を出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、前記三次元の物体の三次元空間をサンプリングする点を構成する位置情報を有するサンプリング位置情報を、複数取得するサンプリング位置情報取得部として、さらに機能させ、前記記憶媒体に格納されている第一メッシュ情報は、前記複数のサンプリング位置情報により構成されるプログラム、であることは好適である。
また、上記プログラムにおいて、前記ラベル情報は、前記スライス情報群または前記第二スライス情報群の出力態様を決定する情報であることは好適である。
また、上記プログラムにおいて、前記ラベル情報は、他の点とは異なった出力態様で出力される点により構成される断面を示す情報であることは好適である。
また、上記プログラムにおいて、前記ラベル情報は、モノクロで表示される断面を示す情報であり、前記第二スライス情報群取得部は、前記ラベル情報が示す断面上の点がモノクロで出力されるように、当該点の色情報を変更し、前記ラベル情報が示す断面の一方の領域が未表示となるように色情報を変更して第二スライス情報群を取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
(実施の形態2)
本実施の形態において、三次元物体を構成する点に対して、動的にラベル情報(属性値)を設定できる情報処理装置について説明する。また、ここでのラベル情報は、出力態様を決定する情報である。また、特に、ここでのラベル情報は、出力領域に関する情報である。さらに、特に、ここでのラベル情報は、α値を0にして表示しないCT値を特定する情報である。つまり、本実施の形態において、例えば、ユーザの指示により、三次元物体において、特定のCT値を有する点のみを表示したりできる。
図20は、本実施の形態における情報処理装置2のブロック図である。情報処理装置2は、入力機器100、物体情報格納部101、受付部102、スライス情報群取得部103、スライス情報群格納部104、第一メッシュ情報格納部105、サンプリング位置情報取得部106、第一メッシュ情報蓄積部107、スライス情報群出力部108、ラベル情報構成部209、第二メッシュ情報取得部110、第一スライス情報群取得部111、色情報決定部112、第二スライス情報群取得部213、変更物体出力部214を具備する。
ラベル情報構成部209は、受付部102が受け付けた指示に対応して、1以上のスライス情報を構成する点の属性値であるラベル情報を構成する。ここでのラベル情報は、例えば、出力する点と出力しない点とを区別する情報である。ここでのラベル情報は、例えば、出力する点と出力しない点とを区別する境界のCT値である。また、ここでのラベル情報は、出力する点と出力しない点とを区別する境界を示す断面の情報でも良い。なお、本実施の形態において、複数のスライス情報の各点は、CT値を有する、またはCT値に対応付いている。複数のスライス情報は、スライス情報群格納部104に格納されているスライス情報や、出力されるスライス情報である。なお、CT値は、組織のX線減弱係数の値で、X線の吸収の程度を数値化したものである。つまり、ここでは、CT値は、三次元物体の「濃淡情報」に相当する情報である。CT値は、物体情報格納部101の3Dボクセル情報が有する値である。
ラベル情報構成部209は、通常、MPUやメモリ等から実現され得る。ラベル情報構成部209の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二スライス情報群取得部213は、色情報決定部112が決定した各点の色情報に基づいて、第一スライス情報群取得部111が取得した第一スライス情報群の各点に新たな色情報を設定し、かつ、ラベル情報構成部209が構成したラベル情報に応じて、第二スライス情報群を取得する。第二スライス情報群取得部213は、α値を0にするCT値の条件を示す情報(透明条件情報)を保持しており、ある点のCT値が透明条件情報に合致すれば、その点のα値を0に設定する。透明条件情報とは、例えば、「CT値>定数1」「CT値<=定数2」「定数3<=CT値<定数4」などである。なお、定数1から4は、種々の値を採り得る。なお、α値は、ここでは、「0(透明)〜1(不透明)」の値を採り得る、とする。また、透明条件情報は、α値を0以外の値(例えば、「0.2」)にするCT値の条件を示す情報でも良い。かかる処理により、第二スライス情報群取得部213は、例えば、特定の内蔵や、血管などを鮮明に出力できる第二スライス情報群を取得する。第二スライス情報群取得部213は、通常、MPUやメモリ等から実現され得る。第二スライス情報群取得部213の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変更物体出力部214は、ラベル情報構成部209が構成したラベル情報に応じて、変更されたスライス情報群を出力する。また、変更物体出力部114は、第二スライス情報群を出力する。変更物体出力部214は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。変更物体出力部214は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置2の動作について説明する。情報処理装置2の動作において、情報処理装置1の動作(図3参照)と異なる点は、ステップS313の第二スライス情報群構成処理である。なお、情報処理装置2におけるラベル情報は、出力する点と出力しない点とを区別する情報である。
次に、情報処理装置2のスライス情報群構成処理について、図21のフローチャートを用いて説明する。図21のフローチャートにおいて、図5のフローチャートと同一の処理について、説明を省略する。なお、第二スライス情報群取得部213は、予め透明条件情報を保持している、とする。また、ユーザの指示により、透明条件情報は変更され得る、とする。
(ステップS2101)第二スライス情報群取得部213は、j番目の点のCT値を取得する。
(ステップS2102)第二スライス情報群取得部213は、ステップS2101で取得したCT値が、透明条件情報に合致するか否かを判断する。透明条件情報に合致すればステップS2103に行き、透明条件情報に合致しなければステップS2104に行く。
以下、本実施の形態における情報処理装置2の具体的な動作について説明する。情報処理装置2の物体情報格納部101に、例えば、図8に示す医用画像の集合(三次元画像)が格納されている。
次に、ユーザは、情報処理装置1に対して、起動指示を入力した、とする。すると、受付部102は、起動指示を受け付ける。
次に、サンプリング位置情報取得部106と第一メッシュ情報蓄積部107は、メッシュ情報蓄積処理を行う。そして、メッシュ情報蓄積処理により、第一メッシュ情報格納部105に第一メッシュ情報が蓄積される。かかる処理は、実施の形態1で説明した。
次に、ユーザは、スライス情報群の出力指示を入力した、とする。すると、受付部102はスライス情報群の出力指示を受け付ける。そして、情報処理装置2は、実施の形態1で説明したように、図22に示すような画像を出力する。図22は、実施の形態1で説明した処理が行われ、腎臓が一の断面により切られている画像である。また、図22において、実施の形態2の上記で説明した処理により、CT値が透明条件情報に合致する点は未表示となっており、血管や背骨などは未表示となっており、腎臓の一部等が表示されているに過ぎない。つまり、CT値が透明条件情報に合致する皮膚や脂肪などを構成する点は未表示であり、CT値が透明条件情報に合致しない腎臓の一部等は表示されている。
次に、ユーザは、マウスなどの入力機器100を用いて、図23(a)の2301の下向きの三角形のマーカーをスライドさせ、透明条件情報を変更した、とする。図23(a)の2301は、透明にする点のCT値の境界を示すバーである。図23(a)(b)は、濃淡値(CT値)をx軸に取った画像のヒストグラムをバックグラウンドに持ち、各濃淡値をどのような色および不透明度(α値)に変換するかを定義したグラフである。線が不透明度の関数で、グラフについている色そのものが変換後の色情報になる。例えば、図23(a)の場合はCT値が100くらいまでは透明にし、そこから200に近づくにつれ徐々に不透明ににし、200以上であれば完全に不透明にするというマップである。図23(a)において、同時に、CT値が200以上の点の色情報を白色に変換することを定義もしている。なお、図23(a)における不透明度の関数は、以下である。
(1)α=0(ただし、x<c)
(2)α=ax+b(ただし、c<x<d)
(3)α=1(ただし、x>d)
なお、図23(a)における不透明度関数は、図23(a)の白い線で表示されている。グラフの横軸は画像の輝度値(画素の値、CTの場合はCT値)、縦軸は不透明度の値である。
また、図23(b)における不透明度の関数は、フリーハンドで描かれた曲線になっている。この曲線も、図23(b)において、白い線で表示されている。
そして、血管や背骨などに対応するCT値も表示されるように透明条件情報が変更された、とする。つまり、受付部102は、透明条件情報の変更を受け付け、ラベル情報構成部209を経由して、第二スライス情報群取得部213に一時格納される。
そして、第二スライス情報群取得部213は、各スライス情報の各点のCT値を再取得する。そして、第二スライス情報群取得部213は、各点のCT値が、透明条件情報に合致するか否かを判断する。そして、第二スライス情報群取得部213は、透明条件情報に合致するCT値を有する点のα値を0に設定する。
そして、変更物体出力部214は、図24に示す画像を出力する。図24において、血管や背骨のα値は0でなくなり、表示されるに至っている。
以上、本実施の形態によれば、三次元物体を構成する点に対して、ユーザ指示に応じて、動的に属性値を設定できる。さらに具体的には、本実施の形態によれば、CT値に応じて未表示とすることにより、三次元物体中の一部の物質のみを表示できる。例えば、体内の一の臓器のみが表示できたり、一部の臓器と血管が表示できたりする。かかることにより、例えば、手術のシミュレーションや、医学の教育コンテンツ等として、極めて有用である。
なお、本実施の形態における情報処理装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と色についての情報である色情報を有する複数の点の情報から構成される複数のスライス情報を有するスライス情報群が格納されており、コンピュータを、前記記憶媒体に格納されているスライス情報群を出力するスライス情報群出力部と、前記スライス情報群出力部が出力したスライス情報群に対する指示を受け付ける受付部と、前記受付部が受け付けた指示に対応して、スライス情報を構成する点の属性値であるラベル情報を構成するラベル情報構成部と、前記ラベル情報構成部が構成したラベル情報に応じて、変更された前記スライス情報群を出力する変更物体出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記ラベル情報は、出力する点と出力しない点とを区別する情報であることは好適である。
また、上記プログラムにおいて、前記複数のスライス情報の各点は、CT値を有する、またはCT値に対応付いており、前記ラベル情報は、出力する点と出力しない点とを区別する境界のCT値であることは好適である。
(実施の形態3)
本実施の形態において、三次元物体を構成する点に対して、動的にラベル情報(属性値)を設定できる情報処理装置について説明する。また、ここでのラベル情報は、タイムスタンプを含む。
図25は、本実施の形態における情報処理装置3のブロック図である。情報処理装置3は、入力機器100、物体情報格納部101、受付部102、スライス情報群取得部103、スライス情報群格納部104、第一メッシュ情報格納部105、サンプリング位置情報取得部106、第一メッシュ情報蓄積部107、スライス情報群出力部108、ラベル情報構成部309、第二メッシュ情報取得部110、第一スライス情報群取得部111、色情報決定部112、第二スライス情報群取得部113、変更物体出力部314、動画出力部315を具備する。
ラベル情報構成部309は、受付部102が受け付けた指示に対応して、1以上のスライス情報を構成する点の属性値であるラベル情報を構成する。ここでのラベル情報は、タイムスタンプを含む。タイムスタンプとは、点が出力された時を示す情報である。タイムスタンプは、時刻(日時分秒)を示す情報でも良いし、出力順序を示すインデックスなどの情報でも良い。つまり、タイムスタンプは、絶対的な時刻を示す情報でも、相対的な出力順序を示す情報でも良い。ラベル情報構成部309は、通常、MPUやメモリ等から実現され得る。ラベル情報構成部309の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変更物体出力部314は、ラベル情報構成部309が構成したラベル情報に応じて、変更されたスライス情報群を出力する。また、変更物体出力部314は、第二スライス情報群を出力する。さらに、通常、変更物体出力部314は、第二スライス情報群と、ラベル情報構成部309が構成したラベル情報とを対応付けて蓄積する。変更物体出力部314は、例えば、スライス情報群格納部104に、第二スライス情報群とラベル情報とを対応付けて蓄積する。なお、第二スライス情報群の各点の情報の中に、ラベル情報(タイムスタンプ)が含まれていても良い。「第二スライス情報群とラベル情報とを対応付ける」とは、第二スライス情報群を構成するスライス情報とラベル情報とを対応付けても良いし、第二スライス情報群を構成するスライス情報の各点とラベル情報とを対応付けても良い。変更物体出力部314は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。変更物体出力部314は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
動画出力部315は、ラベル情報が有するタイムスタンプを用いて、第二スライス情報群を動画出力する。動画出力部315は、第二スライス情報群と対応付けられているタイムスタンプが示す順序で、第二スライス情報群を出力する。つまり、動画出力部315は、タイムスタンプが示す順に、複数の第二スライス情報群の中から、一の第二スライス情報群を読み出し、出力する。かかる出力により、三次元物体の変化が動画出力される。動画出力部315は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。動画出力部315は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置3の動作について図26のフローチャートを用いて説明する。図26のフローチャートにおいて、図3のフローチャートと同一のステップについて、説明を省略する。
(ステップS2601)受付部102は、タイムスタンプ記録指示を受け付けたか否かを判断する。タイムスタンプ記録指示を受け付ければステップS2602に行き、タイムスタンプ記録指示を受け付けなければステップS304に行く。タイムスタンプ記録指示とは、ユーザが行う操作に関する情報または、操作に応じて変化する出力情報(スライス情報群)をタイムスタンプとともに記録する指示である。
(ステップS2602)ラベル情報構成部309は、タイムスタンプフラグをONにする。タイムスタンプフラグがONの場合、ユーザの操作等は記録される。タイムスタンプフラグがOFFの場合、ユーザの操作等は記録されない。ここで、操作等は、操作に関する情報または操作に応じて変化する出力情報である。ステップS301に戻る。なお、タイムスタンプフラグの初期値はOFFである。初期値とは、情報処理装置3の起動時の値である。
(ステップS2603)ラベル情報構成部309は、タイムスタンプフラグがONであるか否かを判断する。タイムスタンプフラグがONであればステップS2604に行き、タイムスタンプフラグがOFFであればステップS301に戻る。
(ステップS2604)ラベル情報構成部309は、タイムスタンプを取得し、当該タイムスタンプを、出力されるスライス情報群に付加する。ラベル情報構成部309は、カウンタを保持しており、カウンタを順にインクリメントすることにより、相対的な出力順序を示すタイムスタンプを取得しても良い。また、ラベル情報構成部309は、内部または外部(例えば、NTPサーバ)の時計から絶対時刻であるタイムスタンプを取得しても良い。
(ステップS2605)変更物体出力部314は、ステップS2604でタイプスタンプを付加されたスライス情報群を蓄積する。蓄積先は、例えば、スライス情報群格納部104である。ステップS301に戻る。
なお、図26のフローチャートにおいて、タイムスタンプは、スライス情報群に付加された。しかし、タイムスタンプは、ユーザの指示(出力指示や、回転指示や、変形指示など)に付加されても良いし、ラベル情報(実施の形態1で述べた断面を示す情報、実施の形態2で述べたCT値など)に付加されても良い。
また、図26のフローチャートにおいて、情報処理装置3がタイムスタンプを付加して、動画出力するための情報を蓄積する動作について説明した。
また、図26のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置3の具体的な動作について説明する。つまり、次に、情報処理装置3が蓄積されたタイムスタンプを用いて、動画出力する動作について説明する。受付部102が、動画再生指示を受け付けた場合、蓄積されているスライス情報群とタイムスタンプの情報を元に、タイムスタンプが示す順に、スライス情報群を表示していく。かかる処理により、スライス情報群が蓄積されていったユーザ操作が再現される。
情報処理装置3の物体情報格納部101に、例えば、図8に示す医用画像の集合(三次元画像)が格納されている、とする。
そして、ユーザは、情報処理装置1に対して、起動指示を入力した、とする。すると、受付部102は、起動指示を受け付ける。
次に、サンプリング位置情報取得部106と第一メッシュ情報蓄積部107は、メッシュ情報蓄積処理を行う。そして、メッシュ情報蓄積処理により、第一メッシュ情報格納部105に第一メッシュ情報が蓄積される。かかる処理は、実施の形態1で説明した。
次に、ユーザは、スライス情報群の出力指示を入力した、とする。すると、受付部102はスライス情報群の出力指示を受け付ける。そして、情報処理装置3は、実施の形態1や実施の形態2で説明したように、三次元物体の画像を出力する。この画像は、例えば、図27の「ID=1」のレコードのスライス情報群から出力された画像である。
そして、次に、ユーザは、情報処理装置1に対して、タイムスタンプ記録指示を入力する。このタイムスタンプ記録指示の入力は、例えば、情報処理装置3の図示しない画面上の「記録」ボタンをマウスで押下することによりなされる。そして、受付部102は、タイムスタンプ記録指示を受け付ける。
次に、ラベル情報構成部309は、タイムスタンプフラグをONにする。
かかる状態で、ユーザは、図27の「ID=1」のレコードの画像に示すような三次元物体に対して、実施の形態1や2で説明したような操作(断面の回転や移動、物体の回転や変形、未表示とするCT値の閾値の変更などの操作)を行う。
すると、ラベル情報構成部309は、インデックスであるタイムスタンプを、順次、インクリメントしながら取得し、出力されるスライス情報群に付加する。なお、タイムスタンプの初期値は0であり、順次、インクリメントされる。
そして、変更物体出力部314は、タイムスタンプを付加されたスライス情報群を蓄積する。かかるスライス情報群の蓄積により、情報処理装置3のスライス情報群格納部104に、図27に示すスライス情報群管理表が蓄積される。スライス情報群管理表は、「ID」「スライス情報群」「タイムスタンプ」を有するレコードを複数、管理する。「ID」は、レコードを識別する情報である。図27において、「スライス情報群」の属性値は、簡単化のため静止画にしているが、実際は、スライス情報群である。なお、スライス情報群の代わりに、ユーザ操作を特定する情報や、他のラベル情報(断面を示す情報や、表示/未表示の閾値となるCT値など)などでも良い。「タイムスタンプ」は、ここでは、相対的な情報である。
また、変更物体出力部314は、かかるスライス情報群を、ディスプレイに表示する。以上により、再生可能な動画が用意された。
かかる状況において、ユーザは、動画再生指示を入力した、とする。すると、受付部102は、動画再生指示を受け付ける。
次に、動画出力部315は、タイムスタンプが示す順序に従って、スライス情報群格納部104(図27の表)から、スライス情報群を読み出し、出力する。かかることにより、ユーザ操作の再現が可能となる。
以上、本実施の形態によれば、三次元物体に対してタイムスタンプを設定できる。かかることにより、例えば、手術の手順のシミュレーションなどを記録でき、医師の教育などの増進、医学の進歩に寄与できる。
なお、本実施の形態における情報処理装置3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と色についての情報である色情報を有する複数の点の情報から構成される複数のスライス情報を有するスライス情報群が格納されており、コンピュータを、前記記憶媒体に格納されているスライス情報群を出力するスライス情報群出力部と、前記スライス情報群出力部が出力したスライス情報群に対する指示を受け付ける受付部と、前記受付部が受け付けた指示に対応して、スライス情報を構成する点の属性値であるラベル情報を構成するラベル情報構成部と、前記ラベル情報構成部が構成したラベル情報に応じて、変更された前記スライス情報群を出力する変更物体出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記ラベル情報は、時刻を示す情報であるタイムスタンプを含み、前記変更物体出力部は、前記第二スライス情報群と、前記ラベル情報構成部が構成したラベル情報とを対応付けて蓄積し、コンピュータを、前記ラベル情報が有するタイムスタンプを用いて、前記第二スライス情報群を動画出力する動画出力部としてさらに機能させることは好適である。
また、本明細書で述べた情報処理装置は、スタンドアロンの装置であったが、サーバクライアントのサーバとして機能して良いことは言うまでもない。かかる場合、サーバクライアントのクライアント側の端末からの指示が情報処理装置に送信され、情報処理装置が出力(ここでは「送信」)した情報が、端末で表示される。
また、図28は、本明細書で述べたプログラムを実行して、上述した実施の形態の情報処理装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図28は、このコンピュータシステム340の概観図であり、図29は、コンピュータシステム340の内部構成を示す図である。
図28において、コンピュータシステム340は、FDドライブ3411、CD−ROMドライブ3412を含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図29において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415と、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の情報処理装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の情報処理装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、ハードウェアによって行われる処理は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。