以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、入出力機器101、指示受付部102、物体情報格納部103、第一メッシュ情報格納部104、スライス情報群取得部105、スライス情報群格納部106、スライス情報群出力部107、第二メッシュ情報取得部108、第一スライス情報群取得部109、色情報決定部110、第二スライス情報群取得部111、変形物体出力部112、位置情報取得部113、弾性情報取得部114、弾性情報出力部115を具備する。色情報決定部110は、対応点決定手段1101、色情報決定手段1102を具備する。
入出力機器101は、出力されているスライス情報群に対する所定の点または領域に対する指示を入力し、かつ、弾性情報出力部115の出力を受け付け、当該出力に対応する力ベクトルを出力する。「対応する力ベクトルを出力する」とは、例えば、モータ駆動により実現する。入出力機器101は、例えば、PHANToM(ファントム)や振動する入力機器等である。なお、例えば、出力が画面出力である場合、入出力機器101は、例えば、マウスとディスプレイである。入出力機器11は、2以上の機器から構成されていても良い。また、入出力機器11は、情報処理装置に含まれると考えても、含まれないと考えても良い。なお、図1のブロック図は、情報処理装置は入出力機器101を含む場合の図である。領域に対する指示は、例えば、手術の器具である術具のイメージを示す術具メタファを用いて、複数の点(ノード)を含む領域に対する指示である。術具メタファは、手術で利用されるはさみやピンセットの図柄を有する画像データでも良いし、直方体や球などの形状を有する図形データや三次元画像データ等でも良い。
指示受付部102は、出力されているスライス情報群の所定の点または領域に対する指示を受け付ける。また、指示受付部102は、スライス情報群の出力指示や出力されているスライス情報群(三次元物体)の回転などの指示である回転指示等を受け付ける。所定の点または領域に対する指示等の入力手段は、例えば、PHANToM(ファントム)やマウスやキーボードやメニュー画面によるもの等、何でも良い。点または領域に対する指示と、出力指示が、異なる入力手段から入力されても良い。指示受付部102は、PHANToMやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。なお、点または領域に対する指示は、通常、PHANToM(ファントム)を用いた指示であり、点または領域を押下するような指示である。かかる押下するような指示に対して、PHANToM(ファントム)が弾性に対応する力を出力し、ユーザは、その力を感じる結果、弾性を感じることができる。
物体情報格納部103は、三次元の物体のボリュームテクスチャである3Dボクセル情報を格納している。3Dボクセル情報は、例えば、CTやMRIやPETなどの医用機器により取得される二次元画像の集合である。3Dボクセル情報は、例えば、CTやMRIなどで、人体の脳や、身体の中を撮影した二次元画像の集合である。3Dボクセル情報は、例えば、(x,y,z,col,弾性率)で構成される点の情報である。(x,y,z,col、弾性率)の(x,y,z)は、三次元空間内での座標情報である。「col」は、当該点の色情報である。「弾性率」は、当該点の弾力を示す値であり、弾性情報の一例である。点の情報は、アルファ値などの透明度についての情報である透明度情報を含んでも良い。3Dボクセル情報は、ここでは、点の間隔がなく、詰まっている点の情報であることが好適であるが、離散的な点の情報でも良い。なお、3Dボクセル情報は、(x,y,z,col)であり、弾性情報は、3Dボクセル情報への付加情報として保持していても良い。かかる場合も、3Dボクセル情報が弾性情報を有する、と考えても良い。物体情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、弾性情報の例として、例えば、ヤング率、ポワソン比、破断値、摩擦係数などがある。
第一メッシュ情報格納部104は、三次元の物体の三次元メッシュの情報である第一メッシュ情報を格納している。第一メッシュ情報は、三次元メッシュ情報である。三次元メッシュの情報は、三次元物体を構成する点の情報の集合である。三次元メッシュの情報は、間隔が空いている点の情報の集合である。ここでの点の情報は、通常、(x,y,z,col,弾性情報)のデータ構造を有する情報である。ただし、点の情報は、(x,y,z)という座標情報のみでも良い。第一メッシュ情報格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
スライス情報群取得部105は、物体情報格納部103に格納されている3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、スライス情報群を取得し、スライス情報群格納部106に少なくとも一時的に格納する。「視線に対して垂直である」とは、三次元物体が表示されている画面に垂直なベクトルである視線ベクトルに対して垂直である、ことである。なお、スライス情報は、平面を構成する点の情報の集合であり、通常、点間の間隔がなく、詰まっている。スライス情報群取得部105は、通常、MPUやメモリ等から実現され得る。スライス情報群取得部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
スライス情報群格納部106は、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報を有する複数の点の情報から構成されるスライス情報を、複数有するスライス情報群を格納している。なお、スライス情報群格納部106のスライス情報群は、予め用意されていても良い。かかる場合、情報処理装置において、スライス情報群取得部105は、不要である。また、スライス情報を構成する点は、弾性についての情報である弾性情報や、色情報を有しても良い。スライス情報群格納部106は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
スライス情報群出力部107は、スライス情報群格納部106のスライス情報群を出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置(通常、表示装置を有する装置)への送信等を含む概念である。スライス情報群出力部107は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。スライス情報群出力部107は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。なお、スライス情報群をディスプレイに出力した場合、通常、ユーザは、三次元の物体を認識できる。
第二メッシュ情報取得部108は、指示受付部102が受け付けた指示に従って、第一メッシュ情報格納部104の第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。第二メッシュ情報のデータ構造は、通常、第一メッシュ情報と同じである。なお、第二メッシュ情報取得部108は、第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。第二メッシュ情報取得部108が、第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する処理は、通常、有限要素法による処理である。第二メッシュ情報取得部108は、通常、MPUやメモリ等から実現され得る。第二メッシュ情報取得部108の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一スライス情報群取得部109は、第二メッシュ情報取得部108が取得した第二メッシュ情報に基づいて、色情報を有しない複数のスライス情報である第一スライス情報群を取得する。第一スライス情報群取得部109は、第一メッシュ情報に対して変形したメッシュ情報である第二メッシュ情報から構成される三次元物体をスライスして取得できる情報であるスライス情報を複数取得する。かかるスライス情報間の間隔は一定であることが好適である。また、複数のスライス情報は、視線ベクトルに対して垂直であることが好適である。また、第一スライス情報群を構成するスライス情報が色情報を有しない、とは、最終的に表示されない色であるダミーの色の色情報を有することも含む。第一スライス情報群取得部109は、通常、MPUやメモリ等から実現され得る。第一スライス情報群取得部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
色情報決定部110は、第一スライス情報群を構成する複数のスライス情報の各点であり、物体情報格納部103に格納されている3Dボクセル情報の点に対応する各点の色情報を決定する。3Dボクセル情報の点に対応する各点は、3Dボクセル情報中の点であり、変形前の点である。色情報決定部110は、通常、MPUやメモリ等から実現され得る。色情報決定部110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
対応点決定手段1101は、第一スライス情報群を構成する複数のスライス情報の各点に対応する、3Dボクセル情報の中の各点を決定する。なお、この3Dボクセル情報の中の各点は、変形前の各点である。対応点決定手段1101は、通常、MPUやメモリ等から実現され得る。対応点決定手段1101の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
色情報決定手段1102は、対応点決定手段1101が決定した3Dボクセル情報の中の各点の色情報を取得する。色情報決定手段1102は、通常、MPUやメモリ等から実現され得る。色情報決定手段1102の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二スライス情報群取得部111は、色情報決定部110が決定した各点の色情報に基づいて、第一スライス情報群取得部109が取得した第一スライス情報群の各点に新たな色情報を設定し、第二スライス情報群を取得する。つまり、第二スライス情報群取得部111は、第一スライス情報群取得部109が取得した第一スライス情報群の各点に新たな色情報として、色情報決定部110が決定した各点の色情報を設定する。かかる色情報を設定した複数のスライス情報が第二スライス情報群である。第二スライス情報群取得部111は、通常、MPUやメモリ等から実現され得る。第二スライス情報群取得部111の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変形物体出力部112は、第二スライス情報群取得部111が取得した第二スライス情報群を出力する。出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置(例えば、表示装置を具備する装置)への送信、記録媒体への蓄積等を含む概念である。表示は、ディスプレイやプロジェクターなどへの出力を言う。第二スライス情報群の表示態様は問わない。変形物体出力部112は、第二スライス情報群を構成する複数のスライスの中で、ディスプレイの奥行きの深い方のスライスから順に出力することが好適である。変形物体出力部112は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。変形物体出力部112は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
位置情報取得部113は、指示に対応する点または領域を構成する点の、1以上の位置情報を取得する。位置情報は、通常、座標情報(x,y,z)の集合である。位置情報取得部113は、1以上の位置情報を、スライス情報群から取得しても、第一スライス情報群から取得しても、第二スライス情報群から取得しても良い。位置情報取得部113は、通常、MPUやメモリ等から実現され得る。位置情報取得部113の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
弾性情報取得部114は、位置情報取得部113が取得した1以上の位置情報と対になる1以上の弾性情報を取得する。弾性情報取得部114が弾性情報を取得する点と、位置情報取得部113が位置情報を取得する点は、同じである必要がある。弾性情報取得部114は、通常、MPUやメモリ等から実現され得る。弾性情報取得部114の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
弾性情報出力部115は、弾性情報取得部114が取得した1以上の弾性情報に基づいて、力についての情報(例えば、力ベクトル)を出力する。出力とは、ファントムなどの入出力機器101への信号の送付、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。ここでの音出力は、例えば、力を音の強弱で表現した出力である。弾性情報出力部115は、ソフトウェアや、ディスプレイやスピーカー等の出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置の動作について図2から図4のフローチャートを用いて説明する。
(ステップS201)指示受付部102は、入出力機器101(キーボードやマウスなども場合もあり得る)からの指示を受け付けたか否かを判断する。指示を受け付ければステップS202に行き、指示を受け付けなければステップS201に戻る。
(ステップS202)指示受付部102は、ステップS201で受け付けた指示が、スライス情報群の出力指示であるか否かを判断する。出力指示であればステップS203に行き、出力指示でなければステップS205に行く。
(ステップS203)スライス情報群出力部107は、スライス情報群格納部106からスライス情報群を読み出す。かかるスライス情報群を構成する各スライス情報は、通常、視線ベクトルに対して垂直である。
(ステップS204)スライス情報群出力部107は、ステップS203で読み出したスライス情報群を出力する。ステップS201に戻る。なお、スライス情報群の出力により、三次元物体が表示される。
(ステップS205)指示受付部102は、ステップS201で受け付けた指示が、三次元物体の回転指示であるか否かを判断する。回転指示であればステップS206に行き、回転指示でなければステップS209に行く。
(ステップS206)スライス情報群取得部105は、ステップS201で受け付けた回転指示に基づいて、視線ベクトルを取得する。視線ベクトルは、ディスプレイの表示面と垂直のベクトルである。回転指示は、マウス等の入出力機器101により入力される。マウスで三次元物体を回転させる処理は公知技術による処理であるので、詳細な説明は省略する。
(ステップS207)スライス情報群取得部105は、物体情報格納部103に格納されている3Dボクセル情報から、視線ベクトルに対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、スライス情報群を取得する。間隔の値は予め格納されている、とする。
(ステップS208)スライス情報群取得部105は、ステップS207で取得したスライス情報群を、スライス情報群格納部106に、少なくとも一時蓄積する。ステップS204に行く。
(ステップS209)指示受付部102は、ステップS201で受け付けた指示が、点または領域の指示であるか否かを判断する。点または領域の指示であればステップS210に行き、点または領域の指示でなければステップS201に戻る。なお、点または領域の指示方法は、マウスを利用した方法など、問わない。
(ステップS210)位置情報取得部113は、ステップS201で受け付けた指示に対応する点、または領域を構成する点の、1以上の位置情報を取得する。
(ステップS211)弾性情報取得部114は、位置情報取得部113が取得した1以上の位置情報と対になる1以上の弾性情報を、スライス情報群格納部106の各スライス情報、または物体情報格納部103の3Dボクセル情報から取得する。まず、弾性情報取得部114は、1以上の位置情報を有する点を、各スライス情報または3Dボクセル情報から検索する。次に、検索により得た点の弾性情報を取得する。
(ステップS212)弾性情報出力部115は、弾性情報取得部114が取得した1以上の弾性情報から出力する弾性情報を演算して、算出する。弾性情報出力部115が取得する弾性情報と、出力する弾性情報が異なる情報でも良い。例えば、取得する弾性情報が弾性率であり、出力する弾性情報が力であっても良い。また、弾性情報は、例えば、弾性率である。弾性率は、ヤング率でも、体積弾性率でも、剛性率でも、ポアソン比でも良い。この場合、弾性情報出力部115は、1以上の弾性情報の平均値を算出し、出力する弾性情報としても良い。また、例えば、弾性情報出力部115は、1以上の弾性情報の最大値を出力する弾性情報としても良い。また、例えば、弾性情報出力部115は、1以上の弾性情報の最小値を出力する弾性情報としても良い。その他、弾性情報出力部115は、1以上の弾性情報(e1,e2・・・、en)をパラメータに用いた所定の関数f(f(e1,e2・・・、en))により、出力する弾性情報を算出しても良い。
(ステップS213)弾性情報出力部115は、ステップS212で取得した1以上の弾性情報を、入出力機器11(通常、PHANToM)に出力する。
(ステップS214)入出力機器101は、モータ駆動により振動する。かかる処理により、ユーザに弾性が伝わる。
(ステップS215)変形物体出力部112は、変形されたスライス情報群(三次元物体)を出力する。かかる処理を変形処理と言い、図3、図4のフローチャートを用いて説明する。三次元物体の変形処理は、ステップS201における指示に対応する。つまり、例えば、ユーザが、PHANToMにより、ある点または領域を押下した際、押下した強さ(または、時間など)により、三次元物体は変形する。ステップS204に行く。
なお、図2のフローチャートにおいて、ステップS215の変形処理は、ステップS210の前に行っても良い。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS215における変形処理について図3、図4のフローチャートを用いて説明する。
(ステップS301)第二メッシュ情報取得部108は、第一メッシュ情報格納部104から第一メッシュ情報を読み出す。
(ステップS302)第二メッシュ情報取得部108は、ステップS201で受け付けた指示に基づいて、ステップS301で読み出した第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。変形指示に基づいてメッシュ情報を変形する処理は、公知技術(有限要素法の技術)であるので、詳細な説明は省略する。
(ステップS303)第一スライス情報群取得部109は、ステップS302で取得した第二メッシュ情報に基づいて、複数のスライス情報である第一スライス情報群を取得する。第二メッシュ情報が構成する三次元物体をスライスし、複数の平面の情報を得る。かかる平面の情報がスライス情報である。スライス情報は、座標情報(x,y,z)で示される点の集合であり、色情報は有さない。かかる場合、第一スライス情報群取得部109は、視線ベクトルに対して垂直となり、所定の間隔で、複数のスライス情報である第一スライス情報群を取得する。ここで、第一スライス情報群を構成するスライス情報は、色情報を有しない。
(ステップS304)第二スライス情報群取得部111は、第二スライス情報群を取得する。かかる処理の詳細については、図4のフローチャートを用いて説明する。
(ステップS305)変形物体出力部112は、ステップS304で取得した第二スライス情報群を出力する。上位関数にリターンする。
次に、ステップS304における第二スライス情報群を取得する処理について図4のフローチャートを用いて説明する。
(ステップS401)第二スライス情報群取得部111は、カウンタiに1を代入する。
(ステップS402)第二スライス情報群取得部111は、i番目のスライス情報(未処理のスライス情報)が、第一スライス情報群の中に存在するか否かを判断する。i番目のスライス情報が存在すればステップS403に行き、i番目のスライス情報が存在しなければ上位関数にリターンする。
(ステップS403)第二スライス情報群取得部111は、カウンタjに1を代入する。
(ステップS404)第二スライス情報群取得部111は、i番目のスライス情報の中に未処理のj番目の点があるかどうか判断する。j番目の点が存在すればステップS405に行き、j番目の点が存在しなければステップS409に飛ぶ。なお、「未処理」とは、色情報を設定していないことを言う。
(ステップS405)対応点決定手段1101は、i番目のスライス情報の中のj番目の点に対応する点であり、3Dボクセル情報中の点を決定する。3Dボクセル情報中の点とは、変形前の点である。なお、j番目の点は、変形後の点である。3Dボクセル情報中の点を決定するアルゴリズムの例の詳細は、後述する。
(ステップS406)色情報決定手段1102は、ステップS405で決定した3Dボクセル情報中の点の色情報を取得する。
(ステップS407)色情報決定手段1102は、ステップS406で取得した色情報を、i番目のスライス情報の中のj番目の点の色情報に設定する。
(ステップS408)第二スライス情報群取得部111は、カウンタjを1、インクリメントする。ステップS404に戻る。
(ステップS409)第二スライス情報群取得部111は、カウンタiを1、インクリメントする。ステップS402に戻る。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。本情報処理装置において、例えば、三次元物体は、心臓や肺などの臓器である。ただし、かかる三次元物体は、4面体の集合で近似できる。したがって、ここでは、説明の簡単化のために、図5(a)に示す4面体を変形させた場合について説明する。図5(a)において、A,B,C,Oの4点を有する。点Pは、4面体の内部のある点である。
物体情報格納部103は、図6に示す3Dボクセル情報を格納している。第一メッシュ情報格納部104は、例えば、図7に示す第一メッシュ情報を格納している。3Dボクセル情報は、図5(a)に示す4面体を構成する全ての点の情報である点情報の集合である。点情報は、ここでは、位置情報(x,y,z)と色情報(図6において、「col1」など)と弾性情報(図6において、「e1」など)を有する。また、第一メッシュ情報は、例えば、4面体の外側および内側の点の情報(点の間は間隔があいている)の集合である。
また、スライス情報群取得部105は、図8に示すように、視線ベクトルに対して垂直となり、所定の間隔で、複数のスライス情報であるスライス情報群を、3Dボクセル情報から取得する。スライス情報群取得部105は、表示対象の三次元物体の位置「minD」と「maxD」を求め、所定の間隔「D」でスライスし、複数のスライス情報を取得する。スライス情報は、点の情報の集合である。また、スライス情報を構成する点間の間隔はない。つまり、スライス情報により示される平面は、点の情報により詰まっている。ここでの点の情報は、位置情報(x,y,z)を有し、色情報を有さない。その結果、スライス情報群取得部105は、図9に示すスライス情報群を取得する。スライス情報群は、スライス情報S1,スライス情報S2,スライス情報S3などを有する。なお、視線ベクトルに対して垂直にスライス情報を取得するのは、ユーザがスライス情報の集合を見た場合に、間引いたスライス情報でも、立体的に見えるようにするためである。また、所定の間隔で、間引いたスライス情報を取得するのは、表示処理の高速化のためである。また、一定の間隔でスライス情報を取得するのは、高品質な三次元物体を表示するためである。なお、視線ベクトルは、画面に対して垂直のベクトルであり、指示受付部102が回転指示を受け付けた場合、当該回転指示に応じて変化する。
そして、スライス情報群取得部105は、取得した図9のスライス情報群を、少なくとも一時的に、スライス情報群格納部106に格納する。
次に、スライス情報群出力部107は、スライス情報群格納部106のスライス情報群を出力する。ここで、出力されたスライス情報群により、ユーザは、三次元の四面体を認識できる。なお、スライス情報群出力部107がスライス情報群を出力するトリガーは、ユーザ指示でも良いし、外部装置からの命令の受信等でも良い。そのトリガーは問わない。
次に、ユーザは、出力されているスライス情報群に対する所定の点または領域に対する指示を入力し、表示されている三次元の四面体を変形しようとする、とする。かかる指示を変形指示という。ここでは、変形指示は、例えば、情報処理装置が具備するファントムで入力する。ファントムでの入力は、例えば、図5(a)に示す4面体の点Oを左横に所定の力で押下する入力である。そして、指示受付部102は、変形指示を受け付ける。かかる入力により、図5(a)に示す4面体は、図5(b)に示すような4面体になる。そして、かかる変形指示に基づいて、第二メッシュ情報取得部108は、図7の第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。第二メッシュ情報を図10に示す。つまり、第二メッシュ情報は、図5(b)の4面体を示す情報である。なお、第一メッシュ情報を変形し、第二メッシュ情報を取得する処理は、有限要素法による公知技術であるので詳細な説明は省略する。
次に、色情報の取得処理について説明する。図5(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)
ここで、対応点決定手段1101は、式(2)を解いて、変形後のメッシュから内部の点P'を定義するパラメータs,t,uを求め、式(1)から変形前の位置Pを得る。そして、位置Pに対応する色情報を、図6に示す3Dボクセル情報から取得する。そして、色情報決定手段1102は、対応点決定手段1101が決定した第一スライス情報群を構成する複数のスライス情報の中の各点の色情報を取得し、設定する。その結果、図11の変形後の各スライス情報を構成する各点は、色情報を有することとなる。
以上の処理において、メッシュ情報を構成するノード(点)に変位が生じたり、メッシュ情報の再構成が行われたりした場合でも、シミュレーション前後において、要素内の点の各ノードからの相対位置が求められる限り、内部の任意点における色情報が再現可能である。
次に、変形物体出力部112は、第二スライス情報群を出力する。かかる処理により、変形指示を受け付けた後の三次元物体がリアルタイムに出力される。変形指示の受け付けと変形後の三次元物体の出力を繰り返すことで、例えば、医療分野における生体機能解析やリアルタイムの手術シミュレーション等が可能となる。
次に、位置情報取得部113は、受け付けた指示(変形指示)に対応する点、または領域を構成する点の、1以上の位置情報を取得する。ここでは、例えば、点Oの位置情報を取得する。そして、次に、弾性情報取得部114は、位置情報取得部113が取得した点Oの位置情報と対になる1以上の弾性情報(e)を、スライス情報群格納部106の各スライス情報、または物体情報格納部103の3Dボクセル情報から取得する。
次に、弾性情報出力部115は、弾性情報取得部114が取得した1以上の弾性情報から出力する力ベクトルを演算して、算出する。弾性情報取得部114が取得した1つの弾性情報である場合、弾性情報出力部115は、通常、当該弾性情報をそのまま出力する。
次に、弾性情報出力部115は、取得した力ベクトルを、ファントムに出力する。そして、ファントムは、力ベクトルに対応して、モータを駆動する。そして、ユーザは、ファントムを使用して、与えた押し込みに対して得られる反力を感じることができる。
以上、本実施の形態によれば、メッシュに生じた変形や破壊を、表面及び内部の色情報を伴って実時間で描出することができる。また、三次元の物体の弾性に関する情報を扱うことができる。具体的には、ファントムなどの入出力機器を用いて、出力されている三次元物体を押したり、掴んだりした場合に、その押したり、掴んだりした箇所の硬さを感じながら三次元物体の形状を変えることができる。また、本実施の形態によれば、3Dボクセル情報から取得したスライス情報群と、メッシュ情報を用いて、リアルタイムの三次元物体の変形を、硬さを感じながらシミュレーションできる。つまり、元画像のボクセルデータ(3Dボクセル情報)と対象領域のメッシュデータ(メッシュ情報)の両方を使用し、変形後のメッシュ要素をテクスチャマップされた断面の重なりによって表現することによって、物体表面・内部構造の高精細な描画を行え、かつ三次元物体を構成する各点、または/およびスライス情報群を構成する各点が弾性情報を有することにより、ユーザは、三次元物体の硬さを感じながら、当該三次元物体の変形をシミュレーションできる。また、本実施の形態によれば、有限要素法を代表とする力学計算アルゴリズムに対応し、専用のグラフィクスカードを必要とせずに、汎用PC上で、例えば、256×256×256 voxelからなるボリュームデータに対して、なめらかな変形アニメーションを生成することができる。
なお、本実施の形態における情報処理装置の処理について評価を行った。描画に要する計算時間を検証するために、4パターンの同形状で詳細度の異なるメッシュ(図12(a)の立方体、メッシュ数Eは589,1104,4463,8468)と対応する256×256×256と128×128×128の2パターンのボリュームテクスチャを用意した。それぞれに対し、スライス間隔Dが1.0と2.0の場合を考え、計16通りに対して1秒間における描画フレーム数を測定した。それぞれの場合でのフレーム数を図13に示す。なお、図12の各画像データは、色情報も含むことは言うまでもない。
また、本実施の形態によれば、要素数が多くなると生成されるベースポリゴンが増加し、フレーム数は減少する。フレーム数はスライス間隔Dにはほぼ比例し、256×256×256voxelのボリュームテクスチャを用いた場合、スライス間隔Dを2とすれば要素数が2000程度までのメッシュで10Hz以上のフレーム数を達成できており、物体に対する操作に対して対話的になめらかなアニメーションを提示することができた。
また、本実施の形態における情報処理装置は、CTやMRIによって取得される人体臓器などの三次元物体形状に対し、変形シミュレーションを行った際の表面・内部構造の可視化に有用である。ここで、人体臓器などの三次元物体の形状に対し適用した結果を、以下に示す。例えば、図14(a)はCTによって取得された二次元画像集合から抽出された心筋部位のボリュームレンダリング結果である。同形状の四面体メッシュモデルを作成し、変形シミュレーションを行った結果を図14(b)に示す。濃淡値が反映されるため、変形後の冠動脈などの微細組織や物体表面の性状が高精細に描出される。また、α値を変化させることによって内部構造(心内腔)の変形も観察できる。かかることは、他の実施の形態においても同様である。なお、図14の各画像データは、色情報も含むことは言うまでもない。また、ユーザは、変形させた際に、その箇所の硬さを感じることができる。
また、本実施の形態における情報処理装置は、臓器等の三次元物体の変形のシミュレーションだけではなく、エンターテイメント向けのアニメーション生成など、コンピュータグラフィクスに関連した幅広い用途に有用であり、ボリュームビジュアライゼーションの適用範囲を大きく拡大できる。
また、本実施の形態において、例えば、図15(a)に示すような三次元物体に対して、ファントムを用いて、ポイントXを押下する処理を行うと、図15(b)に示すように三次元物体が変形するとともに、変形に要する力がファントムに戻り、ユーザは、その力を実感することができる。本三次元物体は、車のエンジン部分である。図15(a)(b)は、力学構造解析を行っている様子を示す図である。なお、三次元物体が人間の臓器であり、かかる仕組みを人間の手術のシミュレーションで用いれば、視覚的だけではなく、触覚により、人体の手術のシミュレーションが可能となる。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と弾性についての情報である弾性情報を有する複数の点の情報から構成されるスライス情報を、複数有するスライス情報群を出力するスライス情報群出力ステップと、前記出力されているスライス情報群の所定の点または領域に対する指示を受け付ける指示受付ステップと、前記指示に対応する点または領域を構成する点の、1以上の位置情報を取得する位置情報取得ステップと、前記位置情報取得ステップで取得した1以上の位置情報と対になる1以上の弾性情報を取得する弾性情報取得ステップと、前記弾性情報取得ステップで取得した1以上の弾性情報に基づいて出力する弾性情報出力ステップを実行させるためのプログラム、である。
また、コンピュータに、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と色についての情報である色情報と弾性についての情報である弾性情報を有する複数の点の情報から構成されるスライス情報を、複数有するスライス情報群を出力するスライス情報群出力ステップと、前記出力されているスライス情報群の所定の点または領域に対する指示を受け付ける指示受付ステップと、前記指示に基づいて、格納している第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する第二メッシュ情報取得ステップと、前記第二メッシュ情報に基づいて、色情報を有しない複数のスライス情報である第一スライス情報群を取得する第一スライス情報群取得ステップと、前記第一スライス情報群を構成する複数のスライス情報の各点であり、前記3Dボクセル情報の点に対応する各点の色情報を決定する色情報決定ステップと、前記色情報決定ステップで決定した各点の色情報に基づいて、前記第一スライス情報群取得ステップで取得した第一スライス情報群の各点に新たな色情報を設定し、第二スライス情報群を取得する第二スライス情報群取得ステップと、前記第二スライス情報群を出力する変形物体出力ステップと、前記指示に対応する点または領域を構成する点の、1以上の位置情報を取得する位置情報取得ステップと、前記位置情報取得ステップで取得した1以上の位置情報と対になる1以上の弾性情報を取得する弾性情報取得ステップと、前記弾性情報取得ステップで取得した1以上の弾性情報に基づいて出力する弾性情報出力ステップを実行させるためのプログラム、でも良い。
(実施の形態2)
本実施の形態において、実施の形態1で述べた弾性情報を、容易に設定できるオーサリング機能を有した情報処理装置について説明する。本実施の形態において、情報処理装置は、ユーザが指定した三次元物体の一部の3次元領域について、所望の弾性情報を、自由に設定できる。
図16は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、入力受付部1601、物体情報格納部103、第一メッシュ情報格納部104、スライス情報群取得部105、スライス情報群格納部106、スライス情報群出力部107、三次元領域マスク形状変更部1602、三次元領域マスク位置変更部1603、メッシュ情報取得部1604、弾性情報設定部1605を具備する。
入力受付部1601は、三次元幾何形状を有する三次元領域マスクについての入力、および弾性についての情報である弾性情報についての入力、およびスライス情報群を出力する出力指示等を受け付ける。三次元領域マスクとは、3Dボクセル情報、または1以上のスライス情報を有するスライス情報群を切り出す(領域を分ける)ための情報であり、三次元幾何形状を有する情報である。三次元領域マスクは、三次元メッシュの情報である。三次元メッシュの情報は、三次元物体を構成する点の情報の集合である。三次元メッシュの情報は、間隔が空いている点の情報の集合である。点の情報は、通常、(x,y,z)という座標情報である。弾性情報は、例えば、弾性率である。なお、入力受付部1601が受け付ける弾性情報は、三次元領域マスクで指定される三次元の領域の点の集合に、設定される弾性情報である。また、三次元領域マスクについての入力には、三次元領域マスクを生成する指示である生成指示、三次元領域マスクの形状を変化させる指示である形状変化指示、三次元領域マスクの位置を変更する指示である位置変化指示などがある。なお、生成指示は、例えば、三次元領域マスクを3Dボクセル情報中に配置する指示でも良い。また、生成指示は、例えば、複数の形状の三次元領域マスクが存在する場合において、形状を選択し、当該形状の三次元領域マスクを3Dボクセル情報中に配置する指示でも良い。また、生成指示は、例えば、表示されている立体画像の輪郭をマウス等の入力手段でなぞって、立体的な三次元領域マスクを構築する指示でも良い。また、出力指示により、スライス情報群が出力される。また、かかる指示や弾性情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。入力受付部1601は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。なお、三次元領域マスクは、通常、四面体の集合である。そして、出力されている三次元領域マスクを構成する四面体の各頂点は、座標情報のみならず、弾性情報を有しても良いし、四面体の各頂点と対応付けて、弾性情報を有しても良い。
三次元領域マスク形状変更部1602は、入力受付部1601が形状変化指示を受け付けた場合、当該形状変化指示に基づいて、三次元領域マスクの形状を変更し、出力する。三次元領域マスク形状変更部1602は、例えば、入力受付部1601が、入力手段であるマウスの右ボタンのクリックを受け付ける毎に、三次元領域マスクの大きさを、重心を変えずに90%の大きさに縮小する。また、三次元領域マスク形状変更部1602は、例えば、入力受付部1601が、入力手段であるマウスの左ボタンのクリックを受け付ける毎に、第二三次元領域マスクの大きさを、重心を変えずに110%の大きさに拡大する。また、三次元領域マスク形状変更部1602は、入力受付部1601が、入力手段であるマウスのドラッグの信号を受け付け、当該信号に従って、マウスで指示されている箇所(点)の形状を変更する。三次元領域マスク形状変更部1602が行う処理は、三次元メッシュの情報の変形処理であり、公知の技術であるので詳細な説明は省略する。三次元領域マスク形状変更部1602は、通常、MPUやメモリ等から実現され得る。三次元領域マスク形状変更部1602の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
三次元領域マスク位置変更部1603は、入力受付部1601が位置変化指示を受け付けた場合、当該位置変化指示に基づいて、三次元領域マスクの位置を変更し、出力する。「三次元領域マスクの位置を変更する」とは、スライス情報群に対する相対的な位置を変更することである。三次元領域マスク位置変更部1603は、例えば、入力手段がPHANToMである場合、PHANToMを押し込むと、スライス情報群に対して、三次元領域マスクを奥行きの奥の方向に移動させる処理を行う。三次元領域マスク位置変更部1603が行う処理は、三次元メッシュの位置の変更処理であり、公知の技術であるので詳細な説明は省略する。三次元領域マスク位置変更部1603は、通常、MPUやメモリ等から実現され得る。三次元領域マスク位置変更部1603の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ情報取得部1604は、三次元領域マスクを構成する三次元メッシュの情報であるメッシュ情報を取得し、出力する。メッシュ情報は、入力受付部1601が受け付けた指示に基づいて、取得されるメッシュ情報(三次元領域マスクを構成するメッシュ情報)、そのままであっても良い。また、メッシュ情報は、三次元領域マスク形状変更部1602、または/および三次元領域マスク位置変更部1603が処理した結果の三次元領域マスクのメッシュ情報であっても良い。例えば、入力受付部1601が三次元領域マスクの形状の選択を受け付ける場合、選択され得る形状のメッシュ情報は、メッシュ情報取得部1604が予め保持している、とする。メッシュ情報取得部1604は、通常、MPUやメモリ等から実現され得る。メッシュ情報取得部1604の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
弾性情報設定部1605は、メッシュ情報に基づいて、スライス情報群の各スライス情報が有する各点であり、メッシュ情報の内側の領域である内側領域の各点に対して、弾性情報を設定する。この弾性情報は、入力受付部1601が受け付けた入力に基づく弾性情報である。また、弾性情報設定部1605は、メッシュ情報に基づいて、物体情報格納部103の3Dボクセルデータを構成する各点であり、メッシュ情報の内側の領域である内側領域の各点に対して、弾性情報を設定しても良い。弾性情報設定部1605は、通常、MPUやメモリ等から実現され得る。弾性情報設定部1605の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理装置の動作について図17のフローチャートを用いて説明する。
(ステップS1701)入力受付部1601は、入力を受け付けたか否かを判断する。入力を受け付ければステップS1702に行き、入力を受け付けなければステップS1701に戻る。
(ステップS1702)入力受付部1601は、ステップS1701で受け付けた入力が出力指示であるか否かを判断する。出力指示であればステップS1703に行き、出力指示でなければステップS1705に行く。なお、出力指示とは、例えば、情報処理装置やアプリケーションの起動の指示である。
(ステップS1703)スライス情報群出力部107は、スライス情報群格納部106からスライス情報群を読み出す。
(ステップS1704)スライス情報群出力部107は、ステップS1703で取得したスライス情報群を出力する。ステップS1701に戻る。
(ステップS1705)入力受付部1601は、ステップS1701で受け付けた入力が生成指示であるか否かを判断する。生成指示であればステップS1706に行き、生成指示でなければステップS1708に行く。
(ステップS1706)メッシュ情報取得部1604は、予め格納されているメッシュ情報を読み出し、出力する。メッシュ情報取得部1604は、2以上のメッシュ情報(例えば、球面体、円柱形状など)を、予め保持していても良い。
(ステップS1707)メッシュ情報取得部1604は、ステップS1706で取得したメッシュ情報を一時格納する。ステップS1701に戻る。
(ステップS1708)入力受付部1601は、ステップS1701で受け付けた入力が形状変更指示であるか否かを判断する。形状変更指示であればステップS1709に行き、形状変更指示でなければステップS1711に行く。
(ステップS1709)三次元領域マスク形状変更部1602は、一時格納されているメッシュ情報の形状を変更し、変更したメッシュ情報を出力する。
(ステップS1710)三次元領域マスク形状変更部1602は、ステップS1709で形状を変更したメッシュ情報を一時格納する。ステップS1701に戻る。
(ステップS1711)入力受付部1601は、ステップS1701で受け付けた入力が位置変更指示であるか否かを判断する。位置変更指示であればステップS1712に行き、位置変更指示でなければステップS1714に行く。
(ステップS1712)三次元領域マスク位置変更部1603は、一時格納されているメッシュ情報の位置を変更し、メッシュ情報を出力する。この位置は、三次元空間での位置である。
(ステップS1713)三次元領域マスク位置変更部1603は、ステップS1712で位置を変更したメッシュ情報を一時格納する。ステップS1701に戻る。
(ステップS1714)入力受付部1601は、ステップS1701で受け付けた入力が弾性情報であるか否かを判断する。弾性情報であればステップS1715に行き、弾性情報でなければステップS1701に戻る。
(ステップS1715)弾性情報設定部1605は、ステップS1701で受け付けた弾性情報を、所定の点の弾性情報として設定する。かかる弾性情報の設定処理について、図18のフローチャートを用いて詳細に説明する。
なお、図17のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1715の弾性情報の設定処理について図18のフローチャートを用いて説明する。
(ステップS1801)弾性情報設定部1605は、カウンタiに1を代入する。
(ステップS1802)弾性情報設定部1605は、i番目のスライス情報(未処理のスライス情報)が、第一スライス情報群の中に存在するか否かを判断する。i番目のスライス情報が存在すればステップS1803に行き、i番目のスライス情報が存在しなければ上位関数にリターンする。
(ステップS1803)弾性情報設定部1605は、カウンタjに1を代入する。
(ステップS1804)弾性情報設定部1605は、i番目のスライス情報の中のj番目の点(未処理の点)が存在するか否かを判断する。j番目の点が存在すればステップS305に行き、j番目の点が存在しなければステップS313に飛ぶ。なお、「未処理」とは、弾性情報の設定をするか否かの判断をしていないことを言う。
(ステップS1805)弾性情報設定部1605は、i番目のスライス情報の中のj番目の点の位置情報(x,y,z)を取得する。
(ステップS1806)弾性情報設定部1605は、j番目の点が、内側領域の点であるか、外側領域の点であるか、を判断する。かかる処理は、例えば、以下のように行う。つまり、弾性情報設定部1605は、三次元空間の中で、i番目のスライス情報と、第一メッシュ情報との交点を全て算出する(かかる処理は、公知の処理である)。弾性情報設定部1605は、かかる交点が全く存在しなければ、i番目のスライス情報のすべての点は、外側領域の点である、と判断する。また、弾性情報設定部1605は、交点が1つだけ存在すれば、その1点のみ内側領域の点で、他の点は外側領域の点である、と判断する。交点が複数存在する場合、複数の交点は、閉じた平面を構成している。弾性情報設定部1605は、j番目の点が、かかる閉じた平面内の点である場合は、当該点は内側領域の点で、j番目の点が、他の点である場合は外側領域の点である、と判断する。なお、閉じた平面の境界を構成する全点が与えられた場合に、任意の点jが、当該平面内の点であるか否かを判断する処理は、公知の処理であるので、詳細な説明は省略する。
(ステップS1807)弾性情報設定部1605は、ステップS1806の判断結果が、内側領域の点であるとの判断結果の場合はステップS1808に行き、外側領域の点であるとの判断結果の場合はステップS1809にいく。
(ステップS1808)弾性情報設定部1605は、受け付けた弾性情報を、j番目の点の弾性情報として設定する。
(ステップS1809)弾性情報設定部1605は、カウンタjを1、インクリメントする。ステップS1804に行く。
(ステップS1810)弾性情報設定部1605は、カウンタiを1、インクリメントする。ステップS1802に行く。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。
本情報処理装置において、出力対象の三次元物体は、例えば、人間の胴体である。
そして、物体情報格納部103は、図6に示すような構造を有する3Dボクセル情報を格納している、とする。また、第一メッシュ情報格納部104は、例えば、図7に示すような構造を有する第一メッシュ情報を格納している、とする。
また、スライス情報群取得部105は、図8に示すように、視線ベクトルに対して垂直となり、所定の間隔で、複数のスライス情報であるスライス情報群を、3Dボクセル情報から取得する。
そして、スライス情報群取得部105は、取得したスライス情報群を、少なくとも一時的に、スライス情報群格納部106に格納する。
次に、スライス情報群出力部107は、スライス情報群格納部106のスライス情報群を表示する。かかる表示例が、図19である。図19は、スライス情報群取得部105が三次元領域マスクを用いて、図6の3Dボクセル情報から複数のスライス情報を切り出し、各スライス情報の各点に、対応する3Dボクセル情報中の点の色情報を取得し、出力する対象の色情報付きの複数のスライス情報を構成し、スライス情報群出力部107が、当該複数のスライス情報を表示した例である。3Dボクセル情報から複数のスライス情報を切り出す方法は、図5の四面体から、図9の複数のスライス情報を切り出す方法と同様である。3Dボクセル情報から複数のスライス情報を切り出す技術は、公知技術であるので、詳細な説明は省略する。
次に、ユーザは、球形状の三次元マスクの生成指示の入力を行った、とする。次に、入力受付部1601は、生成指示を受け付ける。そして、メッシュ情報取得部1604は、球形状の三次元マスクを構成するメッシュ情報(予め格納している)を読み出す。球形状のメッシュ情報は、球の表面の一部の点の集合からなる情報である。そして、メッシュ情報取得部1604は、取得したメッシュ情報を一時格納する。そして、メッシュ情報は、表示される(図20参照)。メッシュ情報は、胴体の正面の球形状のものである。
そして、ユーザは、マウス等の入力手段により、表示されているメッシュ情報の位置を変更したり、形状を変更したりする指示(形状変化指示、位置変化指示)を入力する。かかる指示は、マウスのドラッグ等の操作により行われる。そして、三次元領域マスク位置変更部1603は、一時格納されているメッシュ情報の位置を変更し、また、三次元領域マスク形状変更部1602は、一時格納されているメッシュ情報の形状を変更する。その結果、図20のメッシュ情報は、図21に示すように変更された、とする。なお、ユーザの指示(マウス等からの指示)により、立体のメッシュ情報の形状や位置を変更する処理は、公知技術である。
次に、ユーザは、弾性情報を入力するメニューを表示する指示を入力する、とする。すると、情報処理装置は、弾性情報を入力するメニューを表示する。そして、ユーザは、例えば、「53」という弾性情報(弾性率)を入力する、とする。そして、図示しない「決定」ボタンを押下すると、弾性情報設定部1605は、メッシュ情報で構成される三次元領域マスクの内側領域のドットの弾性情報を「53」に設定する。つまり、メッシュ情報で構成される三次元領域マスクの内側領域のドットは、「(x,y,z,col,53)」となる。(x,y,z,col)は、それぞれ異なり得る。
以上、本実施の形態によれば、三次元物体を構成する一部の三次元領域に、弾性情報を容易に設定できる。つまり、本実施の形態によれば、例えば、臓器毎や、同様の硬さを有する三次元物体の所定箇所の弾性情報を一度に設定できる。
なお、本実施の形態によれば、弾性情報を入力するためのインターフェイスは問わないことは言うまでもない。図22において、数値を入力したが、バーをスライドすることにより、弾性情報を入力するなどしても良い。
さらに、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と弾性についての情報である弾性情報を有する複数の点の情報から構成されるスライス情報を、複数有するスライス情報群を出力するスライス情報群出力ステップと、三次元幾何形状を有する三次元領域マスクについての入力、および弾性についての情報である弾性情報についての入力を受け付ける入力受付ステップと、前記三次元領域マスクを構成する三次元メッシュの情報であるメッシュ情報を取得するメッシュ情報取得ステップと、前記メッシュ情報に基づいて、前記スライス情報群の各スライス情報に対して、前記メッシュ情報の内側の領域である内側領域の各点に対して、前記入力受付部が受け付けた入力に基づく弾性情報を設定する弾性情報設定ステップを実行させるためのプログラム、である。
(実施の形態3)
本実施の形態において、手術で用いる道具である術具のメタファである術具メタファを用いて、変形する領域を指定し、三次元の物体の変形をシミュレーションする情報処理装置について説明する。本情報処理装置は、例えば、手術計画支援を行うことができる。
図23は、本実施の形態における情報処理装置のブロック図である。
本情報処理装置は、入出力機器101、指示受付部102、物体情報格納部103、第一メッシュ情報格納部104、スライス情報群取得部105、スライス情報群格納部106、スライス情報群出力部107、第二メッシュ情報取得部2308、第一スライス情報群取得部109、色情報決定部110、第二スライス情報群取得部111、変形物体出力部112、位置情報取得部113、弾性情報取得部114、弾性情報出力部115を具備する。色情報決定部110は、対応点決定手段1101、色情報決定手段1102、術具メタファ格納部2301、術具メタファ出力部2302を具備する。
また、第二メッシュ情報取得部2308は、操作ノード決定手段23081、変位決定手段23082、第二メッシュ情報取得手段23081を具備する。
術具メタファ格納部2301は、術具のメタファである術具メタファを格納している。術具メタファは、はさみやピンセットなどのビットマップデータや、グラフデータである。術具メタファは、術具の形状を有することが好適であるが、直方体や球などの図形でも良い。術具メタファ格納部2301は、ハードディスクやROM等の不揮発性の記録媒体が好適であるが、RAM等の揮発性の記録媒体でも実現可能である。
術具メタファ出力部2302は、術具メタファ格納部2301から術具メタファを読み出し、術具メタファを出力する。ここでの出力とは、ディスプレイへの表示や外部の装置(表示装置)への送信である。術具メタファ出力部2302は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。術具メタファ出力部2302は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
また、ここでの指示受付部102は、出力されているスライス情報群の所定の領域に対する指示を受け付ける。また、この指示は、例えば、領域の回転または/および平行移動の指示である。さらに、この指示は、術具メタファの移動や操作についての指示であることは好適である。
第二メッシュ情報取得部2308は、指示受付部102が受け付けた領域を指定し、変形する指示(つまんだり、ひねったりする指示)に従って、第一メッシュ情報格納部104の第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する。さらに具体的には、指示受付部102が受け付けた領域を指定し、変形する指示により、複数の点(後述する操作ノード)の変位の情報が第二メッシュ情報取得部2308に与えられ、当該複数の点の変位の情報から、変位可能な点(後述する自由ノード)の変位を算出し、変形した形状を構成する第二メッシュ情報を取得する。かかる複数の点の変位の情報から、変位可能な点(後述する自由ノード)の変位を算出する処理は、通常、有限要素法による処理であり、公知技術による処理であるので、詳細な説明は省略する。
操作ノード決定手段23081は、指示受付部102が受け付けた指示(出力されているスライス情報群の所定の領域に対する指示)に対応して、操作ノードを決定する。操作ノードとは、面操作(複数の点を有する領域に対する操作)を表現する際に、強制変位を加えるノード(点)である。
以下、操作ノード決定手段23081の具体的な操作ノードの決定アルゴリズムの例について説明する。今、指示受付部102が受け付けた指示が、術具メタファを用いた領域の指示である、とする。ここで、術具メタファを、仮に、図24に示すように直方体である、とする。また、術具メタファは、「manipulator」とも言い、4点の集合である四面体メッシュで構成されている、とする。図24は、臓器の形状を有する三次元の物体に対して、術具メタファ(図24における直方体の図形)を操作し、変形を行うことの概念を示す図である。
かかる場合、操作ノード決定手段23081は、例えば、以下の条件により、操作ノードを決定する。操作ノード決定手段23081は、術具メタファを三次元の物体(例えば、臓器の形状を有する臓器オブジェクト)の指定した領域に重ね、三次元の物体の重なっている部分の表面の点群を操作ノードとする。操作ノードの判定は、術具メタファを構成している各四面体において、三次元の物体の各ノードを調べることにより行う。さらに具体的には、例えば、操作ノード決定手段23081は、図25の術具メタファの四面体メッシュの各頂点(o,a,b,c)と、重心(P)との関係は、数式1である。また、操作ノード決定手段23081は、数式2により、s,t,uを算出する。次に、操作ノード決定手段23081は、三次元の物体を構成する四面体メッシュのすべての点を検査し、ある点が、数式3の論理式を満たせば(真であれば)、当該点は、操作ノードである。ある点が数式3の論理式を満たさなければ(偽であれば)、当該点は、操作ノードではない。
操作ノード決定手段23081の処理の概念を図26に示す。図26において、丸の点は自由ノード、バツの点は操作ノード、三角の点は固定ノードである。なお、固定ノードの情報は、通常、情報処理装置が予め保持している。
変位決定手段23082は、指示に対応して、操作ノードの変位を決定する。例えば、変位決定手段23082は、以下のように、操作ノードの変位を決定する。操作ノードの変位の概念を、図27に示す。ユーザは、術具メタファを用いて、臓器オブジェクトをつまむ操作をした、とする。次に、指示受付部102は、「つまむ」の指示を受け付ける。そして、変位決定手段23082は、操作ノード(図27(a)のバツの点)の変位を、以下の数式4により算出する。数式4は、点Pが点P'に変位する場合の式である。数式4における行列Mは、数式5で示される。なお、Mは回転行列である。数式4における行列Tは、数式6で示される。なお、Tは平行移動を示す行列である。変位決定手段23082は、操作ノードの要素行列Pに回転行列Mと平行移動行列Tを乗算することにより、移動後のノードP'を算出する。
上記において、αは回転量を表す。また、TとMはΔx,Δy,Δzの値で決まり、これらの値を入力値として受け付ける。入力値は、通常、指示受付部102が受け付ける値である。また、Δx,Δy,Δzは、それぞれ、x方向、y方向、z方向の変位を示す。さらに、Δx,Δy,Δzは、例えば、定期的に、次々と入力され、変位決定手段23082は、ユーザの入力(つまみやひっぱりなどの操作)に応じて、連続的に変位後の操作ノードP'を、次々と更新していく。
なお、変位決定手段23082は、上記の数式4から数式7の情報を格納しており、当該数式の情報を読み出し、取得した情報を読み出した数式に代入して、変位後の操作ノードP'を取得する。ここで、取得した情報とは、Δx,Δy,Δzなどの情報である。」
第二メッシュ情報取得手段23081は、変位決定手段23082が取得した変位後の複数の操作ノードに応じて自由ノードを変位させ、かつ、固定ノードを変位させないことにより、第二メッシュ情報を取得する。かかる第二メッシュ情報取得手段23081の処理の概念は、図27(b)から(c)である。かかる演算処理は、有限要素法により行う。なお、固定ノードを識別する情報は、例えば、予め保持している、とする。
次に、情報処理装置の動作について図28から図31のフローチャートを用いて説明する。図28において、図2と同じ動作を行うステップについての説明は省略する。
(ステップS2801)指示受付部102は、ステップS201で受け付けた指示が、領域の指示であるか否かを判断する。領域の指示であればステップS2802に行き、領域の指示でなければステップS201に戻る。なお、領域の指示は、術具メタファを用いて行われることが好適である。
(ステップS2802)位置情報取得部113は、ステップS201で受け付けた指示に対応する領域を構成する点の、2以上の位置情報を取得する。
(ステップS2803)弾性情報取得部114は、位置情報取得部113が取得した2以上の位置情報と対になる2以上の弾性情報を、スライス情報群格納部106の各スライス情報、または物体情報格納部103の3Dボクセル情報から取得する。まず、弾性情報取得部114は、2以上の位置情報を有する点を、各スライス情報または3Dボクセル情報から検索する。次に、弾性情報取得部114は、検索により得た2以上の点の各弾性情報を取得する。
(ステップS2804)弾性情報出力部115は、弾性情報取得部114が取得した2以上の弾性情報から出力する弾性情報を演算して、算出する。弾性情報出力部115が取得する弾性情報と、出力する弾性情報が異なる情報でも良い。例えば、取得する弾性情報が弾性率であり、出力する弾性情報が力であっても良い。また、弾性情報は、例えば、弾性率である。弾性率は、ヤング率でも、体積弾性率でも、剛性率でも、ポアソン比でも良い。この場合、弾性情報出力部115は、2以上の弾性情報の平均値を算出し、出力する弾性情報としても良い。また、例えば、弾性情報出力部115は、2以上の弾性情報の最大値を出力する弾性情報としても良い。その他、弾性情報出力部115は、2以上の弾性情報(e1,e2・・・、en)をパラメータに用いた所定の関数f(f(e1,e2・・・、en))により、出力する弾性情報を算出しても良い。
(ステップS2805)変形物体出力部112は、変形されたスライス情報群(三次元物体)を出力する。かかる処理を変形処理と言い、図29のフローチャートを用いて説明する。三次元物体の変形処理は、ステップS201における指示に対応する。ステップS204に行く。
なお、図28のフローチャートにおいて、ステップS2805の変形処理は、ステップS2802の処理の前に行っても良い。
次に、情報処理装置の変形処理について図29から図31、および図4のフローチャートを用いて説明する。図29のフローチャートにおいて、図3のフローチャートと同一の動作については説明を省略する。
(ステップS2901)第二メッシュ情報取得部2308は、第一メッシュ情報格納部104から第一メッシュ情報を読み出す。
(ステップS2902)操作ノード決定手段23081は、操作ノードを決定する。操作ノードを決定する処理について、図30のフローチャートを用いて説明する。
(ステップS2903)変位決定手段23082は、受け付けた指示に対応して、ステップS2902で決定した2以上の操作ノードの変位を決定する。操作ノードの変位を決定する処理について、図31のフローチャートを用いて説明する。
(ステップS2904)第二メッシュ情報取得手段23081は、予め保持している固定ノードを識別する情報を読み出し、操作ノードおよび固定ノード以外のノードを自由ノードと決定し、自由ノードを識別する情報を、一時的にメモリに記憶する。
(ステップS2905)第二メッシュ情報取得手段23081は、変位決定手段23082が取得した変位後の複数の操作ノードに応じて自由ノードを変位させることにより、第二メッシュ情報を取得する。なお、周りの複数のノードの変位の情報(ステップS2903で取得した操作ノードの変位の情報)を用いて、有限要素法により、自由ノードの変位を算出する。かかる処理は、有限要素法の公知の処理であるので、詳細な説明を省略する。ステップS303に行く。
次に、情報処理装置の操作ノード決定処理について図30のフローチャートを用いて説明する。
(ステップS3001)操作ノード決定手段23081は、術具メタファを構成している四面体のすべてのノード(点)Pの座標値(px,py,pz)、頂点a,b,cの座標値を読み出す。
(ステップS3002)操作ノード決定手段23081は、格納されている数式2、数式3の情報を読み出す。
(ステップS3003)操作ノード決定手段23081は、カウンタiに1を代入する。
(ステップS3004)操作ノード決定手段23081は、i番目の四面体が存在するか否かを判断する。i番目の四面体が存在すればステップS3005に行き、i番目の四面体が存在しなければ上位関数にリターンする。
(ステップS3005)操作ノード決定手段23081は、i番目の四面体のノード(点)P、頂点a,b,cの座標値を取得する。
(ステップS3006)操作ノード決定手段23081は、読み出した数式2に、ステップS3005で取得したP,a,b,cの座標値を代入し、s,t,uを得る。
(ステップS3007)操作ノード決定手段23081は、読み出した数式3に、ステップS3006で取得したs,t,uを代入する。
(ステップS3008)操作ノード決定手段23081は、ステップS3007における演算結果が真であるか偽であるかを判断する。真であればステップS3009に行き、偽であればステップS3010に行く。
(ステップS3009)操作ノード決定手段23081は、i番目の四面体のノード(点)P、頂点a,b,cの座標値を、メモリ上に記録する。かかる処理は、i番目の四面体のノードを操作ノードとして登録する処理の一例である。
(ステップS3010)操作ノード決定手段23081は、カウンタiを1、インクリメントする。ステップS3004に戻る。
次に、情報処理装置の操作ノード変位処理について図31のフローチャートを用いて説明する。
(ステップS3101)変位決定手段23082は、格納されている数式4から数式7の情報を読み出す。
(ステップS3102)変位決定手段23082は、術具メタファによる操作の結果であるΔx,Δy,Δzを取得する。
(ステップS3103)変位決定手段23082は、カウンタiに1を代入する。
(ステップS3104)変位決定手段23082は、i番目の操作ノードが存在するか否かを判断する。i番目の操作ノードが存在すればステップS3105に行き、i番目の操作ノードが存在しなければ上位関数にリターンする。
(ステップS3105)変位決定手段23082は、i番目の操作ノードのp(x,y,z)を取得する。
(ステップS3106)変位決定手段23082は、数式5,6,7、ステップS3102で取得したΔx,Δy,Δzを用いて、M,T,αを算出し、メモリ上に一時記憶する。
(ステップS3107)変位決定手段23082は、数式4に、M,T,αを代入し、P'(P'(x,y,z)を算出し、メモリ上に一時記憶する。
(ステップS3108)変位決定手段23082は、カウンタiを1、インクリメントする。ステップS3104に戻る。
以下、本実施の形態における情報処理装置の具体的な動作、実験の結果について説明する。本情報処理装置において、例えば、三次元物体は、肝臓などの臓器である。ここで、物体情報格納部103は、256×256×256の胴体のCTデータを保持している。また、術具メタファ格納部2301は、直方体の四面体メッシュである操作オブジェクト(術具メタファ)を格納している。また、第一メッシュ情報格納部104は、臓器オブジェクトとして肝臓型の四面体メッシュの情報を格納している。臓器オブジェクトのメッシュは、胴体のCTデータから肝臓領域を抽出し,Mercury Computer Systems 社のAmira3.1 を用いてメッシュを作成されたものである。作成した臓器オブジェクトのノード数は787、要素数(四面体数)2999である。また、ヤング率1.0、ポワソン比は0.4とした。
また、第二メッシュ情報取得手段23081が行う変形計算は、非特許文献8で用いられている式に基づいた。また、変形後に各要素の描画を行うことでシミュレーション画像を生成するは、かかる描画のアルゴリズムは、非特許文献9で用いられている方法を用いた。
また、本具体例において、ユーザが使用する入力手段は、マウス、キーボード、画面上のGUIの組み合わせである。
ここで、ユーザは、上記の入力手段を用いて、術具メタファを移動させ、臓器をつまみ、かつ回転を加える。ここで、座標系は、ボリューム像の体軸方向をz軸とし、右手系で構成した。また、入力インターフェイスとしては、右ドラックで術具メタファの平行移動と操作ノードの平行移動を行い、左ドラックで回転量と回転軸の方向を決める。また、回転中心は、術具メタファの中心とする。またキーボードで操作領域の決定を行う。さらに、つまみ操作を行う際の変位量はGUI上のスライダーバー(図示しない)を用いる、こととした。
かかる状況において、以下のように変形処理が行われる。まず、第二メッシュ情報取得部2308は、第一メッシュ情報格納部104から第一メッシュ情報を読み出す。そして、操作ノード決定手段23081は、操作ノードを決定する。操作ノードを決定するために、操作ノード決定手段23081は、上述の数式2,3を用いる。
図32(a)は、臓器オブジェクトに操作領域の指定を行っている様子である。操作ノード決定手段23081は、操作オブジェクトと臓器オブジェクトが重なった領域にある点を操作ノードと決定する。図32(a)において、この操作ノードを灰色の比較的大きな点(例えば、3201)で表している。また、他の点は固定ノード、または自由ノードである。固定ノードの情報は予め格納されている、とする。なお、図32(b)は、操作ノードに変位を加えてないときの肝臓のボリューム像である。
次に、ユーザは、GUI上のスライダーバーを用いて、つまみ操作を行った。次に、変位決定手段23082は、上述した処理により、操作ノードの変位を決定する。そして、第二メッシュ情報取得手段23081は、変位決定手段23082が取得した変位後の複数の操作ノードに応じて自由ノードを変位させることにより、第二メッシュ情報を取得する。次に、第一スライス情報群取得部109は、取得した第二メッシュ情報に基づいて、複数のスライス情報である第一スライス情報群を取得する。そして、次に、第二スライス情報群取得部111は、上述した処理により、第二スライス情報群を取得する。そして、変形物体出力部112は、取得した第二スライス情報群を出力する。
以上のような処理により、図33(a)(b)に示すような、つまむような表現を行ったときの肝臓のボリューム像が表示される。図33(a)は、変位量が小さい場合であり、操作ノードの数は18ある。また、図33(b)は、変位量が大きい場合であり、操作ノードの数は31である。図33(a)(b)とも、つまんだような表現ができている。
次に、ユーザは、マウスの左ドラックにより、回転量と回転軸の方向を入力した、とする。次に、次に、変位決定手段23082は、上述した処理により、操作ノードの変位を決定する。そして、第二メッシュ情報取得手段23081は、変位決定手段23082が取得した変位後の複数の操作ノードに応じて自由ノードを変位させることにより、第二メッシュ情報を取得する。次に、第一スライス情報群取得部109は、取得した第二メッシュ情報に基づいて、複数のスライス情報である第一スライス情報群を取得する。そして、次に、第二スライス情報群取得部111は、上述した処理により、第二スライス情報群を取得する。そして、変形物体出力部112は、取得した第二スライス情報群を出力する。
以上のような処理により、図34(a)(b)に示すような、回転操作を行ったときの肝臓のボリューム像が表示される。図34(a)は、回転量が小さく、(b)は回転量が大きいときを表している。回転中心は(40,80,100)で、回転軸はx軸に平行である。この操作によって初期状態ではみえていなかった血管構造が見えるようになったことが、図34(b)の出力により分かる。
なお、上記実験において、操作中のリフレッシュレートは8Hzであった。
以上、本実施の形態によれば、外科手術計画の支援が可能となる。具体的には、例えば、内視鏡下手術時に想定される、術具による臓器の変形をシミュレートし、ボリューム像上に描出する術前ボリューム手術シミュレーションが可能となる。さらに、本実施の形態によれば、術具と臓器という三次元のオブジェクト同士のインタラクションを記述し、対話的に操作できる環境を構築できる。
なお、本実施の形態における実験において、ボリューム像に対する面操作の記述を行い、肝臓をモデルとしシミュレーション実験を実施した。しかし、モデルは肝臓だけではなく、胃や心臓や他の臓器でも良いことは言うまでもない。
また、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報と色についての情報である色情報を有する複数の点の情報から構成されるスライス情報を、複数有するスライス情報群と、三次元の物体の三次元メッシュの情報である第一メッシュ情報を格納しており、前記スライス情報群を出力するスライス情報群出力ステップと、前記出力されているスライス情報群の所定の領域に対する指示を受け付ける指示受付ステップと、前記指示に基づいて、前記第一メッシュ情報を変形し、変形した形状を構成する第二メッシュ情報を取得する第二メッシュ情報取得ステップと、前記第二メッシュ情報に基づいて、色情報を有しない複数のスライス情報である第一スライス情報群を取得する第一スライス情報群取得ステップと、前記第一スライス情報群を構成する複数のスライス情報の各点であり、前記3Dボクセル情報の点に対応する各点の色情報を決定する色情報決定ステップと、前記色情報決定ステップで決定した各点の色情報を用いて、前記第一スライス情報群取得ステップで取得した第一スライス情報群の各点に新たな色情報を設定し、第二スライス情報群を取得する第二スライス情報群取得ステップと、前記第二スライス情報群を出力する変形物体出力ステップを実行させるためのプログラム、である。
また、上記プログラムにおいて、前記第一メッシュ情報は、前記指示受付ステップで受け付けた指示に対応して変位する点である操作ノードと、当該操作ノードの変位に対して変位可能な点である自由ノードと、変位しない点である固定ノードを有し、前記第二メッシュ情報取得ステップにおいて、前記操作ノードを前記指示に対応して変位させ、かつ前記操作ノードの変位に応じて前記自由ノードを変位させ、かつ前記固定ノードを変位させないことにより、第二メッシュ情報を取得する、ことは好適である。
また、上記プログラムの前記第二メッシュ情報取得ステップにおいて、前記指示に対応して、操作ノードを決定する操作ノード決定ステップを具備することは好適である。
また、上記プログラムの前記指示受付ステップで受け付けた指示は、前記領域の回転または/および平行移動の指示であり、前記第二メッシュ情報取得ステップにおいて、前記指示に対応して、前記操作ノードの変位を決定する変位決定手段を具備することは好適である。
また、上記プログラムにおいて、コンピュータに、術具のメタファである術具メタファを読み出し、出力する術具メタファ出力ステップをさらに実行させ、前記指示受付ステップにおいて、前記術具メタファの移動や操作についての指示を受け付け、当該指示が前記出力されているスライス情報群の所定の領域に対する指示となり得ることは好適である。
また、上記プログラムにおいて、コンピュータに、前記指示に対応する領域を構成する点の、複数の位置情報を取得する位置情報取得ステップと、前記位置情報取得ステップで取得した複数の位置情報と対になる複数の弾性情報を取得する弾性情報取得ステップと、前記弾性情報取得ステップで取得した複数の弾性情報を用いて出力する弾性情報出力ステップをさらに実行させることは好適である。
(実施の形態4)
図35は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、物体情報格納部3501、入力受付部3502、3次元領域マスク形状変更部3503、3次元領域マスク位置変更部3504、第一スライス情報群取得部3505、第一スライス情報群格納部3506、第二メッシュ情報取得部3507、物体出力部3508を具備する。
物体出力部3508は、第二スライス情報群構成手段35081、出力手段35082を具備する。
物体情報格納部3501は、3次元の物体のボリュームテクスチャである3Dボクセル情報を格納している。3Dボクセル情報は、例えば、CTやMRIやPETなどの医用機器により取得される二次元画像の集合である。3Dボクセル情報は、例えば、CTやMRIなどで、人体の脳や、身体の中を撮影した二次元画像の集合である。物体情報格納部3501は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
入力受付部3502は、第二の3次元領域マスクである第二3次元領域マスクについての入力を受け付ける。3次元領域マスクとは、3Dボクセル情報を切り出すための情報であり、3次元幾何形状を有する情報である。第二3次元領域マスクは、3次元メッシュの情報である。この第二3次元領域マスクを構成する3次元メッシュの情報を、第二メッシュ情報という。3次元メッシュの情報(第二メッシュ情報など)は、三次元物体を構成する点の情報の集合である。3次元メッシュの情報は、間隔が空いている点の情報の集合である。点の情報は、通常、(x,y,z)という座標情報である。3Dボクセル情報は、例えば、(x,y,z,col)で構成される点の情報である。(x,y,z,col)の(x,y,z)は、座標情報である。「col」は、色情報である。3Dボクセル情報は、ここでは、点の間隔がなく、詰まっている点の情報でることが好適であるが、離散的な点の情報でも良い。また、第二3次元領域マスクについての入力とは、例えば、第二3次元領域マスクを3Dボクセル情報中に配置する指示である。また、第二3次元領域マスクについての入力とは、例えば、複数の形状の第二3次元領域マスクが存在する場合において、形状を選択し、当該形状の第二3次元領域マスクを3Dボクセル情報中に配置する指示である。また、第二3次元領域マスクについての入力とは、例えば、表示されている立体画像の輪郭をマウス等の入力手段でなぞって、立体的な第二3次元領域マスクを構築する指示である。さらに、第二3次元領域マスクについての入力とは、例えば、下記の形状変化指示や、位置変化指示などである。ここで、入力受付部3502は、第二3次元領域マスクの形状を変化させる指示である形状変化指示をも受け付けても良い。また、入力受付部3502は、第二3次元領域マスクの位置を変化させる指示である位置変化指示をも受け付けても良い。なお、本情報処理装置は、第二3次元領域マスクの形状や位置を指定できなくても良い。さらに、入力受付部3502は、視線方向を示す情報である視線ベクトルの入力を受け付けても良い。視線ベクトルは表示ディスプレイに垂直のベクトルであるので、視線ベクトルの入力は、例えば、表示されている立体画像を回転させたりする指示である。入力手段は、キーボードやマウス(3Dマウスを含む)やPHANToM(ファントム)やメニュー画面によるもの等、何でも良い。入力受付部3502は、マウス等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
3次元領域マスク形状変更部3503は、入力受付部3502が形状変化指示を受け付けた場合、当該形状変化指示に基づいて、第二3次元領域マスクの形状を変更する。3次元領域マスク形状変更部3503は、例えば、入力受付部3502が、入力手段であるマウスの右ボタンのクリックを受け付ける毎に、第二3次元領域マスクの大きさを、重心を変えずに90%の大きさに縮小する。また、3次元領域マスク形状変更部3503は、例えば、入力受付部3502が、入力手段であるマウスの左ボタンのクリックを受け付ける毎に、第二3次元領域マスクの大きさを、重心を変えずに110%の大きさに拡大する。また、3次元領域マスク形状変更部3503は、入力受付部3502が、入力手段であるマウスのドラッグの信号を受け付け、当該信号に従って、マウスで指示されている箇所(点)の形状を変更する。3次元領域マスク形状変更部3503が行う処理は、3次元メッシュの情報の変形処理であり、公知の技術であるので詳細な説明は省略する。3次元領域マスク形状変更部3503は、通常、MPUやメモリ等から実現され得る。3次元領域マスク形状変更部3503の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
3次元領域マスク位置変更部3504は、入力受付部3502が位置変化指示を受け付けた場合、当該位置変化指示に基づいて、第二3次元領域マスクの位置を変更する。「第二3次元領域マスクの位置を変更する」とは、第一スライス情報群に対する相対的な位置を変更することである。3次元領域マスク位置変更部3504は、例えば、入力手段がPHANToMである場合、PHANToMを押し込むと、第一スライス情報群に対して、第二3次元領域マスクを奥行きの奥の方向に移動させる処理を行う。3次元領域マスク位置変更部3504が行う処理は、3次元メッシュの位置の変更処理であり、公知の技術であるので詳細な説明は省略する。3次元領域マスク位置変更部3504は、通常、MPUやメモリ等から実現され得る。3次元領域マスク位置変更部3504の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一スライス情報群取得部3505は、物体情報格納部3501に格納されている3Dボクセル情報から、視線(視線ベクトル)に対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、第一スライス情報群を取得する。視線とは、例えば、物体出力部3508が第一スライス情報群を出力するディスプレイに対して垂直な線(当該ディスプレイを見る者の視線)である。スライス情報は、平面を構成する点の情報の集合であり、点間の間隔がなく、詰まっている。第一スライス情報群取得部3505は、必ずしも、視線に対して垂直で、かつ間隔が一定の複数のスライス情報を切り出す必要はない。ただし、複数のスライス情報は、視線ベクトルに対して垂直であることが好適である。また、スライス情報間の間隔は一定であることが好適である。スライス情報間の間隔は、密なほど精度の高い3次元物体がユーザに提示される。ただし、スライス情報間の間隔は、密なほど、以下で述べる出力処理に時間がかかる。3Dボクセル情報から、平面であるスライス情報を複数切り出す処理は公知技術であるので、詳細な説明は省略する。第一スライス情報群取得部3505は、通常、MPUやメモリ等から実現され得る。第一スライス情報群取得部3505の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一スライス情報群格納部3506は、第一スライス情報群を格納している。第一スライス情報群は、第一3次元領域マスクを用いて、物体情報格納部3501の3Dボクセル情報から切り出された複数のスライス情報である。第一3次元領域マスクは、3次元の物体を切り出す3次元幾何形状を有する第一の3次元領域マスクである。第一3次元領域マスクの形状や位置は、第二3次元領域マスクと同様に変更可能であっても良いし、固定でも良い、変更可能である場合、第一3次元領域マスクの形状や位置の変更は、第二3次元領域マスクと同様、入力受付部3502がその指示を受け付け、3次元領域マスク形状変更部3503、3次元領域マスク位置変更部3504が、それぞれ処理を行う、とする。第一スライス情報群格納部3506の第一スライス情報群は、第一スライス情報群取得部3505が取得した第一スライス情報群である。ただし、第一スライス情報群格納部3506は、予め、第一スライス情報群を格納していても良い。かかる場合、第一スライス情報群取得部3505は不要となる。第一スライス情報群格納部3506は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第二メッシュ情報取得部3507は、第二3次元領域マスクを構成する3次元メッシュの情報である第二メッシュ情報を取得する。第二メッシュ情報は、入力受付部3502が受け付けた第二3次元領域マスクを構成する第二メッシュ情報、そのままであっても良い。また、第二メッシュ情報は、入力受付部3502が受け付けた第二3次元領域マスクを構成する第二メッシュ情報に対して、3次元領域マスク形状変更部3503、または/および3次元領域マスク位置変更部3504が処理した結果の第二3次元領域マスクの第二メッシュ情報であっても良い。例えば、入力受付部3502が第二3次元領域マスクの形状の選択を受け付ける場合、選択され得る形状のメッシュ情報は、第二メッシュ情報取得部3507が予め保持している、とする。第二メッシュ情報取得部3507は、通常、MPUやメモリ等から実現され得る。第二メッシュ情報取得部3507の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
物体出力部3508は、第一スライス情報群の各スライス情報に対して、第二メッシュ情報の内側の領域である内側領域と、第二メッシュ情報の外側の領域である外側領域とを決定し、内側領域と外側領域を視覚的に区別して各スライス情報を構成し、前記内側領域と前記外側領域を視覚的に区別される第二スライス情報群を取得し、当該第二スライス情報群を出力する。なお、第二スライス情報群は、第一スライス情報群の各スライス情報に対して、内側領域と外側領域を視覚的に区別するように色情報が補正されたスライス情報の集合である。物体出力部3508は、通常、まず、第一スライス情報群を構成する複数のスライス情報の各点であり、物体情報格納部3501に格納されている3Dボクセル情報の点に対応する各点の色情報を、3Dボクセル情報から取得する。そして、物体出力部3508は、3Dボクセル情報の点の色情報に対して、当該各点が内側領域の点か、外側領域の点かによって、異なる処理を行い、複数のスライス情報の各点の色情報を取得し、設定する。その結果、内側領域と外側領域が視覚的に区別して出力されるようになる。具体的には、例えば、3次元空間上に配置されている各スライス情報が、3次元の第二メッシュ情報により切り出されるが、物体出力部3508は、通常、各スライス情報に対して順番に、次の処理を行う。物体出力部3508は、スライス情報が3次元の第二メッシュ情報により切り出される境界の点の集合(点の集合は、閉じた平面を構成する)を算出する。そして、物体出力部3508は、当該点の集合が作り出す閉平面の中に存在する領域を内側領域と決定し、閉平面の外の領域を外側領域と決定する。次に、物体出力部3508は、スライス情報の内側領域の全点の色情報を決定する。次に、物体出力部3508は、スライス情報の外側領域の全点の色情報を決定する。この場合、物体出力部3508は、内側領域と外側領域を視覚的に区別できるように、各領域の点の色情報を決定する。
物体出力部3508は、例えば、外側領域の点を透明色にしても良い。かかる場合、内側領域の点のみ表示されることとなり、ユーザは、第二3次元領域マスクで囲まれた領域の3次元画像のみを見ることができる。また、かかる場合、物体出力部3508は、内側領域の点の色情報は、対応する3Dボクセル情報の点の色情報とする。
また、物体出力部3508は、例えば、内側領域の点を透明色にしても良い。かかる場合、外側領域の点のみ表示されることとなり、ユーザは、第二3次元領域マスクで囲まれた領域が切り出された3次元画像のみを見ることができる。つまり、例えば、ユーザは、手術によって切り出された後の残った身体の部分を確認することができる。かかる場合、物体出力部3508は、外側領域の点の色情報は、対応する3Dボクセル情報の点の色情報とする。
また、物体出力部3508は、例えば、内側領域の点の輝度を、外側領域の点の輝度より、大きくしても良い。かかる場合、内側領域がフォーカスされて表示される。かかる場合、物体出力部3508は、まず、全点の色情報を、当該点に対応する(同一の位置情報を有する)3Dボクセル情報の点の色情報とし、当該色情報の輝度を補正する。輝度の補正は、例えば、内側領域の点の輝度を30%アップし、外側領域の点の輝度を30%ダウンする処理である。かかる輝度の補正処理は、公知技術であるので詳細な説明は省略する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置(表示装置を有する装置など)への送信、記録媒体への蓄積等を含む概念である。物体出力部3508は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。物体出力部3508は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
第二スライス情報群構成手段35081は、内側領域と外側領域を視覚的に区別できるように、各領域の点の色情報を決定し、第二スライス情報群を構成する。第二スライス情報群構成手段35081は、通常、内側領域の点と同一の位置情報を有する3Dボクセル情報の点を検索し、当該点の色情報を取得する。次に、第二スライス情報群構成手段35081は、内側領域の点の色情報、または/および外側領域の点の色情報を加工し、内側領域と外側領域を視覚的に区別できるように、各領域の点の色を決定する。そして、第二スライス情報群構成手段35081は、決定した色情報を各点の色情報とし、第二スライス情報群を得る。なお、加工とは、例えば、以下で述べる透明化や、輝度を変更する処理などである。
具体的には、例えば、第二スライス情報群構成手段35081は、第一スライス情報群の各スライス情報の外側領域の点を透明色にし、第二スライス情報群を構成する。かかる場合、第二スライス情報群構成手段35081は、例えば、内側領域の点と同一の位置情報を有する3Dボクセル情報の点を検索し、当該検索した点の色情報を、当該内側領域の点の色情報とする。
また、例えば、第二スライス情報群構成手段35081は、第一スライス情報群の各スライス情報の内側領域の点の色と、第一スライス情報群の各スライス情報の外側領域の点の色とを異なる色調にし、第二スライス情報群を構成する。
また、例えば、第二スライス情報群構成手段35081は、第一スライス情報群の各スライス情報の内側領域の点の輝度を、第一スライス情報群の各スライス情報の外側領域の点の輝度より大きくし、第二スライス情報群を構成する。かかる場合、通常、第二スライス情報群構成手段35081は、各点の輝度以外の色情報は、3Dボクセル情報の対応する点の色情報から得る。
また、例えば、第二スライス情報群構成手段35081は、第一スライス情報群の各スライス情報の内側領域の点を透明色にし、第二スライス情報群を構成する。かかる場合、第二スライス情報群構成手段35081は、例えば、外側領域の点と同一の位置情報を有する3Dボクセル情報の点を検索し、当該検索した点の色情報を、当該外側領域の点の色情報とする。
第二スライス情報群構成手段35081は、通常、MPUやメモリ等から実現され得る。第二スライス情報群構成手段35081の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力手段35082は、第二スライス情報群構成手段35081が構成した第二スライス情報群を出力する。出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信等を含む概念である。出力手段35082は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力手段35082は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置の動作について図36のフローチャートを用いて説明する。
(ステップS3601)入力受付部3502は、入力を受け付けたか否かを判断する。入力を受け付ければステップS3602に行き、入力を受け付けなければステップS3601に戻る。
(ステップS3602)入力受付部3502は、ステップS3601で受け付けた入力が出力の開始指示であるか否かを判断する。開始指示であればステップS3603に行き、開始指示でなければステップS3607に行く。なお、出力の開始指示とは、例えば、情報処理装置の起動の指示である。
(ステップS3603)第一スライス情報群取得部3505は、視線ベクトルを取得する。例えば、視線ベクトルは、情報処理装置に予め格納されている。視線ベクトルは、3Dボクセル情報が構成する三次元の物体の正面に対して垂直のベクトルである。なお、視線ベクトルは、ユーザからの指示で変化しても良い。ユーザの指示は、例えば、入力受付部3502が受け付ける。出力される三次元の物体を回転させることにより、視線ベクトルが変化する。
(ステップS3604)第一スライス情報群取得部3505は、物体情報格納部3501に格納されている3Dボクセル情報を読み出し、当該3Dボクセル情報から、ステップS3603で取得した視線ベクトルに対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、第一スライス情報群を取得する。スライス情報を切り出す間隔についての情報は、第一スライス情報群取得部3505が予め格納している、とする。第一スライス情報群取得部3505は、例えば、予め格納している第一3次元領域マスクを用いて、物体情報格納部3501の3Dボクセル情報から複数のスライス情報を切り出す。なお、3Dボクセル情報から、所定の間隔で、複数のスライス情報を切り出す処理は公知技術による処理であるので詳細な説明を省略する。
(ステップS3605)第一スライス情報群取得部3505は、ステップS3604で取得した第一スライス情報群を、第一スライス情報群格納部3506に一時的に蓄積する。
(ステップS3606)物体出力部3508は、ステップS3604で取得した第一スライス情報群を出力する。かかる出力により、ユーザは、3次元の物体を視認できる。ステップS3601に戻る。
(ステップS3607)入力受付部3502は、ステップS3601で受け付けた入力が、第二3次元マスクについての入力であるか否かを判断する。第二3次元マスクについての入力であればステップS3608に行き、第二3次元マスクについての入力でなければステップS3612に行く。
(ステップS3608)第二メッシュ情報取得部3507は、入力に対応する第二3次元マスクを構成する3次元メッシュの情報である第二メッシュ情報を取得する。
(ステップS3609)第二スライス情報群構成手段35081は、第二メッシュ情報の位置を取得する。ここで取得する第二メッシュ情報の位置は、デフォルトの位置である。なお、デフォルトの位置についての情報は、例えば、予め格納されている。なお、この位置の情報は、入力受付部3502が受け付けても良い。
(ステップS3610)第二スライス情報群構成手段35081は、ステップS3609までに取得した第二メッシュ情報を用いて、第二スライス情報群を取得する。第二スライス情報群を取得する処理について、図3のフローチャートを用いて、詳細に説明する。
(ステップS3611)出力手段35082は、ステップS3609で構成した第二スライス情報群を出力する。ステップS3601に戻る。
(ステップS3612)入力受付部3502は、ステップS3601で受け付けた入力が、形状変化指示であるか否かを判断する。形状変化指示であればステップS3613に行き、形状変化指示でなければステップS3614に行く。
(ステップS3613)3次元領域マスク形状変更部3503は、ステップS3612で受け付けた形状変化指示に基づいて、第二メッシュ情報の形状を変更する。第二メッシュ情報の形状変更の処理は、公知技術(有限要素法の技術)であるので、詳細な説明は省略する。ステップS3610に行く。
(ステップS3614)入力受付部3502は、ステップS3601で受け付けた入力が、位置変化指示であるか否かを判断する。位置変化指示であればステップS3615に行き、位置変化指示でなければステップS3601に戻る。
(ステップS3615)3次元領域マスク位置変更部3504は、ステップS3614で受け付けた位置変化指示に基づいて、第二メッシュ情報の位置を変更する。第二メッシュ情報の位置変更の処理は、公知技術であるので、詳細な説明は省略する。ステップS3610に行く。
なお、図36のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、第二スライス情報群を取得する処理について図37のフローチャートを用いて説明する。
(ステップS3701)第二スライス情報群構成手段35081は、カウンタiに1を代入する。
(ステップS3702)第二スライス情報群構成手段35081は、i番目のスライス情報(未処理のスライス情報)が、第一スライス情報群の中に存在するか否かを判断する。i番目のスライス情報が存在すればステップS3703に行き、i番目のスライス情報が存在しなければ上位関数にリターンする。
(ステップS3703)第二スライス情報群構成手段35081は、カウンタjに1を代入する。
(ステップS3704)第二スライス情報群構成手段35081は、i番目のスライス情報の中のj番目の点(未処理の点)が存在するか否かを判断する。j番目の点が存在すればステップS3705に行き、j番目の点が存在しなければステップS3713に飛ぶ。なお、「未処理」とは、色情報を設定していないことを言う。
(ステップS3705)第二スライス情報群構成手段35081は、i番目のスライス情報の中のj番目の点の位置情報(x,y,z)を取得する。
(ステップS3706)第二スライス情報群構成手段35081は、ステップS3705で取得した位置情報と一致する位置情報を有する3Dボクセル情報内の点の色情報を取得する。
(ステップS3707)第二スライス情報群構成手段35081は、j番目の点が、内側領域の点であるか、外側領域の点であるか、を判断する。かかる処理は、例えば、以下のように行う。つまり、第二スライス情報群構成手段35081は、3次元空間の中で、i番目のスライス情報と、第二メッシュ情報との交点を全て算出する(かかる処理は、公知の処理である)。第二スライス情報群構成手段35081は、かかる交点が全く存在しなければ、i番目のスライス情報のすべての点は、外側領域の点である、と判断する。また、第二スライス情報群構成手段35081は、交点が1つだけ存在すれば、その1点のみ内側領域の点で、他の点は外側領域の点である、と判断する。交点が複数存在する場合、複数の交点は、閉じた平面を構成している。第二スライス情報群構成手段35081は、j番目の点が、かかる閉じた平面内の点である場合は、当該点は内側領域の点で、j番目の点が、他の点である場合は外側領域の点である、と判断する。なお、閉じた平面の境界を構成する全点が与えられた場合に、任意の点jが、当該平面内の点であるか否かを判断する処理は、公知の処理であるので、詳細な説明は省略する。
(ステップS3708)第二スライス情報群構成手段35081は、j番目の点が内側領域の点であるか否かを判断する。内側領域の点であればステップS3709に行き、外側領域の点であればステップS3710にいく。
(ステップS3709)第二スライス情報群構成手段35081は、j番目の点の色情報を、内側領域に対応する色情報に加工する。なお、この加工は、ステップS3706で取得した色情報から何も変更しない処理も含む。また、加工とは、例えば、色情報を透明色とする処理である。また、加工とは、例えば、ステップS3706で取得した色情報の輝度を大きくする処理である。ステップS3711に行く。
(ステップS3710)第二スライス情報群構成手段35081は、j番目の点の色情報を、外側領域に対応する色情報に加工する。なお、この加工は、ステップS3706で取得した色情報から何も変更しない処理も含む。また、加工とは、例えば、色情報を透明色とする処理である。また、加工とは、例えば、ステップS3706で取得した色情報の輝度を小さくする処理である。なお、ステップS3709とステップS3710の処理は、異なる処理(一方が、何ら処理を行わない「NOP」も含む)である。ステップS3711に行く。
(ステップS3711)第二スライス情報群構成手段35081は、加工後の色情報を、j番目の点の色情報として設定する。
(ステップS3712)第二スライス情報群構成手段35081は、カウンタjを1、インクリメントする。ステップS3704に行く。
(ステップS3713)第二スライス情報群構成手段35081は、カウンタiを1、インクリメントする。ステップS3702に行く。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。本情報処理装置において、出力対象の三次元物体は、例えば、人間の胴体や、頭部などである。かかる三次元物体は、4面体の集合で近似できる。したがって、ここでは、説明の簡単化のために、まず、図38に示す4面体を用いて、種々のデータ構造について説明する。図38において、A,B,C,Oの4点を有する。点Pは、4面体の内部のある点である。
第二メッシュ情報のデータ構造例を図39に示す。また、3Dボクセル情報のデータ構造例を図40に示す。第二メッシュ情報は、例えば、4面体の外側および内側の点の情報(点の間は間隔があいている)の集合である。3Dボクセル情報は、図38に示す4面体を構成する全ての点の情報である点情報の集合である。点情報は、位置情報(x,y,z)と色情報(図40において、「col1」など)を、少なくとも有する。
かかる状況において、ユーザは、入力手段を用いて、開始指示を入力した、とする。開示指示は、例えば、本情報処理装置の電源ONである。また、開示指示は、例えば、本情報処理装置の処理部分がソフトウェアで実現されている場合、当該ソフトウェアのアイコンのダブルクリックである。また、開示指示は、例えば、メニューにより開始指示の項目を選択することである。
次に、入力受付部3502は、開始指示を受け付ける。
次に、第一スライス情報群取得部3505は、予め格納されている視線ベクトルを取得する。視線ベクトルは、三次元物体が表示されるディスプレイの画面と垂直のベクトルである。
次に、第一スライス情報群取得部3505は、物体情報格納部3501に格納されている3Dボクセル情報を読み出し、当該3Dボクセル情報から、視線ベクトルに対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、第一スライス情報群を取得する。かかる処理の概念を以下で説明する。第一スライス情報群取得部3505は、第一3次元領域マスク(メッシュ情報)を用いて、色情報を有しない複数のスライス情報である第一スライス情報群を、3Dボクセル情報から取得する。第一スライス情報群取得部3505は、図41に示すように、視線ベクトルに対して垂直であり、所定の間隔で、複数のスライス情報である第一スライス情報群を取得する。第一スライス情報群取得部3505は、表示対象の三次元物体の位置「minD」と「maxD」を求め、所定の間隔「D」でスライスし、複数のスライス情報を取得する。スライス情報は、点の情報の集合である。また、スライス情報を構成する点間の間隔はない。つまり、スライス情報により示される平面は、点の情報により詰まっている。ここでの点の情報は、位置情報(x,y,z)を有し、色情報を有さない。その結果、第一スライス情報群取得部3505は、例えば、図42に示す第一スライス情報群を取得する。第一スライス情報群は、スライス情報S1,スライス情報S2,スライス情報S3などを有する。なお、視線ベクトルに対して垂直にスライス情報を取得するのは、ユーザがスライス情報の集合を見た場合に、間引いたスライス情報でも、立体的に見えるようにするためである。また、所定の間隔で、間引いたスライス情報を取得するのは、表示処理の高速化のためである。また、一定の間隔でスライス情報を取得するのは、高品質な三次元物体を表示するためである。次に、第一スライス情報群取得部3505は、各点と同一の位置情報を有する3Dボクセル情報中の点の色情報を取得する。そして、第一スライス情報群取得部3505は、当該取得した色情報を、第一スライス情報群のスライドの該当する点の色情報として設定する。ここで、第一スライス情報群を構成するスライドの各点が色情報を有することとなる。
次に、第一スライス情報群取得部3505は、取得した第一スライス情報群を、第一スライス情報群格納部3506に一時的に蓄積する。そして、物体出力部3508は、取得した第一スライス情報群を出力する。
かかる処理を、具体的な医用画像を用いた第一の例で説明する。第一の例において、第二3次元領域マスクの内側領域がフォーカスされて出力される例である。図43は、人間の胴体部のCT画像であり、3Dボクセル情報である。図43において、複数枚の平面図(画像データ)の間が空いているが、3Dボクセル情報は、ここでは、間が詰まった複数枚の平面図の情報の集合であると考える。また、図44は、第一スライス情報群取得部3505が第一3次元領域マスクを用いて、図43の3Dボクセル情報から複数のスライス情報を切り出し、各スライス情報の各点に、対応する3Dボクセル情報中の点の色情報を取得し、出力する対象の色情報付きの複数のスライス情報を構成し、物体出力部3508が、当該複数のスライス情報(第一スライス情報群)を表示した例である。ここで、第一3次元領域マスクは、概ね胴体の形状である円柱状の3次元メッシュの情報である。3Dボクセル情報から複数のスライス情報を切り出す方法は、図38の四面体から、図42の複数のスライス情報を切り出す方法と同様である。3Dボクセル情報から複数のスライス情報を切り出す技術は、公知技術であるので、詳細な説明は省略する。
なお、本情報処理装置は、図44の表示状態から、図45のように透過度をあげる処理も行うことができる。透過度をあげるためには、入力受付部3502が透過度を上げる指示を受け付け、図示しない透過度変更手段が、各第一スライス情報の各点の色情報を、透過度を上げるように変更する。なお、色情報を、透過度を上げるように変更する処理は公知技術であるので、詳細な説明は省略する。各点の透過度を上げることにより、ユーザは、胴体内部の臓器(心臓など)が認識しやすくなる。
次に、ユーザは、球形状の第二3次元マスクを入力する指示を行った、とする。
そして、入力受付部3502は、かかる入力を受け付ける。そして、第二メッシュ情報取得部3507は、球形状の第二3次元マスクを構成する第二メッシュ情報を取得する。球形状の第二メッシュ情報は、球の表面の一部の点の集合からなる情報である。かかる第二メッシュ情報は、例えば、予め情報処理装置が保持している、とする。
次に、第二スライス情報群構成手段35081は、第二メッシュ情報の位置を取得する。ここで、第二メッシュ情報の位置は、例えば、以下のように決定する。つまり、第二メッシュ情報の球の中心が、表示されている図44の第一スライド情報群が構成する3次元物体の重心の位置と一致する、とする。そして、第二スライス情報群構成手段35081は、かかる重心の位置を算出し、球の中心の位置とし、第二メッシュ情報の位置を決定する。
次に、以下のように、第二スライス情報群構成手段35081は、第二スライス情報群を取得する。つまり、第二スライス情報群構成手段35081は、1番目のスライス情報から順に以下の処理を行う。第二スライス情報群構成手段35081は、各スライス情報を構成する各点の位置情報を取得する。そして、当該位置情報に一致する点であり、3Dボクセル情報内の点の色情報(第一スライス情報群を構成するスライス情報が色情報を保持している場合は、当該色情報でも良い。)を取得する。次に、第二スライス情報群構成手段35081は、処理対象の点が、第二メッシュ情報の3次元形状の内側にあるか(内側領域か)、外側にあるか(外側領域か)を判断する。かかる処理の概念を、図46を用いて説明する。図46(a)において、CT画像の集合である六面体の3Dボクセル情報から第一スライス情報群の一スライス情報が4601である。そして、ユーザは、例えば、円柱形の第二3次元マスクを入力する指示、およびその位置の指示を入力する。すると、第二スライス情報群構成手段35081は、円柱形の第二メッシュ情報を取得し、ユーザの指示に従った位置に円柱形の3次元物体を配置する(図46(a))。そして、第二スライス情報群構成手段35081は、円柱形の第二メッシュ情報により、図46(b)に示すように、スライス情報の各点が、円柱形の内部領域の点か、外部領域の点かを決定する。そして、図46においては、第二スライス情報群構成手段35081は、円柱形の内部領域を切り出している。
そして、ここでは、第二スライス情報群構成手段35081は、内側領域にある点の場合は、例えば、当該点の輝度を50%上げる。一方、第二スライス情報群構成手段35081は、外側領域にある点の場合は、例えば、当該点の輝度を30%下げる。
そして、第二スライス情報群構成手段35081は、上記の処理を、第二スライス情報群を構成する全てのスライス情報、全ての点に対して行い、全ての点の色情報を設定する。以上の処理により、第二スライス情報群構成手段35081は、第二スライス情報群を取得できる。
次に、出力手段35082は、第二スライス情報群構成手段35081が構成した第二スライス情報群を表示する。かかる表示例を図47に示す。図47において、中央部の臓器が多い3次元領域(球形状)がフォーカスされている。
次に、ユーザは、入力手段を用いて、球形状の第二3次元マスクを変形する指示、および移動させる指示を入力したとする。次に、入力受付部3502は、形状変化指示、および位置変化指示を受け付ける。かかる形状変化指示および位置変化指示は、例えば、マウス、スライダーバー(スライダーバーとは、GUIで用いられる部品であり、幅のある値を設定するバーである。)で、球形状の第二3次元マスクの形状(大きさ)と位置を微調整する指示である。また、形状変化指示により、球形状を臓器に近い概ね臓器の形状にするようにすることは好適である。なお、かかる指示により、完全に臓器の形状に一致することは必ずしも必要ではない。
次に、3次元領域マスク形状変更部3503、および3次元領域マスク位置変更部3504は、かかる形状変化指示、位置変化指示に基づいて、第二メッシュ情報の形状と位置を変更する。なお、ユーザの指示(マウス等からの指示)により、立体のメッシュ情報の形状や位置を変更する処理は、公知技術(有限要素法)である。
次に、上記と同様に、変形した形状の第二メッシュ情報を用いて、第二スライス情報群構成手段35081は、第二スライス情報群を取得する。第二スライス情報群を構成する各スライス情報の各点の色情報の決定方法は、上記(図47を出力する場合の処理)と同様である。
そして、次に、出力手段35082は、構成した第二スライス情報群を表示する。かかる表示例を図48に示す。図48において、関心領域である大動脈、心筋、肺動脈の位置関係、形状、表面の性状が描出できている。
次に、医用画像を用いた第二の例について説明する。第二の例において、第二3次元領域マスクの内側領域のみを出力する例である。図49は、人体の頭部をMRI等の医用機器で取得した3Dボクセル情報を、本情報処理装置で処理した結果を示す。
まず、本情報処理装置の入力受付部3502は、ユーザから頭部外形の輪郭抽出を行う指示を受け付ける、とする。この指示は、例えば、ユーザが、マウスで表示されている頭部の輪郭をなぞることにより行われる。
次に、入力受付部3502は、マウスによる輪郭抽出の指示を受け付ける。次に、情報処理装置は、マウスカーソルが通過した複数の座標情報から、第二メッシュ情報(要素数:1263)を構築する。マウスカーソルが通過した複数の座標情報から、第二メッシュ情報を構築する処理は、公知技術であるので、詳細な説明は省略する。次に、第二スライス情報群構成手段35081は、構築された第二メッシュ情報に基づいて、上述した処理と同様の処理により、第二スライス情報群を取得する。そして、出力手段35082が第二スライス情報群を出力する。かかる出力結果が図49(a)である。図49(a)は、頭部の形、そのままの出力である。
次に、ユーザは、例えば、第二メッシュ情報の形状を保ったまま、縮小する指示を入力する、とする。かかる入力は、例えば、操作画面上の「縮小」ボタン(図示しない)の押下による。すると、3次元領域マスク形状変更部3503は、所定の割合だけ、第二メッシュ情報を小さくし、新たな第二メッシュ情報を得る。次に、第二スライス情報群構成手段35081は、新たな第二メッシュ情報を用いて、先に説明した処理により、第二スライス情報群を取得する。その際、第二スライス情報群を構成する各スライス情報に対して、外側領域の点を透明色にし、内側領域の点のみを出力するようにする。かかる出力例が図49(b)である。
次に、さらに、ユーザは、第二メッシュ情報の形状を保ったまま、縮小する指示を入力する、とする。すると、3次元領域マスク形状変更部3503は、所定の割合だけ、さらに第二メッシュ情報を小さくし、新たな第二メッシュ情報を得る。次に、第二スライス情報群構成手段35081は、新たな第二メッシュ情報を用いて、新たな第二スライス情報群を取得する。その際、第二スライス情報群を構成する各スライス情報に対して、外側領域の点を透明色にし、内側領域の点のみを出力するようにする。かかる出力例が図49(c)である。図49(a)から(c)によると、第二メッシュ情報のサイズが小さくなるにつれ、頭皮・頭骨が可視領域外となり、内部の構造である脳のしわが現れる。
また、図49(d)は、頭部を上から見た場合の出力例である。ユーザは、頭部を回転させる指示を入力し、視線ベクトルを変更することにより、図49(d)の画像が出力され得る。図49(d)の出力アルゴリズムは、図49(a)等の出力アルゴリズムと同じである。以上のことは、用途に応じて第二3次元領域マスクの形状を制御すれば、簡便な操作で効果的に人体内部、臓器表面等を可視化できることを示している。本情報処理装置によれば、可視領域の変更結果は実時間で描画され、対話的な操作が可能である。
次に、医用画像を用いた第三の例について説明する。第三の例において、第二3次元領域マスクの外側領域のみを出力する例である。外側領域のみを出力すれば、内側領域の指定の仕方(第二3次元領域マスクの形状や位置)により、所定の箇所が切り取られた3次元画像を確認することができ、例えば、ユーザは、手術によりメスを入れた、またはドリル等で穴を開けた様子を見ることができる。
図50は、人体の胴体部の3Dボクセル情報から、第一3次元領域マスクを用いて、第一スライス情報群を取得し、当該第一スライス情報群が出力されている例である。ここで、第一3次元領域マスクは、概ね胴体の形状の3次元メッシュの情報である。
そして、ユーザは、例えば、球形状の第二3次元領域マスクを入力する、とする。そして、ユーザは、当該第二3次元領域マスクの形状、位置を変更する指示を行う、とする。
次に、入力受付部3502は、かかるユーザの入力を受け付ける。そして、3次元領域マスク形状変更部3503、3次元領域マスク位置変更部3504は、デフォルトの球形状の形状、および位置を、ユーザからの形状変化指示、位置変化指示に基づいて変更する。そして、第二メッシュ情報取得部3507は、新たな第二3次元領域マスクの第二メッシュ情報を取得する。
次に、第二スライス情報群構成手段35081は、第二スライス情報群を構成する各スライス情報に対して、新たな第二メッシュ情報に基づいて、内側領域を透明にし、外側領域を3Dボクセル情報の色とするように、色情報を設定する。そして、第二スライス情報群構成手段35081は、外側領域のみが見える複数のスライス情報からなる第二スライス情報群を構成する。
次に、出力手段35082は、第二スライス情報群構成手段35081が構成した第二スライス情報群を出力する。かかる出力例が、図51である。図51において、図50の胴体のから、一部(胴体部の中央あたり)に穴が開いたように見える。かかる表示により、ユーザ(医師など)は、手術前に手術のシミュレーションや術前計画が可能となる。
なお、本情報処理装置のユーザインターフェイス(入力画面)の例を図52に示す。図52において、「Total」フィールドは、全3次元領域マスク(第一3次元領域マスク、第二3次元領域マスクを含む)の数のフィールドである。本実施の形態では、第一3次元領域マスクが一つ、第二3次元領域マスクが一つである場合について説明したが、第二3次元領域マスクが複数あっても良い。かかる場合の処理を、実施の形態5で説明する。また、図52において、「select」フィールドは、処理対象の3次元領域マスクのIDを示す。処理対象の「処理」とは、以下で述べる3次元領域マスクの色設定(RGB)、3次元領域マスクの形状、位置の変更、および出力画像の透明度の変更の処理である。また、図52において、「R」「G」「B」のバーは、3次元領域マスク(第一3次元領域マスク、第二3次元領域マスクを含む)の色を設定するスライダーバーである。また、図52において、「Alpha」は、出力画像の透明度を設定するスライダーバーである。また、「Scale」は、3次元領域マスクの大きさを設定する(形状変化指示を入力する)スライダーバーである。さらに、「Zoom」は、3次元領域マスクの位置を設定する(位置変化指示を入力する)スライダーバーである
以上、本実施の形態によれば、医用画像などの画像上の3次元の関心領域を、柔軟かつ対話的に参照できる。したがって、例えば、本情報処理装置は、手術のシミュレーションや、術前計画などを支援できる。
なお、本実施の形態によれば、主として、医用画像を用いて、情報処理装置の動作を説明したが、その他の種類の画像でも利用可能であることは言うまでもない。かかることは、他の実施の形態においても同様である。
また、本実施の形態によれば、3Dボクセル情報は、医用機器で取得した画像(CTやMRIなど)の集合であったが、他の手段により取得した情報でも良いことは言うまでもない。かかることも、他の実施の形態においても同様である。
また、本実施の形態において、情報処理装置は、第一スライス情報群取得部を有さなくても良い。かかる場合、情報処理装置は、予め第一スライス情報群を格納している。なお、情報処理装置は、表示されている3次元物体を回転させるなど、視線ベクトルの変更を受け付ける毎に、第一スライス情報群取得部は、動的に視線ベクトルに垂直のスライス情報を有する第一スライス情群を取得することは好適である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、3Dボクセル情報と、当該3Dボクセル情報を切り出す3次元幾何形状を有する3次元領域マスクである第一3次元領域マスクを用いて、前記3Dボクセル情報が切り出された結果であり、複数のスライス情報である第一スライス情報群とを格納しており、第二の3次元領域マスクである第二3次元領域マスクについての入力を受け付ける入力受付ステップと、前記第二3次元領域マスクを構成する3次元メッシュの情報である第二メッシュ情報を取得する第二メッシュ情報取得ステップと、前記第二メッシュ情報に基づいて、前記第一スライス情報群の各スライス情報に対して、前記第二メッシュ情報の内側の領域である内側領域と、前記第二メッシュ情報の外側の領域である外側領域とを決定し、前記内側領域と前記外側領域とを視覚的に区別して前記第一スライス情報群を出力する物体出力ステップとを実行させるためのプログラム、である。なお、3Dボクセル情報は、通常、医用機器で撮影し、取得した情報である。
また、上記プログラムにおいて、前記物体出力ステップは、前記第一スライス情報群の各スライス情報の外側領域の点を透明色にし、第二スライス情報群を構成する第二スライス情報群構成ステップと、前記第二スライス情報群構成手段が構成した第二スライス情報群を出力する出力ステップを具備しても良い。
また、上記プログラムにおいて、前記物体出力ステップは、前記第一スライス情報群の各スライス情報の内側領域の点の色と、前記第一スライス情報群の各スライス情報の外側領域の点の色とを異なる色調にし、第二スライス情報群を構成する第二スライス情報群構成ステップと、前記第二スライス情報群構成ステップで構成した第二スライス情報群を出力する出力ステップを具備しても良い。なお、色調が異なる、とは、色が異なること、輝度が異なることなどを含む。
また、上記プログラムにおいて、前記物体出力ステップは、前記第一スライス情報群の各スライス情報の内側領域の点を透明色にし、第二スライス情報群を構成する第二スライス情報群構成ステップと、前記第二スライス情報群構成ステップで構成した第二スライス情報群を出力する出力ステップを具備しても良い。
また、上記プログラムにおいて、前記入力受付ステップで受け付ける指示に対応する3次元の物体の形状は、概ね臓器の形状であることは好適である。
また、上記プログラムにおいて、入力受付ステップにおいて、前記第二3次元領域マスクの形状を変化させる指示である形状変化指示をも受け付け、コンピュータに、前記形状変化指示に基づいて、第二3次元領域マスクの形状を変更する3次元領域マスク形状変更ステップをさらに実行させることは好適である。
また、上記プログラムにおいて、入力受付ステップにおいて、前記第二3次元領域マスクの位置を変化させる指示である位置変化指示をも受け付け、コンピュータに、前記位置変化指示に基づいて、第二3次元領域マスクの位置を変更する3次元領域マスク位置変更ステップをさらに実行させることは好適である。
また、上記プログラムにおいて、コンピュータに、前記3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数のスライス情報を切り出し、第一スライス情報群を取得する第一スライス情報群取得ステップをさらに実行させることは好適である。
(実施の形態5)
図53は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、物体情報格納部3501、入力受付部5302、3次元領域マスク形状変更部3503、3次元領域マスク位置変更部3504、第一スライス情報群取得部3505、第一スライス情報群格納部3506、第二メッシュ情報取得部5307、物体出力部5308を具備する。
物体出力部5308は、第二スライス情報群構成手段53081、出力手段53082を具備する。
入力受付部5302は、2以上の第二3次元領域マスクについての入力を受け付ける。また、入力受付部5302は、第二3次元領域マスクの形状を変化させる指示である形状変化指示をも受け付ける。また、入力受付部5302は、第二3次元領域マスクの位置を変化させる指示である位置変化指示をも受け付ける。さらに、入力受付部5302は、視線方向を示す情報である視線ベクトルの入力を受け付けても良い。入力手段は、キーボードやマウス(3Dマウスを含む)やPHANToM(ファントム)やメニュー画面によるもの等、何でも良い。入力受付部5302は、マウス等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
第二メッシュ情報取得部5307は、2以上の第二3次元領域マスクを構成する2以上の第二メッシュ情報を取得する。第二メッシュ情報取得部5307は、通常、MPUやメモリ等から実現され得る。第二メッシュ情報取得部5307の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
物体出力部5308は、2以上の第二メッシュ情報により、第一スライス情報群の各スライス情報を複数の領域に区分し、当該複数の領域を視覚的に区別して第一スライス情報群を出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信等を含む概念である。物体出力部5308は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。物体出力部5308は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
第二スライス情報群構成手段53081は、各領域を構成した1以上の第二3次元領域マスクに対応する色に基づいて、各領域内の点の色を決定し、当該色を有する点の集合である複数のスライス情報を構成し、当該複数のスライス情報である第二スライス情報群を取得する。第二スライス情報群構成手段53081は、通常、MPUやメモリ等から実現され得る。第二スライス情報群構成手段53081の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理装置の動作について説明する。本情報処理装置の動作は、図36のフローチャートにおける情報処理装置の動作と比較して、ステップS3610の第二スライス情報群取得の処理が異なる。その他の動作は同じである。なお、本情報処理装置は、2度以上、第二3次元マスクについての入力を受け付ける。つまり、本情報処理装置において、2度以上、ステップS3607の処理が行われる。
次に、本情報処理装置の第二スライス情報群取得処理について、図54のフローチャートを用いて説明する。
(ステップS5401)第二スライス情報群構成手段53081は、j番目の点の領域を判断する。領域の判断とは、2以上の第二3次元領域マスクにより区分される領域のうち、j番目の点が、どの領域に該当する点であるかを判断することである。j番目の点の領域を判断する処理について、図55のフローチャートを用いて、詳細に説明する。
(ステップS5402)第二スライス情報群構成手段53081は、ステップS5401で決定した領域に対応した色情報に、ステップS3706で取得した色情報を加工する。
次に、本情報処理装置のj番目の点の領域を判断する処理について、図55のフローチャートを用いて説明する。
(ステップS5501)第二スライス情報群構成手段53081は、カウンタiに1を代入する。
(ステップS5502)第二スライス情報群構成手段53081は、i番目の第二3次元マスクが存在するか否かを判断する。i番目の第二3次元マスクが存在すればステップS5503に行き、i番目の第二3次元マスクが存在しなければ上位関数にリターンする。
(ステップS5503)第二スライス情報群構成手段53081は、i番目の第二3次元マスクの第二メッシュ情報を取得する。第二3次元マスクの第二メッシュ情報は、ユーザが第二3次元マスクについての入力を行った後に、情報処理装置が保持しているので、ここでは、当該第二メッシュ情報を読み出す。
(ステップS5504)第二スライス情報群構成手段53081は、j番目の点が、ステップS5503で取得した第二メッシュ情報の内側領域の点か、外側領域の点かを判断する。なお、かかる処理は、ステップS3707における処理と同様である。
(ステップS5505)第二スライス情報群構成手段53081は、ステップS5504における判断結果を記録する。この記録は、j番目の点が、i番目以外の他の二3次元マスクに対応する第二メッシュ情報の内側領域の点か、外側領域の点かの判断結果を上書きすることなく、追記することである。かかる判断結果を記録した情報である領域情報のデータ構造図の例を図56に示す。図56において、j番目の点の領域情報の各ビットが「1」の場合は、当該j番目の点が、対応する第二3次元マスクの内側領域であることを示す。また、ビットが「0」の場合は、当該j番目の点が、対応する第二3次元マスクの外側領域であることを示す。図22の領域情報は「1,0,1,1・・・」であるので、当該j番目の点は、1番目の第二マスク領域の内側領域であり、2番目の第二マスク領域の外側領域であり、3番目の第二マスク領域の内側領域であり、4番目の第二マスク領域の内側領域であることを示す。この領域情報に基づいて、j番目の点の色情報が決められる。また、j番目の点の色情報は、ステップS3706で取得した色情報をも用いて、決定されることは言うまでもない。
(ステップS5506)第二スライス情報群構成手段53081は、カウンタiを1、インクリメントする。ステップS5502に戻る。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。
今、本情報処理装置は、物体情報格納部3501に、胴体部の3Dボクセル情報を格納している、とする。そして、情報処理装置は、実施の形態4で述べた処理により、図44に示す第一スライス情報群を表示した、とする。次に、ユーザは透過度を変更し(図52の「Alpha」スライダーバーを調節し)、情報処理装置は、図45の第一スライス情報群の表示を行った、とする。
次に、ユーザは、赤、緑、青の3原色の色の3つの球形状の第二3次元領域マスクの入力を指示した、とする。そして、本情報処理装置は、かかる指示を受け付け、第一スライス情報群を構成する各スライス情報の各点が3つの第二3次元領域マスクそれぞれの内側領域か、外側領域かを決定する。そして、赤の第二3次元領域マスクの内側領域の点に対しては、Rの色情報を所定の量(「所定の量」についての情報は、予め格納されている)、増加させる。また、緑の第二3次元領域マスクの内側領域の点に対しては、Gの色情報を所定の量(予め格納されている)、増加させる。さらに、青の第二3次元領域マスクの内側領域の点に対しては、Bの色情報を所定の量(予め格納されている)、増加させる。そして、例えば、赤と青の2つの第二3次元領域マスクの内側領域の点は、紫色がかった色で表示される。
かかる出力例を、図57に示す。図57において、赤、緑、青の3つの球形状の第二3次元領域マスクが入力されており、3つの第二3次元領域マスクにより区分されるそれぞれの領域が、視覚的に区別されて表示されている。なお、本実施の形態における処理は、出力されるスライス情報の各点の色の決め方以外は、同様の処理である。
以上、本実施の形態によれば、医用画像などの画像上の3次元の複数の関心領域を、柔軟かつ対話的に参照できる。したがって、例えば、本情報処理装置は、手術のシミュレーションや、術前計画などを、より簡単に支援できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、医用機器で撮影し、取得した3Dボクセル情報と、当該3Dボクセル情報を切り出す3次元幾何形状を有する3次元領域マスクである第一3次元領域マスクを用いて、前記3Dボクセル情報が切り出された結果であり、複数のスライス情報である第一スライス情報群とを格納しており、第二の3次元領域マスクである第二3次元領域マスクについての入力を受け付ける入力受付ステップと、前記第二3次元領域マスクを構成する3次元メッシュの情報である第二メッシュ情報を取得する第二メッシュ情報取得ステップと、前記第二メッシュ情報に基づいて、前記第一スライス情報群の各スライス情報に対して、前記第二メッシュ情報の内側の領域である内側領域と、前記第二メッシュ情報の外側の領域である外側領域とを決定し、前記内側領域と前記外側領域とを視覚的に区別して前記第一スライス情報群を出力する物体出力ステップとを実行させるためのプログラム、である。
また、上記プログラムにおいて、前記入力受付ステップにおいて、2以上の第二3次元領域マスクについての入力を受け付け、前記第二メッシュ情報取得ステップにおいて、前記2以上の第二3次元領域マスクを構成する2以上の第二メッシュ情報を取得し、前記物体出力ステップにおいて、前記2以上の第二メッシュ情報により、前記第一スライス情報群の各スライス情報を複数の領域に区分し、当該複数の領域を視覚的に区別して前記第一スライス情報群を出力しても良い。
また、上記プログラムにおいて、前記2以上の第二3次元領域マスクに対応する色が存在し、前記物体出力ステップは、前記各領域を構成した1以上の第二3次元領域マスクに対応する色に基づいて、前記各領域内の点の色を決定し、当該色を有する点の集合である複数のスライス情報を構成し、当該複数のスライス情報である第二スライス情報群を取得する第二スライス情報群構成ステップと、前記第二スライス情報群構成ステップで構成した第二スライス情報群を出力する出力ステップを具備しても良い。
(実施の形態6)
本実施の形態において、CTデータ等から、DRR(Digitally Reconstructed Radiograph:ディジタル再構成X 線撮影像)を生成する情報処理装置等について説明する。
図58は、本実施の形態における情報処理装置のブロック図である。
情報処理装置は、受付部5801、物体情報格納部5802、第一スライス情報群格納部5803、原点情報格納部5804、第一スライス情報群取得部5805、第二スライス情報群取得部5806、倍率算出部5807、第三スライス情報群取得部5808、出力部5809、設定部5810を具備する。また、出力部5809は、合成手段58091、出力手段58092を具備する。
受付部5801は、ユーザからの入力を受け付ける。入力されるのは、視線を特定する視線ベクトルや、透明度情報や、情報処理装置の起動命令や、原点情報の移動指示や、各種の指示、データ等である。透明度情報とは、スライス情報を構成する点の透明度についての情報であり、通常、アルファ値と言われている。入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部5801は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
物体情報格納部5802は、3次元の物体のボリュームテクスチャである3Dボクセル情報を格納している。3Dボクセル情報は、例えば、CTやMRIやPETなどの医用機器により取得される二次元画像の集合である。3Dボクセル情報は、例えば、(x,y,z,col,α値)で構成される点の情報である。物体情報格納部5802は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
第一スライス情報群格納部5803は、三次元の物体のボリュームテクスチャである3Dボクセル情報を複数の平面で切り出した結果の二次元の画像データに基づいて構成される情報であるスライス情報であり、位置を示す情報である位置情報を有する複数の点の情報から構成される第一スライス情報を、複数有する第一スライス情報群を格納している。なお、第一スライス情報群格納部5803の第一スライス情報群は、予め用意されていても良い。かかる場合、情報処理装置において、第一スライス情報群取得部5805は、不要である。また、スライス情報を構成する点は、弾性についての情報である弾性情報や、色情報や、透明度情報を有しても良い。第一スライス情報群格納部5803は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
原点情報格納部5804は、X線が照射される始点の位置を示す情報である原点情報を格納している。原点情報は、例えば、3次元空間における座標値(x,y,z)である。原点情報格納部5804は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。原点情報は、固定でも、カスタマイズ可能でも良い。
第一スライス情報群取得部5805は、物体情報格納部5802に格納されている3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、第一スライス情報群を取得し、第一スライス情報群格納部5803に少なくとも一時的に格納する。「視線に対して垂直である」とは、三次元物体が表示されている画面に垂直なベクトルである視線ベクトルに対して垂直である、ことである。なお、スライス情報は、平面を構成する点の情報の集合であり、通常、点間の間隔がなく、詰まっている。第一スライス情報群取得部5805は、通常、MPUやメモリ等から実現され得る。第一スライス情報群取得部5805の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二スライス情報群取得部5806は、2以上の各第一スライス情報に対して、原点情報が示す位置から、複数の各第一スライス情報の配置情報を用いて、複数の各第一スライス情報に対して垂直に、かつ放射状に切り出す処理を行い、複数の第二スライス情報を取得する。各第一スライス情報の配置情報とは、第一スライス情報上の点の情報が有する座標情報から得られる情報でも良いし、第一スライス情報の、第一スライス情報群格納部5803における格納順序が、配置情報である、としても良い。つまり、複数の各第一スライス情報と、原点情報が示す位置からの距離が分かれば良い。第二スライス情報取得部5806は、通常、MPUやメモリ等から実現され得る。第二スライス情報取得部5806の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、2以上の各第一スライス情報は、胸部を含む画像であることは好適である。かかる場合、利用価値の高い胸部のDRRが簡単に得られる。
倍率算出部5807は、複数の各第二スライス情報に対して、当該各第二スライス情報の配置情報を用いて、各第二スライス情報の拡大率または縮小率である倍率を算出する。なお、倍率算出部5807は、拡大も縮小もしない、倍率「1」と算出しても良い。倍率算出部5807の具体的な倍率の算出方法の例については、後述する。倍率算出部5807は、通常、MPUやメモリ等から実現され得る。倍率算出部5807の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第三スライス情報群取得部5808は、倍率算出部5807が算出した倍率に従って、複数の各第二スライス情報を拡大または縮小して、複数の第三スライス情報を取得する。画像を拡大または縮小する処理は公知技術である。第三スライス情報取得部5808は、通常、MPUやメモリ等から実現され得る。第三スライス情報取得部5808の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部5809は、複数の第三スライス情報を重ね合わせて出力する。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、外部の装置への送信、記録媒体への蓄積等を含む概念である。出力部5809は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部5809は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
合成手段58091は、複数の第三スライス情報を二次元平面上に重ね合わせて、一の画像を得る。なお、複数の画像を重ね合わせて一の画像を取得する処理を行うことは、公知技術であるので、詳細な説明を省略する。合成手段58091は、通常、MPUやメモリ等から実現され得る。合成手段58091の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力手段58092は、合成手段58091が重ね合わせた二次元平面上の画像を出力する。出力手段58092は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力手段58092は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
設定部5810は、受付部5801が受け付けた原点情報を原点情報格納部5804に格納したり、受付部5801が受け付けた透明度情報を第一スライス情報や第二スライス情報や第三スライス情報を構成する点の透明度情報として更新したりする。設定部5810は、通常、MPUやメモリ等から実現され得る。設定部5810の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理装置の動作について図59、図60のフローチャートを用いて説明する。
(ステップS5901)受付部5801は、ユーザからの入力を受け付けたか否かを判断する。入力を受け付ければステップS5902に行き、入力を受け付なければステップS5901に戻る。
(ステップS5902)受付部5801は、DRRの出力指示を受け付けたか否かを判断する。DRRの出力指示は、例えば、ユーザが、GUIのボタンを、マウスで押下することにより入力される。DRRの出力指示を受け付ければステップS5903に行き、DRRの出力指示を受け付けなければステップS5904に行く。
(ステップS5903)第二スライス情報群取得部5806や出力部5809等は、DRRを出力する処理を行う。DRR出力処理の詳細については、図60のフローチャートを用いて説明する。ステップS5901に戻る。
(ステップS5904)受付部5801は、原点情報の入力を受け付けたか否かを判断する。原点情報の入力を受け付ければステップS5905に行き、原点情報の入力を受け付けなければステップS5906に行く。
(ステップS5905)設定部5810は、受け付けた原点情報を原点情報格納部5804に蓄積する。
(ステップS5906)受付部5801は、透明度情報の入力を受け付けたか否かを判断する。透明度情報の入力を受け付ければステップS5907に行き、透明度情報の入力を受け付けなければステップS5911に行く。
(ステップS5907)設定部5810は、第一スライス情報群格納部5803の第一スライス情報群、第二スライス情報群取得部5806が取得した第二スライス情報群、第三スライス情報群取得部5808が取得した第三スライス情報群の各スライス情報の各点の透明度情報を、受け付けた透明度情報に更新する。なお、第二スライス情報群取得部5806が取得した第二スライス情報群、第三スライス情報群取得部5808が取得した第三スライス情報群がメモリ上にない場合は、透明度情報を更新するのは第一スライス情報群だけである。
(ステップS5908)出力部5809は、DRRを出力中であるか否かを判断する。DRRを出力中であればステップS5909に行き、DRRを出力中でなければステップS5901に戻る。
(ステップS5909)合成手段58091は、すべての第三スライス情報を重ね合わせて、二次元の画像(DRR)を得る。
(ステップS5910)出力手段58092は、ステップS5909で得た画像(DRR)を出力する。ステップS5901に戻る。
(ステップS5911)受付部5801は、第一スライス情報群取得指示を受け付けたか否かを判断する。第一スライス情報群取得指示を受け付ければステップS5912に行き、第一スライス情報群取得指示を受け付けなければステップS5901に戻る。
(ステップS5912)第一スライス情報群取得部5805は、物体情報格納部5802に格納されている3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、第一スライス情報群を取得する。かかる処理は、公知技術であるので、詳細な説明を省略する。
(ステップS5913)第一スライス情報群取得部5805は、ステップS5912で取得した第一スライス情報群を、第一スライス情報群格納部5803に蓄積する。ステップS5901に戻る。
なお、図59のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、DRR出力処理について図60のフローチャートを用いて説明する。
(ステップS6001)第二スライス情報群取得部5806は、原点情報を原点情報格納部5804から読み出す。
(ステップS6002)第二スライス情報群取得部5806は、カウンタiに1を代入する。
(ステップS6003)第二スライス情報群取得部5806は、i番目の第一スライス情報が、第一スライス情報群格納部5803に格納されているか否かを判断する。i番目の第一スライス情報が格納されていればステップS6004に行き、i番目の第一スライス情報が格納されていなければステップS6011に行く。
(ステップS6004)第二スライス情報群取得部5806は、第一スライス情報群格納部5803から、i番目の第一スライス情報を読み出す。
(ステップS6005)第二スライス情報群取得部5806は、ステップS6004で読み出したi番目の第一スライス情報を、ステップS6001で読み出した原点情報が示す位置から、i番目の第一スライス情報の配置情報を用いて、i番目の第一スライス情報に対して垂直に、かつ放射状に切り出す処理を行う。ここで「原点情報が示す位置から放射状」とは、原点情報が示す位置にX線の放射点が存在するとして、放射状にi番目の第一スライス情報に垂直にX線が進むとして、X線が照射される面をi番目の第一スライス情報から切り出す処理を行う。
(ステップS6006)倍率算出部5807は、i番目の第二スライス情報の拡大率または縮小率である倍率を算出するための情報を取得する。この情報は、例えば、X線源からi番目の第二スライス情報が示すスライスまでの距離(後述する「P」)、X線源からスクリーンまでの距離(後述する「distance」)、ボリュームデータ(第一スライス情報)の一辺の長さ(後述する「psize」)、X線が通過する空間内のスライス一辺の長さ(後述する「X」)である。
(ステップS6007)倍率算出部5807は、複数の各第二スライス情報に対して、当該各第二スライス情報の配置情報を用いて、各第二スライス情報の拡大率または縮小率である倍率を算出する。
(ステップS6008)第三スライス情報群取得部5808は、ステップS6008で算出した倍率に従って、第二スライス情報を拡大または縮小して、第三スライス情報を取得する。
(ステップS6009)第三スライス情報群取得部5808は、取得した第三スライス情報をメモリ上に一時格納する。
(ステップS6010)第二スライス情報群取得部5806は、カウンタiを1、インクリメントする。ステップS6003に戻る。
(ステップS6011)合成手段58091は、ステップS6009でメモリ上に一時格納したすべての第三スライス情報を二次元平面上に重ね合わせて、一の画像を得る。
(ステップS6012)出力手段58092は、ステップS6011で重ね合わせた二次元平面上の画像を出力する。上位関数にリターンする。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。
今、人の胸部のCTスキャンされたデータであるCTデータの集合である3次元の物体のボリュームテクスチャである3Dボクセル情報が、物体情報格納部5802に格納されている、とする。
そして、ユーザは、第一スライス情報群取得指示を入力した、とする。すると、第一スライス情報群取得部5805は、物体情報格納部5802に格納されている3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、第一スライス情報群を取得する。そして、第一スライス情報群取得部5805は、取得した第一スライス情報群を、第一スライス情報群格納部5803に蓄積する。
次に、ユーザは、DRRの出力指示を入力した、とする。すると、受付部5801は、DRRの出力指示を受け付ける。
次に、第二スライス情報群取得部5806は、原点情報を原点情報格納部5804から読み出す。そして、第二スライス情報群取得部5806等は、1番目の第一スライス情報から順に、全第一スライス情報に対して以下のように処理を行う。
つまり、まず、図61に示すような処理を行う。図61において、「X−ray source」は、X線源であり、その位置は、原点情報により示される。また、「Slice」は、第一スライス情報である。「Screen」は、X線が照射される最後尾の面である。図61に示すように、X線源(原点情報が示す位置)からの距離によってX線が通過する領域は異なる。したがって、第二スライス情報群取得部5806は、第一スライス情報群格納部5803から、第一スライス情報を読み出し、原点情報を用いて、第一スライス情報に対して垂直に、かつ放射状に第一スライス情報を切り出す処理を行う。そして、第二スライス情報群取得部5806は、第二スライス情報を得る。切り出した第二スライス情報は、図61における6101、6102、6103である。この6101、6102、6103面は、X線が照射される面である。
また、図61における6101、6102、6103の第二スライス情報は、大きさが異なる。そこで、第三スライス情報群取得部5808は、これらの大きさの異なる第二スライス情報(画像)を拡大、縮小することにより透視射影を実現する。なお、X線源に近い第二スライス情報(画像)ほど、拡大率は大きくなる。また、X線源に遠い第二スライス情報(画像)は、縮小される場合もあり得る。
次に、倍率算出部5807は、例えば、以下の数式8、数式9を用いて、第二スライス情報(画像)を拡大、縮小する倍率を算出する。なお、数式8、数式9において、「P」は、各スライスまでの距離、「distance」はX線源からスクリーンまでの距離、「screensize」はスクリーンの大きさ、「psize」はボリュームデータ(第一スライス情報)の一辺の長さ、「X」はX線が通過する空間内のスライス一辺の長さである。
次に、倍率算出部5807が倍率を算出する具体的な方法について、図62を用いて説明する。まず、視線ベクトルがスライスと垂直に交わる点を原点とし、拡大率をMとする。すると、倍率算出部5807は、格納されている数式8、数式9の情報を読み出し、かつ、格納されている「screensize」や「distance」や「psize」を読み出す。そして、第二スライス情報(画像)の配置情報と原点情報から「P」を算出する。そして、倍率算出部5807は、得た「screensize」、「distance」および「P」を数式8に代入し、「X」を得る。次に、倍率算出部5807は、「psize」と「X」を数式9に代入し、倍率「M」を得る。
次に、第三スライス情報群取得部5808は、算出した倍率「M」に従って、第二スライス情報を拡大または縮小して、第三スライス情報を取得し、メモリ上に一時格納する。
上記の処理をすべての第一スライス情報に対して行う。
そして、合成手段58091は、メモリ上に一時格納したすべての第三スライス情報を二次元平面上に重ね合わせて、一の画像を得る。次に、出力手段58092は、重ね合わせた二次元平面上の画像を出力する。この二次元平面上の画像の例を図63に示す。図63は、胸部のレントゲン写真(DRR)である。図63において、DRRはX線源と各スライスとの距離によって拡大率が異なる画像が生成され、その重ね合わせによって成っている。図63の表示の元になっているボリュームデータは、ボクセルサイズ256×256×256の患者のCTデータである。かかるデータを用いて各パラメータを適宜設定し、表示させると図63が得られる。
なお、上記のDRRの生成前に、第一スライス情報が有する各点の座標系と、第三スライス情報が有する各点の座標系(DRRの座標系)が異なる場合、図64に示すように、図示しない手段により、座標系の変換を行っても良いことは言うまでもない。図64は、第一スライス情報が有する各点の座標系の座標(P,Q,R)が、DRRの座標系(P',Q',R')に変換されることを示す。座標変換は公知の技術であるので詳細な説明を省略する。
以上、本実施の形態によれば、CTデータ等から、DRRを高速に生成できる。
なお、本実施の形態において、出力されたDRRを変形させることを可能にしても良い。つまり、本実施の形態の情報処理装置に、上記の実施の形態で述べたような変形処理を可能にする構成を付加しても良い。さらに具体的には、実施の形態1、実施の形態3等で説明したように、物体情報格納部5802の3次元の物体に対応する胸部等の3次元物体のメッシュ情報を記憶手段で保持しており、第一スライス情報群、第二スライス情報群、および第三スライス情報群に対応するメッシュ情報を管理しており、受付部がユーザの指示を受け付け、メッシュ情報を変形し、変形したメッシュ情報に対応するように複数の第三スライス情報を変形し、変形したDRRを出力する構成である。なお、DRRが四面体メッシュに対応している場合、図65に示すように、(a)のDRRに対して、左下側から上向きの力を加えると、(b)のように変形する。DRRを変形可能にすることにより、例えば、肺腫瘍を追尾しながら放射線を照射する治療のために、肺腫瘍の呼吸性移動をシミュレーションにより推定し、動体追尾照射を実現できる。
また、本実施の形態において、X線源の位置を示す原点情報は、ユーザの指示によりカスタマイズ可能であることは好適である。また、DRRを出力する場合の視線ベクトルもカスタマイズ可能であることは好適である。かかる場合、受付部が視線を特定する視線ベクトルを受け付け、第一スライス情報群取得部は、物体情報格納部に格納されている3Dボクセル情報から、前記視線ベクトルが示す視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、取得する。なお、第一スライス情報を切り出す場合、通常、間隔は一定であるが、必ずしも一定であるとは限らない。かかることは、他の実施例、他の具体例においても該当する。
さらに、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、格納している2以上の各第一スライス情報に対して、原点情報が示す位置から、前記複数の各スライス情報の配置情報を用いて、前記複数の各スライス情報に対して垂直に、かつ放射状に切り出す処理を行い、複数の第二スライス情報を取得する第二スライス情報取得ステップと、前記複数の各第二スライス情報に対して、当該各第二スライス情報の配置情報を用いて、各第二スライス情報の拡大率または縮小率である倍率を算出する倍率算出ステップと、前記倍率算出ステップで算出した倍率に従って、前記複数の各第二スライス情報を拡大または縮小して複数の第三スライス情報を取得する第三スライス情報取得ステップと、前記複数の第三スライス情報を重ね合わせて出力する出力ステップを実行させるためのプログラム、である。 また、上記プログラムにおいて、コンピュータに、3次元の物体のボリュームテクスチャである3Dボクセル情報3Dボクセル情報から、視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、取得する第一スライス情報群取得ステップをさらに実行させ、前記2以上の第一スライス情報は、前記第一スライス情報取得ステップで取得した第一スライス情報であることは好適である。
また、上記プログラムは、コンピュータに、前記視線を特定する視線ベクトルを受け付ける受付ステップをさらに実行させ、前記第一スライス情報群取得ステップにおいて、前記3Dボクセル情報から、前記視線ベクトルが示す視線に対して垂直で、かつ間隔が一定の複数の第一スライス情報を切り出し、取得することは好適である。
また、上記プログラムにおいて、前記第一スライス情報、第二スライス情報、および第三スライス情報は、各スライス情報を構成する点の透明度についての情報である透明度情報を有し、コンピュータに、透明度情報を受け付ける受付ステップをさらに実行させ、前記受付ステップで受け付けた透明度情報に応じて、前記重ね合わせて出力される複数の第三スライス情報の透明度が変化することは好適である。
また、図66は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報処理装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図66は、このコンピュータシステム340の概観図であり、図67は、コンピュータシステム340のブロック図である。
図66において、コンピュータシステム340は、FD(Flexible Disk)ドライブ、CD−ROM(Compact Disk Read Only Memory)ドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図39において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、CPU(Central Processing Unit)3413と、CPU3413、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM(Read−Only Memory)3415と、CPU3413に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM(Random Access Memory)3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の情報処理装置の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の情報処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、ハードウェアによって行われる処理、例えば、出力部のディスプレイデバイスなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記各実施の形態において、一の装置に存在する2以上の格納手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記のプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。