特許第6942007号(P6942007)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 東京大学の特許一覧

<>
  • 特許6942007-画像処理装置、及びプログラム 図000002
  • 特許6942007-画像処理装置、及びプログラム 図000003
  • 特許6942007-画像処理装置、及びプログラム 図000004
  • 特許6942007-画像処理装置、及びプログラム 図000005
  • 特許6942007-画像処理装置、及びプログラム 図000006
  • 特許6942007-画像処理装置、及びプログラム 図000007
  • 特許6942007-画像処理装置、及びプログラム 図000008
  • 特許6942007-画像処理装置、及びプログラム 図000009
  • 特許6942007-画像処理装置、及びプログラム 図000010
  • 特許6942007-画像処理装置、及びプログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6942007
(24)【登録日】2021年9月9日
(45)【発行日】2021年9月29日
(54)【発明の名称】画像処理装置、及びプログラム
(51)【国際特許分類】
   G06T 17/10 20060101AFI20210916BHJP
   A61B 6/03 20060101ALI20210916BHJP
   G06T 19/00 20110101ALI20210916BHJP
【FI】
   G06T17/10
   A61B6/03 360G
   G06T19/00 A
【請求項の数】3
【全頁数】16
(21)【出願番号】特願2017-162290(P2017-162290)
(22)【出願日】2017年8月25日
(65)【公開番号】特開2019-40419(P2019-40419A)
(43)【公開日】2019年3月14日
【審査請求日】2020年7月31日
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】斎藤 季
(72)【発明者】
【氏名】金 太一
(72)【発明者】
【氏名】塩出 健人
(72)【発明者】
【氏名】中冨 浩文
(72)【発明者】
【氏名】齊藤 延人
(72)【発明者】
【氏名】小山 博史
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2005−38219(JP,A)
【文献】 特表2007−528529(JP,A)
【文献】 村木茂 ほか,3次元画像解析とグラフィックス技術の医学応用に関するサーベイ,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,2004年10月21日,第J87-D-II巻, 第10号,p.1887-1920,ISSN 0915-1923
(58)【調査した分野】(Int.Cl.,DB名)
G06T 17/10
A61B 6/03
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
仮想的なポリゴンモデルを形成する仮想空間を、所定多角形状の仮想的なセルに分割して、ポリゴンモデルを形成する画像処理装置であって、
処理対象となる前記仮想空間内に分布する値データを受け入れる手段と、
前記値データに基づいて、前記セルの多角形状の各頂点の位置ごとの値を決定する手段と、
前記各セルの辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定し、各辺要素の両端の頂点の位置に対応する前記値に基づいて、セル内を通過するポリゴンの頂点が位置する辺要素の辺識別情報を特定する手段と、
前記特定した辺識別情報を用いて前記ポリゴンモデルを表す情報を生成するポリゴンモデル生成手段と、
を含み、
当該辺識別情報を用いて表されるポリゴンモデルの情報が、可視化及び変形操作を含む所定処理に供される画像処理装置。
【請求項2】
請求項1記載の画像処理装置であって、
前記ポリゴンモデル生成手段は、
前記セルの各々について、当該セルの当該辺要素上のポリゴンの頂点の数をカウントして、各辺要素について当該カウントして得られた値の和を記録する手段と、
互いに隣接する複数のセルのグループを第1段ブロックとして、当該第1段ブロック内に属するセルの前記辺要素上のポリゴンの頂点の数の和を記録する手段と、
互いに隣接する複数の第(i−1)段(iは、i>1なる整数)ブロックのグループを、第i段ブロックとして、当該第i段ブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和を記録する手段と、を含み、
当該記録されたブロック単位でのブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和、または記録されたセル単位でのセル内の辺要素上のポリゴンの頂点の数の和の値を参照して、前記ポリゴンモデルを表す情報から、各ポリゴンの頂点の位置を特定する情報を生成する画像処理装置。
【請求項3】
コンピュータを、
処理対象となる仮想空間内に分布する値データを受け入れる手段と、
前記仮想空間を所定多角形状の仮想的なセルに分割し、前記値データに基づいて、前記セルの多角形状の各頂点の位置ごとの値を決定する手段と、
前記各セルの辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定し、各辺要素の両端の頂点の位置に対応する前記値に基づいて、セル内を通過するポリゴンの頂点が位置する辺要素の辺識別情報を特定する手段と、
前記特定した辺識別情報を用いてポリゴンモデルを表す情報を生成するポリゴンモデル生成手段と、
として機能させ、
当該辺識別情報を用いて表されるポリゴンモデルの情報を、可視化及び変形操作を含む所定処理に供するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、医療用画像等を処理する画像処理装置、及びプログラムに関する。
【背景技術】
【0002】
近年、例えば医療用の診断装置(CT装置等)から得られた画像データを処理して、血管等の組織を三次元的なポリゴンモデルで表現し、三次元の画像として可視化する技術が広く知られている。また、このようなモデル化、可視化のための処理としては、例えば医療分野では、マーチングキューブ法と呼ばれる画像処理が用いられるのが一般的となっている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012−245374号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来のマーチングキューブを用いた画像処理では、可視化は可能であるが、手術時のシミュレーションなどを行うべく組織のポリゴンモデルの変形操作を行うときに、次のような問題が生じる。
【0005】
すなわち、通常のマーチングキューブ法では、仮想空間に四面体のセルをマトリクス状に配列し、この仮想空間内に、複数の画像データに基づいて数値(例えば画像データの輝度の値)を設定する。そして、上記各セルについて、所定の値の面(等値面)が含まれるか否かを決定し、等値面が含まれるとされたセルについては、等値面を特定する情報を生成する。
【0006】
ここで、互いに隣接する一対のセルには同じ位置に配される辺(共通辺と呼ぶ)が含まれる。具体的には図10に例示するように、互いに隣接するセルA,Bにおいては、セルAの底面を構成する辺A1からA4と、セルBの上面を構成する辺B5からB8とが共通辺として含まれる。しかしながら、上記通常のマーチングキューブ法では、各セルについて独立して等値面の設定を行うため、例えばセルAについて設定した等値面が辺A1上の点Axを横切ると判断されたときには、当該等値面は、セルBの、辺A1に対する共通辺である辺B5上の点Bxも同様に横切ることとなる。ここで、点Axと点Bxとは、上記仮想空間内の同じ点であるにも関わらず、マーチングキューブ法では、セルごとに処理を行ってしまうので、互いに異なる点として識別されて処理に供される。
【0007】
このことは、可視化のみに用いる場合には通常、問題とならないが、このポリゴンモデルに対して頂点の編集操作、例えば変形操作を行う場合、点Axの位置を変化させるときには、対応する点Bxを探索して、当該点Bxについても点Axと同じように位置を変化させなければならない。
【0008】
このため、変形操作の処理負荷が大きくなり、リアルタイムに頂点の編集操作を行う等の処理が困難となる場合があった。また、頂点の編集操作に先立って同一座標にある頂点を統合する処理を行う場合も、その処理負荷が大きくなっていた。
【0009】
本発明は上記実情に鑑みて為されたもので、頂点の編集操作等の画像処理負荷を軽減できる画像処理装置、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0010】
上記従来例の問題点を解決する本発明は、仮想的なポリゴンモデルを形成する仮想空間を、所定多角形状の仮想的なセルに分割して、ポリゴンモデルを形成する画像処理装置であって、処理対象となる前記仮想空間内に分布する値データを受け入れる手段と、前記値データに基づいて、前記セルの多角形状の各頂点の位置ごとの値を決定する手段と、前記各セルの辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定し、各辺要素の両端の頂点の位置に対応する前記値に基づいて、セル内を通過するポリゴンの頂点が位置する辺要素の辺識別情報を特定する手段と、前記特定した辺識別情報を用いて前記ポリゴンモデルを表す情報を生成するポリゴンモデル生成手段と、を含み、当該辺識別情報を用いて表されるポリゴンモデルの情報が、可視化及び変形操作を含む所定処理に供されることとしたものである。
【発明の効果】
【0011】
本発明によると、変形操作等の画像処理負荷を軽減できる。
【図面の簡単な説明】
【0012】
図1】本発明の実施の形態に係る画像処理装置の構成例を表すブロック図である。
図2】本発明の実施の形態に係る画像処理装置の一例を表す機能ブロック図である。
図3】本発明の実施の形態に係る画像処理装置が設定するセル、及び辺要素の例を表す説明図である。
図4】本発明の実施の形態に係る画像処理装置による仮頂点識別情報の設定例を表す説明図である。
図5】本発明の実施の形態に係る画像処理装置の動作例を表すフローチャート図である。
図6】本発明の実施の形態に係る画像処理装置の動作例を表す説明図である。
図7】本発明の実施の形態に係る画像処理装置の動作例を表すもう一つの説明図である。
図8】本発明の実施の形態に係る画像処理装置による処理と従来例の処理との対比を表す説明図である。
図9】本発明の実施の形態に係る画像処理装置の効果を表す説明図である。
図10】従来の処理における頂点の設定方法を表す説明図である。
【発明を実施するための形態】
【0013】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置1は、図1に例示するように、制御部11、記憶部12、操作部13、表示部14、及びインタフェース部15を含んで構成される。
【0014】
制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態において、この制御部11は、仮想的なポリゴンモデルを形成する仮想空間を、所定多角形状の仮想的なセルに分割して、ポリゴンモデルを形成する処理と、当該ポリゴンモデルの情報を用いた、可視化及び頂点の編集操作(変形操作等)の所定処理とを実行する。
【0015】
ここでポリゴンモデルを形成する処理では、この制御部11は、処理対象となる仮想空間内に分布する値データを受け入れる。この値のデータは例えばCTやMRI等の医療機器により得られる画像データ等である。また制御部11は、この値データに基づいて、上記セルの多角形状の各頂点の位置ごとの値を特定し、各セルの辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定し、各辺要素の両端の頂点の位置に対応する値に基づいて、ポリゴンが通過する辺要素(このポリゴンと辺要素との交点はポリゴンの頂点となる)の辺識別情報を特定する。制御部11は、そして、特定した辺識別情報を用いてポリゴンモデルを表す情報を生成する。この制御部11の具体的な処理の内容については、後に述べる。
【0016】
記憶部12は、制御部11により実行されるプログラムを格納している。このプログラムは、コンピュータ可読、かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。また本実施の形態において、この記憶部12は、制御部11のワークメモリとしても動作する。
【0017】
操作部13は、キーボードやマウス等であり、利用者の指示入力を受け入れて、制御部11に対して当該指示入力の内容を出力する。表示部14は、ディスプレイ等であり、制御部11から入力される指示に従って情報を表示出力する。
【0018】
インタフェース部15は、USB(Universal Serial Bus)等のインタフェースであり、外部の装置からデータを受け入れて制御部11に出力する。またこのインタフェース部15は、制御部11から入力される指示に従って、外部の装置に対して指示された情報を出力してもよい。
【0019】
ここで本実施の形態の制御部11の動作について説明する。本実施の形態の制御部11は、記憶部12に格納されたプログラムを実行することにより、機能的には、図2に例示するように、ポリゴンモデル生成部20と、描画処理部30とを含んで構成されている。ここでポリゴンモデル生成部20は、データ受入部21と、セル設定部22と、辺要素設定部23と、頂点仮識別情報取得部24と、ポリゴンモデル設定部25とを含んで構成される。
【0020】
ポリゴンモデル生成部20のデータ受入部21は、本実施の形態の一例では、CTやMRI等の医療機器により得られる画像データを受け入れる。これらの画像データは一般的に複数枚の画像を含み、人体内の組織の関する三次元的な形状を表現可能なものである。このようにCTやMRI等により得られた画像データから三次元的な空間内の各点での画素値(処理対象となる仮想空間内に分布する値データ)を得る方法は、広く知られているので、ここでの詳しい説明は省略する。
【0021】
セル設定部22は、画素値が設定された空間(処理対象となる仮想空間)内に、所定多角形状の仮想的なセルを設定する。具体的にここでは仮想空間は大きさがL×L×Lの正六面体状の空間とし、当該正六面体のいずれかの頂点を原点として、当該原点を含む正六面体の互いに直交する3つの辺の方向をそれぞれX,Y,Z軸方向としてXYZ直交座標系を設定するものとする。セル設定部22は、例えばセルの形状を大きさがl×l×l(lはLの約数であるものとする)の正六面体とし、配列方向をX,Y,Z軸の各軸方向に合わせてセルを配列する。以下の説明では、原点の位置にあるセルを(0,0,0)と表し、このセルのX軸方向の法線を有する面と面を共有する隣接するセルを(1,0,0)などと表すものとする。つまりこの原点の位置にあるセルからX軸方向にξ番目、Y軸方向にη番目、Z軸方向にζ番目にあるセルを(ξ,η,ζ)と表す。また、図では手前側左下の点を原点として鉛直上方をZ軸正の方向、右方向をX軸正の方向、奥側の方向をY軸正の方向とする。
【0022】
またセル設定部22は、各セルに、それぞれ固有のセル識別情報を設定しておく。具体的には、このセルは立方体(正六面体)の形状を有し、セル設定部22は、当該立方体形状のセルを、仮想空間内に、隙間なく三次元的なマトリクス状に配列する。またこのセル設定部22は、データ受入部21が受け入れた値データに基づいて、セルの各頂点の位置に対応する値を決定して、当該値を記録する。
【0023】
辺要素設定部23は、セルの三次元形状の辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定する。この辺要素設定部23は、具体的にセルを立方体としている場合は、図3に例示するように、立方体のセルに属する辺0からXIの辺識別情報(ここでの説明では符号と区別するため、便宜的に0以外の数字をローマ数字で示すが、制御部11の処理上はアラビア数字などで管理してよい)、所定の頂点(例えばセルの立方体の頂点のうち、底面(Z軸方向に法線を有する面のうち原点に近い側の面)の、X,Y座標の値が最も小さくなる点(図3のP))を共有する互いに直交する三辺(図3の辺0,III,VIII)を辺要素とする。これにより図3のセルAの辺IXは右側(X軸正の側)に隣接するセルBの辺要素VIIIとして表現され、また、セルAの辺IVは、上側(Z軸正の側)に隣接するセルCの辺要素0として表現されることとなる。なお、ここでは、底面のX軸に平行な辺のうち、原点に近い側の辺から順に上方(Z軸正の側)から見て反時計回りに辺0,I,II,III、上面(Z軸方向に法線を有する面のうち原点から遠い側の面)内のX軸に平行な辺のうち、原点に近い側の辺から順に上方(Z軸正の側)から見て反時計回りに辺IV,V,VI,VIIとし、点PからZ軸に平行な辺を辺VIII、手前側の面(辺0,IV,VIIIを有する面)のX軸正の側にあるZ軸に平行な辺を辺IX、右側側面(辺I,V,IXを有する面)のY軸正の側にあるZ軸に平行な辺を辺X、これら辺0からXとは異なる六面体の最後の一辺を辺XIとしている(図3)。
【0024】
また、処理対象となる仮想空間内でX軸正の側の端、Y軸正の側の端、Z軸正の側の端にあるセルの辺I,II,IV,V,VI,VII,IX,X,XIは、それぞれ存在しないものとして扱ってもよい。
【0025】
頂点仮識別情報取得部24は、ポリゴンの頂点が位置する辺要素の辺識別情報を特定する。具体的に頂点仮識別情報取得部24は、セルの各頂点に対応する値と、予め指定された値(ポリゴンの面に相当する位置での値)とを比較し、各セルの各頂点がポリゴンモデルで規定される立体の内側にあるか外側にあるかを判断し、セルの頂点ごとに、当該判断の結果を記録する。
【0026】
そしてこの頂点仮識別情報取得部24は、各セルを順次注目セルとして選択し、選択している注目セルについてセルの頂点がポリゴンで表される立体の内側にあるか外側にあるかを表す256通りのパターン(実質的には対称性のため15通りのパターン)のいずれのパターンに相当するかを判断し、当該判断したパターンに対応する、ポリゴン(例えば三角形)と、当該ポリゴンと注目セルの辺との交差する点とを特定する。この方法は、従来のマーチングキューブ法における処理と同様であるので、ここでの詳しい説明を省略する。この段階で、頂点仮識別情報取得部24は、描画するべきポリゴンを特定し、各ポリゴンに固有のポリゴン識別情報を発行し、当該発行したポリゴン識別情報を記録する。
【0027】
本実施の形態において頂点仮識別情報取得部24は、ここで特定されたポリゴンごとに、ポリゴンと注目セルの辺要素との交差する点(注目セルの辺要素上にあるポリゴンの頂点)を識別する、仮識別情報(注目セルの辺要素上にあるポリゴンの頂点を仮に識別する情報)を発行する。このとき本実施の形態において特徴的なことの一つは、このポリゴンの頂点を仮に識別する仮識別情報として従来のようにセルごとの辺識別情報を用いることに代えて、注目セルまたはそれに隣接するセルの辺要素を特定する辺識別情報を用いることである。ここで辺識別要素は当該辺要素が属するセルを特定するセル識別情報と辺識別情報とを含む。
【0028】
すなわち、図4に例示するように、具体的に注目セルαに対し、図中でその上方に隣接するセルβと、図中で右側に隣接するセルγと、このセルγの上方に隣接するセルδとが配列されているとき、注目セルαの図4に示す2つの頂点P,Qが立体の内部にあるものと判断され、他の頂点が立体の外部にあるものと判断されたとする。このときには、2つのポリゴン(三角形)A,Bがこの注目セル内に存在するポリゴンとなるが、本実施の形態では、これらの三角形の頂点(セルの辺との交点)を表す仮識別情報として、セル識別情報と、セルごとの辺要素を識別する辺識別情報とを用いるものとする。
【0029】
従って図4の例の場合、頂点仮識別情報取得部24は、ポリゴンAについては、セルαの辺0,III,VIIIに各頂点があるものとして記録する。また、頂点仮識別情報取得部24は、ポリゴンBについてはセルβの辺0、セルγの辺VIII、セルδの辺IIIに各頂点があるものとして記録する。また頂点仮識別情報取得部24は、隣接するセルγを注目セルとして処理をした場合に、ポリゴンA,Bとは異なる別のポリゴンCを、このセルγ内に特定することとなるが、このポリゴンCの頂点の一つは、セルγの辺VIIIにあるものとして記録されることとなる。すなわち、ポリゴンBの頂点の一つと、ポリゴンCの頂点の一つとが同じ仮識別情報(セルγの辺VIIIにあるものとする情報)で特定されることとなる。
【0030】
このように、本実施の形態では、各ポリゴンについて、共通する頂点については、同じ仮識別情報が付与されるよう、まずはセル識別情報と辺要素を識別する辺識別情報とを用いて抽象的に(実際のレンダリングにおいては各頂点は互いに異なる固有の番号等で識別されるので、ここでは「抽象的」と表現している)表される。すなわち、ここで特定される仮識別情報は、いわば抽象識別子として機能する。
【0031】
ポリゴンモデル設定部25は、頂点仮識別情報取得部24がポリゴンごとに特定した辺識別情報を用いて、ポリゴンモデルを表す情報を生成する。すなわちこのポリゴンモデル設定部25は、頂点仮識別情報取得部24が特定した複数のポリゴンについて、各ポリゴンの各頂点を表す仮識別情報(この情報にはセル識別情報とセルごとの辺要素を識別する辺識別情報とを含む)を含むポリゴンモデルの情報を生成する。
【0032】
本実施の形態においては、ここで生成したポリゴンモデルの情報を用いて、可視化及び変形操作を含む所定処理を実行する。具体的に制御部11は、まず、ポリゴンモデルの情報に含まれる、各ポリゴンの仮識別情報を、実際の描画に用いる頂点識別情報(頂点の位置を表す情報、いわば実識別情報)へ変換する。
【0033】
この変換処理は、仮識別情報ごとに固有の番号や文字列等の識別情報を、頂点識別情報として発行することで行うことができる。このとき描画等の処理のためには、ポリゴンとその頂点を表す頂点識別情報とを関連付ける必要がある。そこで本実施の形態では、制御部11は、次のようにしてこの関連付け処理を達成する。
【0034】
すなわち制御部11は、ポリゴンモデル設定部25の処理として、ヒストグラムピラミッド(Christopher Dyken, et.al., High-speed Marching Cubes using Histogram Pyramids, Computer Graphics Forum, Vol.27, issue 8, December 2008, pages 2028-2039)と同様の方法を用いて、仮識別情報を頂点識別情報へ変換し、さらに変換により得た頂点識別情報をヒストグラムピラミッドの方法を用いて、ポリゴン識別情報に関連付ける。
【0035】
具体的に、制御部11は、ヒストグラムピラミッドと同様の方法により、仮識別情報を頂点識別情報へ変換する。すなわち制御部11は、セルの各々を注目セルとして順次選択し、選択した注目セルの辺要素を所定の選択順(例えばセルが正六面体であれば、辺0,辺III,辺VIIIの順)に、当該辺要素上のポリゴンの頂点の数をカウントしつつ累算する。そして制御部11は、各辺要素について当該カウントして得られた値の和(累算値)を、注目セルについてのカウント値(ベースレベルカウント値)として記録する。
【0036】
さらに制御部11は、予め定められた位置から順に、互いに隣接する複数のセル(例えば互いに隣接するn×n×n個のセル)のグループを複数設定し、この設定したグループを第1段ブロックとして、当該第1段ブロックの各々について、第1段ブロックに属するセル内の辺要素上のポリゴンの頂点の数の和、つまり、第1段ブロックに属するセルについてのベースレベルカウント値の和を、第1段ブロックについてのカウント値(レベル1カウント値)として記録する。
【0037】
ここで予め定めた位置は、例えば、仮想空間の原点にあるセル(0,0,0)とすればよい。またグループの形成順は、原点のセルを含むn×n×n個のセルをグループとし、次に、このグループのX軸方向に隣接するセルを含むn×n×n個のセルをグループとし…と選択してゆき、X軸方向に隣接するセルがなくなったら、X=0に戻って、既に形成したグループにY軸方向に隣接するセルを含むn×n×n個のセルをグループとして、再度このグループのX軸方向に隣接するセルを含むn×n×n個のセルをグループとし…と選択していく。この処理を繰り返して、Y軸方向に隣接するセルがなくなったら、X=0、Y=0に戻って、既に形成したグループにZ軸方向に隣接するセルを含むn×n×n個のセルをグループとして、X軸方向に移動しつつグループを形成する処理から繰り返していく(いわば、三次元的なスキャンライン順にグループ化を行えばよい)。この処理により、各セルが順番にグループに含められる。
【0038】
制御部11は、以下、上記の予め定められた位置から上記の形成順に、互いに隣接する複数の第(i−1)段(iは、i>1なる整数)ブロックのグループ(例えば互いに隣接する2×2×2個の第(i−1)段ブロックのグループ)を設定する。そして制御部11は、この設定したグループを第i段ブロックとして、当該第i段ブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和を、第i段ブロックについてのカウント値(レベルiカウント値)として記録する処理を、i=2,3…とインクリメントしつつ実行し、ブロックの数が所定の数未満となるまで(例えばグループ化不能となるまで、一例としては2×2×2未満、あるいは「1」となるまで)繰り返す。この段階を以下、便宜的に最終レベルと呼ぶ。ここでのグループの形成順も、セルのグループの形成順と同様とする。
【0039】
制御部11は、さらに、ここで記録されたブロック単位でのブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和、または記録されたセル単位でのセル内の辺要素上のポリゴンの頂点の数の和の値を参照して、ポリゴンの頂点の仮識別情報を、実際の描画等の処理に用いる頂点識別情報に変換する。
【0040】
すなわち制御部11は、ポリゴンの頂点の仮識別情報ごとに、次の処理を行う。制御部11は、変換の対象となる仮識別情報であるセル識別情報と辺要素識別情報とを取得し、当該取得したセル識別情報で識別されるセルが含まれる、上記の処理で生成した最終レベルのブロック単位でのブロックを特定する。
【0041】
制御部11は、当該特定した最終レベル(第N段)のブロックを注目ブロックとして、注目ブロックに含まれる第N−1段ブロックを特定する。制御部11は、特定した第N−k段ブロック(k=0,1,…,N−1なる整数)のうち、取得したセル識別情報で識別されるセルが含まれるブロックを特定する。制御部11は第N−k段での注目ブロックに含まれる第N−k−1段ブロックを、形成順に選択しつつ、取得したセル識別情報で識別されるセルが含まれるブロックが選択されるまでに選択したブロック(取得したセル識別情報で識別されるセルが含まれるブロックそのものは除く)に割り当てられた、ポリゴンの頂点の数の和の値を累算する。そしてこの累算値を第N−k−1段ブロックの予備値として記録しておく。制御部11は、取得したセル識別情報で識別されるセルが含まれるブロックを、第N−k−1段ブロックの注目ブロックとする。そして制御部11は、この第N−k−1段ブロックの注目ブロックに含まれる第N−k−2段ブロック(k<N−1のとき)を特定する。制御部11は、k=N−1となるまで、kを「1」ずつインクリメントしつつこの処理を繰り返す。
【0042】
制御部11は、k=N−1となると(取得したセル識別情報で識別されるセルを含む第1段グループが見いだされると)、当該見いだした第1段グループ内のセルを、上記形成順に選択しつつ、取得したセル識別情報で識別されるセルが選択されるまでに選択したセル(取得したセル識別情報で識別されるセルそのものは除く)についての、ポリゴンの頂点の数の和の値を累算する。そしてこの累算値を第1段ブロックの予備値として記録する。
【0043】
さらに制御部11は、取得したセル識別情報で識別されるセル内の辺要素を、上記選択順に選択しつつ、セル識別情報とともに取得した辺要素識別情報で識別される辺要素が選択されるまでに選択した辺要素上のポリゴンの頂点の数の和の値を累算する。そしてこの累算値を辺要素予備値として記録する。
【0044】
制御部11は、この処理で記録した辺要素予備値、及び第i段ブロックの予備値(i=1,2…N−1)の総和が表す値を、取得したセル識別情報と辺要素識別情報で特定される仮識別情報に対応する頂点識別情報として出力する。これにより、仮識別情報のそれぞれが、連番の頂点識別情報に関連付けられる。
【0045】
制御部11は、さらに記録しているポリゴン識別情報で識別されるポリゴンごとに、当該ポリゴンの各頂点の頂点識別情報を取得する。この処理は、従来通りのヒストグラムピラミッドの方法により実行できるので、ここでの詳しい説明は省略する。
【0046】
制御部11の描画処理部30は、このようにして生成したポリゴンモデルの情報、及びポリゴン識別情報と当該ポリゴン識別情報で識別されるポリゴンの各頂点を識別する頂点識別情報との組を用いて、各ポリゴンの描画を行う。この描画処理部30における処理は、既に各ポリゴンの各頂点と頂点識別情報との組が得られているので、従来と同様の方法により実行できる。本実施の形態において特徴的なことの一つは、この段階で設定されている頂点識別情報が、そもそも重複を排除して規定されたセル識別情報と辺要素識別情報との組に対して固有に割り当てたものであるので、仮想空間内の同じ点にある頂点については同じ頂点識別情報となっていることである。
【0047】
従って、制御部11がポリゴンを変形する処理を実行する場合(頂点の移動や頂点の削除等を行う場合)にも、所定の頂点識別情報で識別される頂点を変形し、当該頂点識別情報により識別される頂点を有するポリゴンの描画を行えばよいので、移動や削除の対象となった頂点ともともと同じ位置にあった別の識別子で識別される頂点を探索するといった処理が不要となり、処理の効率を向上でき、リアルタイムの変形や描画の処理が容易になる。
【0048】
さらに、本実施の形態の制御部11の処理では、仮識別情報の設定の処理はセルごとに、他のセルでの実行結果を参照せずに実行でき、また、仮識別情報から頂点識別情報への変換の処理も、仮識別情報ごとに、他の仮識別情報に係る処理結果を参照せずに実行できる。またポリゴン識別情報と頂点識別情報との関連付けの処理も、ヒストグラムピラミッドの処理を利用するので、ポリゴンごとに独立して(他のポリゴンに係る処理を参照せずに)実行でき、並列化が容易となっている。さらに仮識別情報の決定や頂点識別情報への変換の処理においてループの処理はあるものの、条件分岐によりまったく異なる処理を実行する必要がなく、処理負荷が軽減されている。
【0049】
本実施の形態の画像処理装置は、以上の構成を備えており、次のように動作する。なお、以下では説明のため、仮想空間を三次元の空間ではなく、二次元的な空間であるものとする。なお、このように次元を異ならせても一般性が失われることはない。
【0050】
この例では、画像処理装置1は、図5に示すように処理対象となる仮想空間内に分布する値データを受け入れる(S1)。この値のデータは例えばCTやMRI等の医療機器により得られる画像データ等である。画像処理装置1は、この値データに基づいて、仮想空間内に配列したセルの多角形状の各頂点の位置ごとの値を特定する(S2)。
【0051】
画像処理装置1は、各セルの辺のうち、互いにその位置が重なり合わない辺を辺要素として、各辺要素を識別する辺識別情報を設定する(図6)。ここでは仮想空間は二次元の空間としているので、セルは例えば正方形となる。そこで各セルの辺要素として、正方形の左側の辺(辺IIIとする)と下側の辺(辺0とする)とを用いる。図6では、左右方向の軸をX軸(右方向を正とする)、上下方向の軸をY軸(下方を正とする)としている。各セルのセル識別情報は、左上隅を原点(0,0)として、この原点に頂点を有するセル(左上隅にあるセル)のセル識別情報を「0」として、この原点に頂点を有するセルからX軸方向にx番目、Y軸方向にy番目に配置されているセル((x,y)の位置にあるセル)のセル識別情報を(xmax×y+x+1)なる整数で表すものとする。なお、xmaxは、X軸方向に配列されたセルの数(図6では「8」)である。
【0052】
画像処理装置1は、各セルの各辺要素の両端の頂点の位置に対応する値に基づいて、ポリゴンが通過する辺要素の辺識別情報を特定する(S3)。すなわち画像処理装置1は、マーチングキューブ法の処理により、処理S2にて特定した、セルの各頂点に対応する値と、予め指定された値(ポリゴンの面に相当する位置での値)とを比較し、各セルの各頂点が三次元ポリゴンモデルで規定される立体の内側にあるか外側にあるかを判断し、セルの頂点ごとに、当該判断の結果を記録する。そして画像処理装置1は、各セルを順次注目セルとして選択し、選択している注目セルについてセルの頂点がポリゴンで表される立体の内側にあるか外側にあるかを表す15通りのパターンのいずれのパターンに相当するかを判断し、当該判断したパターンに対応する、ポリゴン(例えば三角形)を特定するとともに、当該ポリゴンと注目セルの辺との交差する点(ポリゴンの頂点)を特定する。
【0053】
また画像処理装置1は、各ポリゴンに固有のポリゴン識別情報を発行し、当該発行したポリゴン識別情報を記録する。
【0054】
画像処理装置1は、また、特定したポリゴンと注目セルの辺要素との交差する点(注目セルの辺要素上にあるポリゴンの頂点)を識別する、仮識別情報(注目セルの辺要素上にあるポリゴンの頂点を仮に識別する情報)を発行する(S4)。図6に例示した二次元の例を用いて、この仮識別情報について説明すると、セル識別情報「9」で識別されるセル((1,1)の位置にあるセル)では等値面は辺0と辺Iとを通過しているが、各セルの辺要素を用いてこれらの各点を表すと、
セル識別情報「9」の辺0
セル識別情報「10」((2,1)の位置にあるセル)の辺III
ということとなり、画像処理装置1は、仮識別情報として、{セル識別情報「9」,辺0}、{セル識別情報「10」,辺III}の2つを発行して記録する。
【0055】
また、セル識別情報「10」で識別されるセルに注目したときには、画像処理装置1は、仮識別情報として、{セル識別情報「10」,辺III}、{セル識別情報「3」,辺0}の2つを発行して記録する。
【0056】
このように従来であれば、同じ位置にある{セル識別情報「9」,辺I}の頂点と、{セル識別情報「10」,辺III}の頂点とは異なる頂点として識別されるものであるところ、本実施の形態の方法によれば、この位置の点は、共通した{セル識別情報「10」,辺III}として(抽象的に)表現され、共通した識別情報が割り当てられる。
【0057】
画像処理装置1は、このようにして、各セルについての処理により、セル内のいずれかの辺上のセル内のポリゴンの頂点を、いずれかのセルの辺要素を識別する辺要素識別情報により表現して記録し、ポリゴンモデルの情報を生成する。そして画像処理装置1は、当該生成したポリゴンモデルの情報を用いて、可視化及び変形操作を含む所定処理を実行する。
【0058】
この所定処理の実行のために、画像処理装置1は、まず、ポリゴンモデルの情報に含まれる、各ポリゴンの頂点に係る仮識別情報を、実際の描画に用いる頂点識別情報へ変換する(S5)。
【0059】
画像処理装置1は、セルの各々を注目セルとして順次選択し、また選択した注目セルの辺要素を所定の選択順(例えばセルの、辺0,辺IIIの順)に、当該辺要素上のポリゴンの頂点の数をカウントしつつ累算する。そして画像処理装置1は、各辺要素について当該カウントして得られた値の和(累算値)を、注目セルについてのカウント値(ベースレベルカウント値)として記録する(図7(a))。
【0060】
なお、説明の都合上、図6図7のそれぞれにおける例は一致していない。つまり図6のポリゴンの例と図7におけるポリゴンの例とは異なる。
【0061】
さらに画像処理装置1は、予め定められた位置(図7(a)の原点O)から順に、互いに隣接する複数のセル(例えば互いに隣接する2×2個のセル)のグループを複数設定する(図7(a)においては実線でグループを区別する)。そして画像処理装置1は、設定したグループを第1段ブロックとして、当該第1段ブロックの各々について、第1段ブロックに属するセル内の辺要素上のポリゴンの頂点の数の和、つまり、第1段ブロックに属するセルについてのベースレベルカウント値の和を、第1段ブロックについてのカウント値(レベル1カウント値)として記録する(図7(b))。
【0062】
ここでは原点のセルを含む2×2個のセルをグループとし、次に、このグループのX軸方向に隣接するセルを含む2×2個のセルをグループとし…と選択してゆき、X軸方向に隣接するセルがなくなったら、X=0に戻って、既に形成したグループにY軸方向に隣接するセルを含む2×2個のセルをグループとして、再度このグループのX軸方向に隣接するセルを含む2×2個のセルをグループとし…と選択していく。この処理により、各セルが順番にグループに含められる。
【0063】
画像処理装置1は、予め定められた位置から上記の形成順に、互いに隣接する複数の第1段ブロックのグループ(例えば互いに隣接する2×2個の第1段ブロックのグループ)を設定する(図7(b)においても実線でグループを区別する)。そして画像処理装置1は、この設定したグループを第2段ブロックとして、当該第2段ブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和を、第2段ブロックについてのカウント値(レベル2カウント値)として記録する(図7(c))。
【0064】
画像処理装置1は、次に、予め定められた位置から上記の形成順に、互いに隣接する複数の第2段ブロックのグループ(例えば互いに隣接する2×2個の第2段ブロックのグループ)を設定する(図7(c)においても実線でグループを区別する)。そして画像処理装置1は、この設定したグループを第3段ブロックとして、当該第3段ブロック内に属するセル内の辺要素上のポリゴンの頂点の数の和を、第3段ブロックについてのカウント値(レベル3カウント値)として記録する(図7(d))。ここで第3段ブロックの数は「1」となり、これ以上のグループ化が不能であるので、この第3段を最終レベルとする。
【0065】
次に画像処理装置1は、ポリゴンの頂点の仮識別情報ごとに、仮識別情報であるセル識別情報と辺要素識別情報とを取得し、当該取得したセル識別情報で識別されるセルが含まれる、上記の処理で生成した最終レベルのブロック単位でのブロックを特定する。
【0066】
ここでは最終レベルではブロックは1つだけであるので、どの仮識別情報についてもこのブロックを注目ブロックとして、注目ブロックに含まれる第2段ブロックを特定する。画像処理装置1は、特定した第2段ブロックのうち、取得したセル識別情報で識別されるセルが含まれるブロックを特定する。以下にセル識別情報「24」の辺要素、「辺0」にある頂点について、頂点識別情報を生成する例について説明する。
【0067】
この例では、画像処理装置1は、最終ブロック(第3段ブロック)の単一のブロックを注目ブロックとして、この注目ブロックに含まれる第2段ブロックを特定する。図7の例では、第3段ブロックの注目ブロックには、第2段ブロックのすべてのブロックが含まれるので、第2段ブロックのすべてを特定する。
【0068】
画像処理装置1は、第2段ブロックで特定したブロックを、形成順に選択しつつ、取得したセル識別情報で識別されるセルが含まれるブロックが選択されるまでに選択したブロック(取得したセル識別情報で識別されるセルが含まれるブロックそのものは除く)に割り当てられた、ポリゴンの頂点の数の和の値を累算する。
【0069】
ここでの例であるセル識別情報「24」のセルは、第2段ブロックでは、右上のブロックに含まれる(どのセルがどのブロックに含まれるかについては、ブロックの形成時にブロックごとに記録しておく等の広く知られた処理により判断できるので、ここでの詳しい説明を省略する)ため、形成順に、セル識別情報「24」で識別されるセルが含まれるブロックが選択されるまでに選択したブロックは左上のブロックのみとなる。そこで画像処理装置1は、この左上のブロックに割り当てられた、ポリゴンの頂点の数の和の値「9」を第2段ブロックの予備値として記録する。
【0070】
さらに画像処理装置1は、セル識別情報「24」のセルを含む第2段ブロックの右上のブロックに含まれる第1段ブロックを特定する。ここでは画像処理装置1は、第1段ブロックの第1行の第3列,第4列目、第2行の第3列,第4列目のブロックを特定する。画像処理装置1は、第1段ブロックで特定したブロックを、形成順に選択しつつ、取得したセル識別情報で識別されるセルが含まれるブロックが選択されるまでに選択したブロック(取得したセル識別情報で識別されるセルが含まれるブロックそのものは除く)に割り当てられた、ポリゴンの頂点の数の和の値を累算する。
【0071】
ここでの例であるセル識別情報「24」のセルは、第1段ブロックでは、第2行目の第4列目のブロックに含まれるため、形成順に、セル識別情報「24」で識別されるセルが含まれるブロックが選択されるまでに選択したブロックは、第1段ブロックの第1行目の第3列,第4列目の各ブロック、及び、第2行目の第3列目のブロックとなる。そこで画像処理装置1は、これらのブロックに割り当てられた、ポリゴンの頂点の数の和の値「3」,「1」,「2」の和「6」を第1段ブロックの予備値として記録する。
【0072】
さらに画像処理装置1は、セル識別情報「24」のセルを含む第1段ブロックのブロックに含まれるセル(ベースレベル)を特定する。ここでは、セル識別情報で「23」,「24」,「31」,「32」の各セルが特定される。画像処理装置1は、ここで特定したセルを、ブロックの形成順(セルの識別情報が小さい順)に選択しつつ、取得したセル識別情報で識別されるセルが選択されるまでに選択したセルに割り当てられた、ポリゴンの頂点の数の和の値を累算する。
【0073】
ここでの例であるセル識別情報「24」のセルを選択するまでには、セル識別情報「23」のセルのみが選択されるので、画像処理装置1は、セル識別情報「23」のセルに割り当てられた値「0」を、辺要素予備値として記録する。
【0074】
画像処理装置1は、この処理で記録した辺要素予備値、及び第i段ブロックの予備値(i=1,2…N−1)の総和が表す値を求める。ここでは、辺要素予備値が「0」、第1段ブロックの予備値が「6」、第2段ブロックの予備値が「9」であるので、画像処理装置1は、セル識別情報「24」の辺要素、「辺0」にある頂点の頂点識別情報を、これらの和である「15」とする。画像処理装置1は、仮識別情報のそれぞれについて、上述の方法で頂点識別情報を求める。
【0075】
画像処理装置1はさらに、記録しているポリゴン識別情報で識別されるポリゴンごとに、当該ポリゴンの各頂点の頂点識別情報を取得する。この処理は、従来通りのヒストグラムピラミッドの方法により実行すればよい。そして画像処理装置1は、以下は従来と同様の方法により、各ポリゴンの描画処理を実行する。
【0076】
また画像処理装置1は、利用者から頂点を特定する頂点識別情報とともに、当該頂点の移動または、当該頂点の削除の指示を受け入れると、当該頂点識別情報で識別される頂点の仮想空間内での位置座標を指示に従って移動し、または当該頂点を削除して、当該頂点を含むポリゴンを削除する処理を行う。
【0077】
図8に、頂点を削除する処理における従来例と本実施の形態との対比例を示す。従来のマーチングキューブの方法によれば、図8(a)に示すセル1(セル識別情報「1」のセルを、図においてセル1等と略記している)の頂点Aと、セル2の頂点A′とは、同じ位置にあるにも関わらず、セルごとに頂点を識別する情報が付与されるので、セル1の頂点Aと、セル2の頂点A′とには互いに異なる頂点を識別する情報が設定される。
【0078】
ここで利用者がセル1の頂点Aを削除する指示を行うと、従来例の画像処理装置では、セル1における頂点Aを含むポリゴンを削除するが、セル2における頂点A′を含むポリゴンは削除しない。このため、頂点Aの位置にある頂点を削除するという利用者の意図通りにならず、これを利用者の意図通りに動作させるためには、削除の対象となった頂点Aと同じ位置にある頂点を探索する処理が必要となって、変形等の処理に時間がかかる結果となる。
【0079】
一方、本実施の形態の方法によると、セル1の頂点Aも、セル2の頂点Aも、ともに、セル1の辺要素「0」上の点として抽象的に表現されてから、頂点識別情報(A)に変換されているため、共通の頂点識別情報「A」が付与される。
【0080】
このため利用者がセル1の頂点Aを削除する指示を行うと、セル2内において頂点Aを有するポリゴンも削除されることとなり(図8(b))、利用者の意図通りの処理が可能となる。また、1つの頂点識別情報により削除するべきポリゴンが特定できるので、処理負荷も軽減される。
【0081】
併せて、本実施の形態の方法では、全体としてポリゴンの数に対する頂点識別情報の数が膨大とならない(従来の方法ではポリゴンの数に頂点数を乗じた数だけの頂点識別情報が発行される)。これにより、本実施の形態の方法では、描画等の処理負荷も軽減される。
【0082】
具体的に、ポリゴン数に対する、従来一般的な(頂点とポリゴンとの関連付けにヒストグラムピラミッド法を用いない)マーチングキューブによる計算処理(VTK)と、頂点とポリゴンとの関連付けにヒストグラムピラミッド法を用いた場合のマーチングキューブによる計算処理(HPMC)と、本実施の形態の方法による計算処理(ProposedMC)とにおける、同一座標の頂点の統合時間を含む処理時間の相違を図9に示す。
【0083】
図9に例示するように、ポリゴン数が比較的大きい範囲では、VTKに対して本実施の形態による方法は5倍以上(全体平均でも4倍以上)の高速化が図られる。また、ヒストグラムピラミッド法を用いた場合のマーチングキューブ法(HPMC)に対しても3倍以上(全体平均でも3倍以上)の高速化が図られている。
【符号の説明】
【0084】
1 画像処理装置、11 制御部、12 記憶部、13 操作部、14 表示部、15 インタフェース部、20 ポリゴンモデル生成部、21 データ受入部、22 セル設定部、23 辺要素設定部、24 頂点仮識別情報取得部、25 ポリゴンモデル設定部、30 描画処理部。

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10