(57)【特許請求の範囲】
【請求項１】
３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するコンピュータ実施方法であって、
第１の画像データセット及び第２の画像データセットを受信するステップであって、前記第１の画像データセットが、前記複数の２次元断面画像の第１の断面画像を表し、前記第２の画像データセットが、前記複数の２次元断面画像の第２の断面画像を表し、前記第１の断面画像が、３次元軸の１つに沿った前記３次元オブジェクトの第１の位置に対応し、前記第２の断面画像が、前記第１の位置から離れた、前記３次元軸の前記１つに沿った前記３次元オブジェクトの第２の位置に対応し、前記第１の画像データセット及び前記第２の画像データセットの両方が、２次元座標及び画素値を含み、前記第１の断面画像及び前記第２の断面画像の各画素が、前記２次元座標及び前記画素値に関連付けられているステップと、
前記第１の断面画像の前記画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、前記第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、
前記第２の断面画像の前記画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、前記第２の画素セットが、前記所定の画素値範囲内の第２の画素値に関連付けられているステップと、
第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、前記第１の六面体データセットの各々が、前記第１の２次元座標セットの対応する座標で前記第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、
第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、前記第２の六面体データセットの各々が、前記第２の２次元座標セットの対応する座標で前記第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成するステップと、
を含むコンピュータ実施方法。
【請求項２】
前記第１の六面体モデルの各々が、均一な高さを有し、前記第２の六面体モデルの各々が、前記均一な高さを有する、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記均一な高さが、前記３次元軸の前記１つに沿った、前記第１の位置と前記第２の位置との間の距離に対応する、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
前記第１の六面体モデル及び前記第２の六面体モデルの中の互いに隣接する六面体モデルを接合するステップを含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記第１の六面体モデル及び前記第２の六面体モデルの中の前記互いに隣接する六面体モデルを接合する前記ステップが、
前記接合された六面体モデルの閉鎖面の座標を含む面データを生成するステップであって、前記接合された六面体モデルが、前記閉鎖面によって囲まれるステップを含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記面データが、互いに隣接する２つの六面体モデル間の開放面の座標を含まない、請求項５に記載のコンピュータ実施方法。
【請求項７】
前記六面体モデルの前記閉鎖面の各々が、２つの三角形からなる、請求項５に記載のコンピュータ実施方法。
【請求項８】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
前記接合された六面体モデルの除去すべき頂点を特定するステップであって、前記頂点が、前記閉鎖面の３つの三角形の共通頂点であり、前記３つの三角形が互いに直交しているステップと、
前記共通頂点に隣接する頂点を３つの頂点として有する新しい三角形を生成するステップと、
前記頂点及び前記３つの三角形を除去するステップと、
をさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
共通辺を共有する、前記接合された六面体モデルの第１の三角形及び第２の三角形を特定するステップであって、前記第１の三角形及び前記第２の三角形が互いに直交しているステップと、
３つの頂点を有する新しい三角形を生成するステップであって、前記３つの頂点が、前記共通辺から離れた、前記第１の三角形の第１の頂点、前記共通辺から離れた、前記第２の三角形の第２の頂点、及び前記共通辺の第１の端である第３の頂点を含むステップと、
前記共通辺の第２の端、前記第１の三角形、及び前記第２の三角形を除去するステップと、
を含む、請求項７に記載のコンピュータ実施方法。
【請求項１０】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
オフセット頂点を特定するステップであって、前記オフセット頂点が、３つの三角形によって共有されており、前記３つの三角形の各々が、三角形の中心から、前記三角形から離れた、前記オフセット頂点に隣接する頂点までの距離ベクトルを有し、前記３つの三角形の前記各々の前記距離ベクトルが、同じ極性を有するステップと、
前記オフセット頂点に隣接する頂点に前記オフセット頂点をシフトさせるステップと、
前記オフセット頂点をシフトさせる前記ステップの後に、重なった三角形を除去するステップと、
を含む、請求項７に記載のコンピュータ実施方法。
【請求項１１】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
前記接合された六面体モデルの３つの外側三角形を特定するステップであって、前記３つの外側三角形が、共通頂点を共有し、所定の面方向範囲内に配置されているステップと、
前記共通頂点に隣接する頂点を３つの頂点として有する新しい三角形を生成するステップと、
前記共通頂点及び前記３つの三角形を除去するステップと、
を含む、請求項７に記載のコンピュータ実施方法。
【請求項１２】
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップが、
前記接合された六面体モデルの２つの直角三角形を特定するステップであって、前記２つの直角三角形が、共通頂点及び共通辺を共有しており、前記２つの直角三角形の２つの直角が、前記共通頂点に形成されているステップと、
複数の辺の中から最長辺を特定するステップであって、前記複数の辺の各々の端が、前記共通頂点であるステップと、
前記複数の辺の中から最短辺を特定するステップと、
前記最長辺の長さと前記最短辺の長さとの平均値を取得するステップと、
前記共通頂点から離れた、前記最長辺の端に向けて前記共通頂点を前記平均値の半分だけシフトさせるステップと、
を含む、請求項７に記載のコンピュータ実施方法。
【請求項１３】
前記複数の２次元断面画像の第３の断面画像を表す第３の画像データセットを受信するステップであって、前記第３の断面画像が、前記３次元軸の前記１つに沿った、前記３次元オブジェクトの第３の位置に対応するステップと、
前記第３の断面画像の画素から第３の画素セットの第３の２次元座標セットを特定するステップであって、前記第３の画素セットが、前記所定の画素値範囲内の第３の画素値に関連付けられているステップと、
第３の六面体モデルを表す第３の六面体データセットを生成するステップであって、前記第３の六面体データセットの各々が、前記第３の２次元座標セットの対応する座標で前記第３の六面体モデルの対応する六面体モデルに関連付けられているステップと、
をさらに含み、
前記３次元モデルデータが、前記第３の六面体データセットにさらに基づいて生成される、請求項１に記載のコンピュータ実施方法。
【請求項１４】
３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するための命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令が、プロセッサによって実行されたときに前記プロセッサに、
第１の画像データセット及び第２の画像データセットを受信するステップであって、前記第１の画像データセットが、前記複数の２次元断面画像の第１の断面画像を表し、前記第２の画像データセットが、前記複数の２次元断面画像の第２の断面画像を表し、前記第１の断面画像が、３次元軸の１つに沿った前記３次元オブジェクトの第１の位置に対応し、前記第２の断面画像が、前記第１の位置から離れた、前記３次元軸の前記１つに沿った前記３次元オブジェクトの第２の位置に対応し、前記第１の画像データセット及び前記第２の画像データセットの両方が、２次元座標及び画素値を含み、前記第１の断面画像及び前記第２の断面画像の各画素が、前記２次元座標及び前記画素値に関連付けられているステップと、
前記第１の断面画像の前記画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、前記第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、
前記第２の断面画像の前記画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、前記第２の画素セットが、前記所定の画素値範囲内の第２の画素値に関連付けられているステップと、
第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、前記第１の六面体データセットの各々が、前記第１の２次元座標セットの対応する座標で前記第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、
第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、前記第２の六面体データセットの各々が、前記第２の２次元座標セットの対応する座標で前記第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成するステップと、
を行わせる非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記第１の六面体モデルの各々が、均一な高さを有し、前記第２の六面体モデルの各々が、前記均一な高さを有する、請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記均一な高さが、前記３次元軸の前記１つに沿った、前記第１の位置と前記第２の位置との間の距離に対応する、請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記命令が、前記プロセッサによって実行されたときに前記プロセッサに、前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成する前記ステップを行わせることが、前記命令が、前記プロセッサによって実行されたときに前記プロセッサに、
前記第１の六面体モデル及び前記第２の六面体モデルの中の互いに隣接する六面体モデルを接合するステップを行わせることをさらに含む、請求項１４に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記命令が、前記プロセッサによって実行されたときに前記プロセッサに、前記第１の六面体モデル及び前記第２の六面体モデルの中の前記互いに隣接する六面体モデルを接合する前記ステップを行わせることが、前記命令が、前記プロセッサによって実行されたときに前記プロセッサに、
前記接合された六面体モデルの閉鎖面の座標を含む面データを生成するステップであって、前記接合された六面体モデルが前記閉鎖面によって囲まれるステップを行わせることをさらに含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記面データが、互いに隣接する２つの六面体モデル間の開放面の座標を含まない、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記六面体モデルの前記閉鎖面の各々が、２つの三角形からなる、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するためのシステムであって、
プロセッサ、及び、
命令を含む非一時的コンピュータ可読記憶媒体
を備え、前記命令が、前記プロセッサによって実行されたときに前記プロセッサに、
第１の画像データセット及び第２の画像データセットを受信するステップであって、前記第１の画像データセットが、前記複数の２次元断面画像の第１の断面画像を表し、前記第２の画像データセットが、前記複数の２次元断面画像の第２の断面画像を表し、前記第１の断面画像が、３次元軸の１つに沿った前記３次元オブジェクトの第１の位置に対応し、前記第２の断面画像が、前記第１の位置から離れた、前記３次元軸の前記１つに沿った前記３次元オブジェクトの第２の位置に対応し、前記第１の画像データセット及び前記第２の画像データセットの両方が、２次元座標及び画素値を含み、前記第１の断面画像及び前記第２の断面画像の各画素が、前記２次元座標及び前記画素値に関連付けられているステップと、
前記第１の断面画像の前記画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、前記第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、
前記第２の断面画像の前記画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、前記第２の画素セットが、前記所定の画素値範囲内の第２の画素値に関連付けられているステップと、
第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、前記第１の六面体データセットの各々が、前記第１の２次元座標セットの対応する座標で前記第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、
第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、前記第２の六面体データセットの各々が、前記第２の２次元座標セットの対応する座標で前記第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、
前記第１の六面体データセット及び前記第２の六面体データセットに基づいて前記３次元モデルデータを生成するステップと、
を行わせるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、米国特許法第１１９条（ｅ）の下で、２０１５年４月２日に出願された「医用画像用の高度な３Ｄ多面体エンジン」と題する同時係属中の米国仮特許出願第６２／１４２,００１号、及び、２０１６年３月３０日に出願された「仮想六面体モデルに基づく仮想三次元モデルの生成」と題する米国特許出願第１５／０８６,０３６号の優先権を主張するものであり、また、これらの全体は、参照により本明細書に組み入れられる。
【０００２】
本開示は、概して、仮想モデル生成の分野に関し、特に、３次元仮想モデルを生成するコンピュータ実施プロセスに関する。
【背景技術】
【０００３】
３次元（３Ｄ）モデルは、複雑な形状を有するオブジェクトの理解を容易にする。コンピュータで生成された、３Ｄオブジェクトの仮想３Ｄモデルによって、異なる視点からオブジェクトの様々な構成要素の形状及び配置を視覚的に提示することができる。さらに、３Ｄモデルは、オブジェクトを変更又は再配置した場合をシミュレートするために変更することができる。さらに、３Ｄモデルは、３Ｄプリンタによって有形のレプリカとしてレンダリングすることができる。
【０００４】
一例では、３Ｄモデルは、２Ｄ断面画像（例えば、コンピュータ断層撮影（ｃｏｍｐｕｔｅｒｉｚｅｄ  ｔｏｍｏｇｒａｐｈｙ：ＣＴ）スキャン又は磁気共鳴画像（ｍａｇｎｅｔｉｃ  ｒｅｓｏｎａｎｃｅ  ｉｍａｇｉｎｇ：ＭＲＩ）スキャンの画像）に基づいて生成することができる。図１は、オブジェクト１１０、１２０、１３０、１４０、１６０、１８０（例えば、顎関節１１０、１８０、椎孔１２０、椎骨１３０、及び歯１４０、１６０）を含む、人間の被検者の頭部の例示的なＣＴスキャン画像１００を示す。例示的なオブジェクトには、骨、歯、又は被検者の医学的状態を判断するための任意の身体部分が含まれる。
【０００５】
図２Ａ及び図２Ｂは、２つのＣＴスキャン画像から３Ｄモデルを生成する例示的な従来のプロセスを示す。従来の手法では、第１のＣＴスキャン画像のオブジェクト１１０Ａ、１３０Ａ、１４０Ａ、１６０Ａ、及び１８０Ａのエッジを抽出し、第２のＣＴスキャン画像の対応するオブジェクト１１０Ｂ、１３０Ｂ、１４０Ｂ、１６０Ｂ、１８０Ｂのエッジを抽出する。対応するエッジを接続することにより、３Ｄモデル２１０、２３０、２４０、２６０、及び２８０の表面２１５、２３５、２４５、２６５、及び２８５を生成することができる。したがって、オブジェクト１１０、１３０、１４０、１６０、及び１８０にそれぞれ対応する３Ｄモデル２１０、２３０、２４０、２６０、２８０を得ることができる。
【０００６】
しかしながら、従来の手法で生成される３Ｄモデルは、別のオブジェクト内に配置されたオブジェクトを表現することができない。例えば、エッジ１３０Ａ、１３０Ｂを抽出し、エッジ１３０Ａ、１３０Ｂを接続することによって表面２３５を生成することにより、オブジェクト１３０内のオブジェクト１２０は無視される。したがって、従来の手法で得られる３Ｄモデルは、他のオブジェクトに包囲された又は囲まれたオブジェクトを正確に表現することができない。
【０００７】
さらに、従来の手法で生成される３Ｄモデルは、閉じていない（又は開いた）形状を有する場合がある。従来の手法では、２つのエッジが同じオブジェクトの一部でないと判定された場合、２つのエッジ間の表面は省かれる。閉鎖面の欠如は、穴となり、その結果、開いた形状をもたらす。例えば、図３に示すように、穴３１０Ａ〜３１０Ｆは、穴３１０の周りのエッジが異なるオブジェクトの一部であると判定されたことから生成されている。３Ｄモデルのこれらの穴に起因するこのような開いた形状は、オブジェクトの内側部分とオブジェクトの外側部分とを区別できなくする。結果として、開いた形状を有する３Ｄモデルは、３Ｄ印刷することができないか、又は３Ｄモデルの不正確な３Ｄ印刷を引き起こす。
【発明の概要】
【課題を解決するための手段】
【０００８】
実施形態は、３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するコンピュータ実施方法に関する。本方法は、第１の画像データセット及び第２の画像データセットを受信するステップであって、第１の画像データセットが、複数の２次元断面画像の第１の断面画像を表し、第２の画像データセットが、複数の２次元断面画像の第２の断面画像を表し、第１の断面画像が、３次元軸の１つに沿った３次元オブジェクトの第１の位置に対応し、第２の断面画像が、第１の位置から離れた、３次元軸の１つに沿った３次元オブジェクトの第２の位置に対応し、第１の画像データセット及び第２の画像データセットの両方が、複数の画素を含み、該複数の画素の各々が、その２次元座標及び画素値に関連付けられているステップと、第１の断面画像の画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、第２の断面画像の画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、第２の画素セットが、所定の画素値範囲内の第２の画素値に関連付けられているステップと、第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、第１の六面体データセットの各々が、第１の２次元座標セットの対応する座標で第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、第２の六面体データセットの各々が、第２の２次元座標セットの対応する座標で第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップとを含む。
【０００９】
１つ以上の実施形態では、第１の六面体モデルの各々は、均一な高さを有してもよく、第２の六面体モデルの各々は、その均一な高さを有してもよい。均一な高さは、３次元軸の前記１つに沿った、第１の位置と第２の位置との間の距離に対応してもよい。一部の実施形態では、第１の六面体モデル及び第２の六面体モデルは立方体であってもよい。
【００１０】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、第１の六面体モデル及び第２の六面体モデルの中の互いに隣接する六面体モデルを接合するステップを含む。第１の六面体モデル及び第２の六面体モデルの中の互いに隣接する六面体モデルを接合するステップは、接合された六面体モデルの閉鎖面の座標を含む面データを生成するステップであって、接合された六面体モデルが、閉鎖面によって囲まれるステップを含んでもよい。一態様では、面データは、互いに隣接する２つの六面体モデル間の開放面の座標を含まなくてもよい。
【００１１】
１つ以上の実施形態では、六面体モデルの閉鎖面の各々は、２つの三角形からなる。
【００１２】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、接合された六面体モデルの除去すべき頂点を特定するステップであって、頂点が、閉鎖面の３つの三角形の共通頂点であり、３つの三角形が互いに直交しているステップと、共通頂点に隣接する頂点を３つの頂点として有する新しい三角形を生成するステップと、頂点及び３つの三角形を除去するステップとをさらに含む。
【００１３】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、共通辺を共有する、接合された六面体モデルの第１の三角形及び第２の三角形を特定するステップであって、第１の三角形及び第２の三角形が互いに直交しているステップと、３つの頂点を有する新しい三角形を生成するステップであって、３つの頂点が、共通辺から離れた、第１の三角形の第１の頂点、共通辺から離れた、第２の三角形の第２の頂点、及び共通辺の第１の端である第３の頂点を含むステップと、共通辺の第２の端、第１の三角形、及び第２の三角形を除去するステップとを含む。
【００１４】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、オフセット頂点を特定するステップであって、オフセット頂点が、３つの三角形によって共有されており、３つの三角形の各々が、三角形の中心から、三角形から離れた、オフセット頂点に隣接する頂点までの距離ベクトルを有し、３つの三角形の前記各々の距離ベクトルが、同じ極性を有するステップと、オフセット頂点に隣接する頂点にオフセット頂点をシフトさせるステップと、オフセット頂点をシフトさせるステップの後に、重なった三角形を除去するステップとを含む。
【００１５】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、接合された六面体モデルの３つの外側三角形を特定するステップであって、３つの外側三角形が、共通頂点を共有し、所定の面方向範囲内に配置されているステップと、共通頂点に隣接する頂点を３つの頂点として有する新しい三角形を生成するステップと、共通頂点及び３つの三角形を除去するステップとを含む。
【００１６】
１つ以上の実施形態では、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップは、接合された六面体モデルの２つの直角三角形を特定するステップであって、２つの直角三角形が、共通頂点及び共通辺を共有しており、２つの直角三角形の２つの直角が、共通頂点に形成されているステップと、複数の辺の中から最長辺を特定するステップであって、複数の辺の各々の端が、共通頂点であるステップと、複数の辺の中から最短辺を特定するステップと、最長辺の長さと最短辺の長さとの平均値を取得するステップと、共通頂点から離れた、最長辺の端に向けて共通頂点を平均値の半分だけシフトさせるステップとを含む。
【００１７】
１つ以上の実施形態では、本方法は、複数の２次元断面画像の第３の断面画像を表す第３の画像データセットを受信するステップであって、第３の断面画像が、３次元軸の１つに沿った、３次元オブジェクトの第３の位置に対応するステップと、第３の断面画像の画素から第３の画素セットの第３の２次元座標セットを特定するステップであって、第３の画素セットが、所定の画素値範囲内の第３の画素値に関連付けられているステップと、第３の六面体モデルを表す第３の六面体データセットを生成するステップであって、第３の六面体データセットの各々が、第３の２次元座標セットの対応する座標で第３の六面体モデルの対応する六面体モデルに関連付けられているステップとをさらに含み、３次元モデルデータは、第３の六面体データセットにさらに基づいて生成される。
【００１８】
別の実施形態は、３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するための命令を含む非一時的コンピュータ可読記憶媒体に関する。命令は、プロセッサによって実行されたときにプロセッサに、第１の画像データセット及び第２の画像データセットを受信するステップであって、第１の画像データセットが、複数の２次元断面画像の第１の断面画像を表し、第２の画像データセットが、複数の２次元断面画像の第２の断面画像を表し、第１の断面画像が、３次元軸の１つに沿った３次元オブジェクトの第１の位置に対応し、第２の断面画像が、第１の位置から離れた、３次元軸の１つに沿った３次元オブジェクトの第２の位置に対応し、第１の画像データセット及び第２の画像データセットの両方が、２次元座標及び画素値を含み、第１の断面画像及び第２の断面画像の各画素が、２次元座標及び画素値に関連付けられているステップと、第１の断面画像の画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、第２の断面画像の画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、第２の画素セットが、所定の画素値範囲内の第２の画素値に関連付けられているステップと、第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、第１の六面体データセットの各々が、第１の２次元座標セットの対応する座標で第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、第２の六面体データセットの各々が、第２の２次元座標セットの対応する座標で第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップとを行わせる。一部の実施形態では、第１の六面体モデル及び第２の六面体モデルは立方体であってもよい。
【００１９】
１つ以上の実施形態は、３次元オブジェクトの複数の２次元断面画像に基づいて３次元モデルデータを生成するためのシステムに関する。本システムは、プロセッサ、及び命令を含む非一時的コンピュータ可読記憶媒体を備え、命令は、プロセッサによって実行されたときにプロセッサに、第１の画像データセット及び第２の画像データセットを受信するステップであって、第１の画像データセットが、複数の２次元断面画像の第１の断面画像を表し、第２の画像データセットが、複数の２次元断面画像の第２の断面画像を表し、第１の断面画像が、３次元軸の１つに沿った３次元オブジェクトの第１の位置に対応し、第２の断面画像が、第１の位置から離れた、３次元軸の１つに沿った３次元オブジェクトの第２の位置に対応し、第１の画像データセット及び第２の画像データセットの両方が、複数の画素を含み、該複数の画素の各々が、その２次元座標及び画素値に関連付けられているステップと、第１の断面画像の画素から第１の画素セットの第１の２次元座標セットを特定するステップであって、第１の画素セットが、所定の画素値範囲内の第１の画素値に関連付けられているステップと、第２の断面画像の画素から第２の画素セットの第２の２次元座標セットを特定するステップであって、第２の画素セットが、所定の画素値範囲内の第２の画素値に関連付けられているステップと、第１の六面体モデルを表す第１の六面体データセットを生成するステップであって、第１の六面体データセットの各々が、第１の２次元座標セットの対応する座標で第１の六面体モデルの対応する六面体モデルに関連付けられているステップと、第２の六面体モデルを表す第２の六面体データセットを生成するステップであって、第２の六面体データセットの各々が、第２の２次元座標セットの対応する座標で第２の六面体モデルの対応する六面体モデルに関連付けられているステップと、第１の六面体データセット及び第２の六面体データセットに基づいて３次元モデルデータを生成するステップとを行わせる。一部の実施形態では、第１の六面体モデル及び第２の六面体モデルは立方体であってもよい。
【図面の簡単な説明】
【００２０】
【図１】図１は、例示的な２次元（２Ｄ）コンピュータ断層撮影スキャン画像を示す。
【図２】図２Ａは、従来の手法に従って２Ｄ画像に基づいて３Ｄモデルを生成するコンピュータ実施プロセスを示す。図２Ｂは、従来の手法に従って２Ｄ画像に基づいて３Ｄモデルを生成するコンピュータ実施プロセスを示す。
【図３】図３は、従来の手法に従って生成された、開いた形状を含む例示的な３Ｄモデルの例である。
【図４】図４は、実施形態に従って例示的な３Ｄモデル生成システムを示す。
【図５】図５は、実施形態に従って、３Ｄモデルの電子表現を含む３Ｄモデルデータを２Ｄ画像データに基づいて生成するコンピュータ実施プロセスを示すフローチャートである。
【図６】図６は、実施形態に従って、３Ｄモデルの電子表現を生成するコンピュータ実施プロセスを示すフローチャートである。
【図７Ａ】図７Ａは、実施形態に従って、３Ｄモデルの六面体モデルへの２Ｄ画像の画素の例示的な変換を示す。
【図７Ｂ】図７Ｂは、実施形態に従って、図１のＣＴスキャン画像に対応する３Ｄモデルの例示的な断面を示す。
【図７Ｃ】図７Ｃは、実施形態による、図７Ｂに示されている３Ｄモデルの断面の部分の拡大図である。
【図７Ｄ】図７Ｄは、実施形態に従って、画素に関して六面体モデルを生成する例示的なプロセスを示す。
【図７Ｅ】図７Ｅは、実施形態に従って、複数の六面体モデルを含む例示的な３Ｄモデルを示す。
【図７Ｆ】図７Ｆは、実施形態による、図７Ｅに示されている３Ｄモデルの部分の拡大図である。
【図８】図８は、実施形態に従って、３Ｄモデルに表面最適化を実行するコンピュータ実施プロセスを示すフローチャートである。
【図９】図９は、実施形態に従って、３つの直交面によって共有された、六面体モデルの頂点を除去するコンピュータ実施プロセスを示すフローチャートである。
【図１０Ａ】図１０Ａは、図９に示したコンピュータ実施プロセスに従って、３つの直交面によって共有された、六面体モデルの頂点を除去する前の例示的な３Ｄモデルと頂点を除去した後の例示的な３Ｄモデルを示す。
【図１０Ｂ】図１０Ｂは、図９に示したコンピュータ実施プロセスに従って、３つの直交面によって共有された、六面体モデルの頂点を判定する例示的な手法を示す。
【図１０Ｃ】図１０Ｃは、図９に示したコンピュータ実施プロセスに従って、３つの直交面によって共有された、六面体モデルの頂点を除去する例示的なプロセスを示す。
【図１１】図１１は、実施形態に従って、３Ｄモデルの直交面を合成するコンピュータ実施プロセスを示すフローチャートである。
【図１２】図１２は、図１１に示したコンピュータ実施プロセスに従って、３Ｄモデルの直交面を合成する前の例示的な３Ｄモデルと、直交面を合成した後の例示的な３Ｄモデルとを示す。
【図１３】図１３は、実施形態に従って、３Ｄモデルのオフセット頂点をトリミングするコンピュータ実施プロセスを示すフローチャートである。
【図１４Ａ】図１４Ａは、オフセット頂点を有する例示的な３Ｄモデルを示す。
【図１４Ｂ】図１４Ｂは、図１３に示したコンピュータ実施プロセスに従って、図１４Ａに示した例示的な３Ｄモデルのオフセット頂点を判定する例示的なプロセスを示す。
【図１４Ｃ】図１４Ｃは、図１３に示したコンピュータ実施プロセスに従って、図１４Ａの例示的な３Ｄモデルのオフセット頂点を除去した後の例示的な表面を示す。
【図１４Ｄ】図１４Ｄは、図１３に示したコンピュータ実施プロセスに従って、３Ｄモデルのオフセット頂点をトリミングする前の例示的な３Ｄモデルと、オフセット頂点をトリミングした後の例示的な３Ｄモデルとを示す。
【図１５】図１５は、実施形態に従って、３Ｄモデルの外側面を合成するコンピュータ実施プロセスを示すフローチャートである。
【図１６】図１６は、図１５に示したコンピュータ実施プロセスに従って、３Ｄモデルの外側面を合成する前の例示的な３Ｄモデルと、外側面を合成した後の例示的な３Ｄモデルとを示す。
【図１７】図１７は、実施形態に従って、３Ｄモデルの辺のバランスをとるコンピュータ実施プロセスを示すフローチャートである。
【図１８】図１８は、図１７に示したコンピュータ実施プロセスに従って、３Ｄモデルの辺のバランスをとる前の例示的な３Ｄモデルと、辺のバランスをとった後の例示的な３Ｄモデルとを示す。
【図１９Ａ】図１９Ａは、一実施形態に従って、３Ｄモデルに表面最適化を実行する前の六面体モデルを含む例示的な３Ｄモデルと、表面最適化を実行した後の例示的な３Ｄモデルとを示す。
【図１９Ｂ】図１９Ｂは、一実施形態に従って、図７Ｅに示した六面体モデルを含む３Ｄモデルに表面最適化を実行した後の例示的な３Ｄモデルを示す。
【図１９Ｃ】図１９Ｃは、実施形態に従って、図１９Ｂに示した例示的な３Ｄモデルの部分の拡大図である。
【図２０】図２０は、実施形態に従って、プロセッサ（又はコントローラ）で機械可読媒体から命令を読み出し、これらを実行することができる例示的な機械（例えば、コンピュータ）の構成要素を示す。
【発明を実施するための形態】
【００２１】
図面（図）及び以下の説明は、例示のみのために好ましい実施形態に関する。当業者であれば、本明細書に開示されている構造及び方法の代替実施形態を、開示されているものの原理から逸脱することなく採用され得る実施可能な代替物として認めることができる。
【００２２】
以下では、いくつかの実施形態を詳細に参照するが、これらの例は、添付図面に示されている。可能な場合には、同様の又は同じ参照番号が、図面では使用されることがあり、同様の又は同じ機能を示すことがあることに留意されたい。図面は、例示のみを目的として、開示されているシステム（又は方法）の実施形態を示す。当業者であれば、以下の説明から、本明細書に記載の原理から逸脱することなく、本明細書に示されている構造及び方法の代替実施形態を採用することができることを容易に認めるであろう。
【００２３】
構成の概要
開示されている構成の例示的な実施形態は、３Ｄオブジェクトの２Ｄ断面画像の各画素に従って生成される複数の仮想六面体モデル（本明細書では「六面体モデル」とも呼ばれる）に基づいて３Ｄオブジェクトの仮想３Ｄモデル（本明細書では「３Ｄモデル」とも呼ばれる）を生成するためのコンピュータ実施方法（システム及び非一時的コンピュータ記憶可読媒体）を含む。六面体モデルは、六面体形状を表すコンピュータデータを有するコンピュータ生成仮想ユニット構成要素である。
【００２４】
異なる断面画像は、３Ｄ軸の１つに沿った３Ｄオブジェクトの異なる位置に対応する。各断面画像は、複数の画素に分割され、２Ｄ断面画像の画素は、２Ｄ座標及び３Ｄ軸の１つに沿った２Ｄ断面画像の位置によって特定される。画素に対応する六面体モデルは、２Ｄ座標及び３Ｄ軸の１つに沿った２Ｄ断面画像の位置に対応する仮想３Ｄ空間の位置に生成される。
【００２５】
各六面体モデルが２Ｄ断面画像の各画素に対応する複数の六面体モデルを含む、３Ｄオブジェクトの３Ｄモデルを生成することによって、別のオブジェクト内のオブジェクトを正確に表現することができる。さらに、３Ｄモデルは閉じた形状を有することになるため、３Ｄモデルの３Ｄ印刷を成功裏に実行することができる。
【００２６】
一態様では、３Ｄモデルは、電子的に記憶又は伝送することができる３Ｄモデルデータによって表される。本明細書における３Ｄモデルデータは、閉じた形状を有する３Ｄモデルの電子表現を意味する。３Ｄモデルデータは、３Ｄモデルの構成要素（例えば、頂点、辺、面、又はこれらの任意の組み合わせ）の構造配置（例えば、位置、形状、サイズ、色など）を示す。３Ｄモデルデータは、３Ｄモデルの視覚的表現を生成するために計算システムによって取り出すことができるし、３Ｄモデルの有形の物理的表現を生成するために３Ｄ印刷機に適用することができる。
【００２７】
システムの概要
図４は、実施形態に従って例示的な３Ｄモデル生成システム４２０を示す。図４では、システム４２０は、３Ｄオブジェクトの２Ｄ画像データ４１０を受信し、そのオブジェクトの３Ｄモデル４８０を生成する。システム４２０は、２Ｄ画像データに基づいて仮想３Ｄモデル４８０を生成し、３Ｄモデルの３Ｄモデルデータ（すなわち、電子表現）を記憶する。
【００２８】
２Ｄ画像データは、２Ｄ断面画像（例えば、ＣＴスキャン画像、ＭＲＩスキャン画像など）の電子的なコンピュータ表現である。２Ｄ画像データは、「２Ｄ画像ファイル」とも呼ばれる。２Ｄ画像の２Ｄ画像ファイルは、２Ｄ画像の画素ごとに、画素を特定する２Ｄ座標及び画素の画素値（例えば、色値）を含む。画素値は、２Ｄ座標によって特定される画素の色を表す。画素値は、任意の色空間フォーマット（例えば、ＲＧＢ、ＹＣｂＣｒなど）で表されてもよい。一実施形態では、２Ｄ画像は、３Ｄオブジェクトの断面画像であり、各２Ｄ画像は、それぞれの２Ｄ画像ファイルに対応する。各２Ｄ画像は、２Ｄ画像に直交する、３Ｄ画像の軸に沿って別の２Ｄ画像から（好ましくは一定の距離だけ）離されている。言い換えれば、２Ｄ画像データ４１０は、３Ｄオブジェクトの複数の断面を表し、各断面は、軸に沿って３Ｄオブジェクトの異なる深さにある。例えば、人間の頭蓋骨は、特定の距離だけ互いに離された、３Ｄオブジェクトの数十又は数百の２Ｄ断面画像（例えば、ＣＴスキャン又はＭＲＩスキャンの）によって表現され得る。２Ｄ断面画像の各々は、２Ｄ断面画像の解像度に応じて、非常に多数の画素（例えば、数十万又は数百万の、場合によってはそれ以上の画素）を含む。したがって、本明細書の実施形態による、２Ｄ画像から３Ｄモデルへの変換は、コンピュータ画像データの非常に多くの計算を必要とするため、３Ｄモデル生成システムは、コンピュータシステムとして実施しなければならない。
【００２９】
システム４２０は、３Ｄモデルデータを生成するための計算装置である。一実施形態では、システム４２０は、２Ｄ画像から３Ｄモデルへの変換モジュール４３０（本明細書では「変換モジュール４３０」とも呼ばれる）と、表面最適化モジュール４４０と、プロセッサ４５０と、２Ｄ画像データ又は３Ｄモデルデータなどのコンピュータデータを記憶する記憶装置４６０とを含む。他の実施形態では、システム４２０は、図４に示した構成要素に比べて多い又は少ない数の構成要素を含む。例えば、システム４２０は、以下で図２０に関して詳細に説明される追加の構成要素を含んでもよい。
【００３０】
変換モジュール４３０は、２Ｄ画像ファイルに基づいて３Ｄモデルデータを生成する。一実施形態では、変換モジュール４３０は、２Ｄ画像ファイル内に特定された座標及び画素値に従って、六面体モデルを含む３Ｄモデルを生成する。変換モジュール４３０は、２Ｄ画像ファイルごとに、所定の画素値範囲内の画素値を有する画素を特定し、特定された画素に関して六面体モデルを生成する。例えば、変換モジュール４３０は、２Ｄ画像ファイル内に表現された３Ｄオブジェクト（例えば、骨）を特定するために、人間の骨を表す特定の画素色範囲内の画素値を有する画素を特定してもよい。各六面体モデルは、対応する画素に関連付けられ、対応する画素の座標に対応する位置に生成される。一例では、六面体モデルの幅及び長さは、画素の幅及び長さに対応し、六面体モデルの高さは、２Ｄ画像に直交する軸に沿った、２つの２Ｄ画像の対応する位置間の間隔に対応する。したがって、異なる２Ｄ画像からの六面体モデルを積み重ねて３Ｄモデルを形成することができる。２Ｄ画像に基づいて３Ｄモデルを生成する例示的なステップは、以下で図６及び図７Ａ〜図７Ｆに関して詳細に提供される。変換モジュール４３０は、六面体モデルを含む３Ｄモデルの構造配置を記述した３Ｄモデルデータを生成し、六面体モデルを記憶装置４６０に記憶する。一実施形態では、変換モジュール４３０は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとして具体化される。
【００３１】
表面最適化モジュール４４０は、変換モジュール４３０によって生成された３Ｄモデルデータを取得し、３Ｄモデルデータの３Ｄモデルの仮想表面を平滑化する演算を自動的に実行する。凸頂点又は凹頂点を有する六面体モデルを含む３Ｄモデルは、自然に又は写実的に見え得ない。表面最適化モジュール４４０は、３Ｄモデルの表面をマージ、再配置、除去、又はサイズ変更するために３Ｄモデルデータを変更する。一態様では、六面体モデルの各面は、三角形で表現され、３Ｄモデルの表面は、三角形を変更又は変形することによって平滑化することができる。３Ｄモデルデータの表面を平滑化する例示的なステップは、以下で図８〜図１９に関して詳細に提供される。３Ｄモデルの表面の平滑化に応答して、表面最適化モジュール４４０は、平滑化された表面を有する３Ｄモデルの構造配置を記述した変更された３Ｄモデルデータを記憶装置４６０に記憶する。一実施形態では、ソフトウェア最適化モジュール４４０は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとして具体化される。
【００３２】
プロセッサ４５０は、命令を実行する処理ユニットであり、汎用コンピュータプロセッサを含んでもよい。一部の実施形態では、プロセッサ４５０は、再構成可能なハードウェア（例えば、フィールド・プログラマブル・ゲート・アレイ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ：ＦＰＧＡ））又は１つ以上の特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：ＡＳＩＣ）で実施することができる。プロセッサ４５０は、本明細書に開示されているシステム４２０の機能を実行するための命令を実行する。一実施形態では、プロセッサ４５０は、複数の処理ユニットを含み、複数の命令が並列に実行され得る。
【００３３】
記憶装置４６０は、データを記憶するための電子記憶構成要素である。一実施形態では、記憶装置４６０は、システム４２０のソフトウェアモジュール（例えば、変換モジュール４３０及び／又は表面最適化モジュール４４０）の機能を実行するための１つ又は命令を記憶する。さらに、システム４２０は、２Ｄ画像データ４１０、３Ｄモデルデータなどを記憶することができる。記憶されたデータは、システム４２０のモジュール又は図４に示されていない他の構成要素によってアクセスされ得る。例えば、出力表示モジュール（図示せず）は、３Ｄモデルデータを取得し、３Ｄモデルの仮想表現をレンダリングする。別の例では、３Ｄプリンタは、３Ｄモデルデータを取得し、３Ｄモデルの有形の物理的表現を生成する。
【００３４】
図５は、実施形態に従って、３Ｄモデルの電子表現を含む３Ｄモデルデータを２Ｄ画像データに基づいて生成するコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図５のステップは、図４のシステム４２０によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００３５】
システム４２０は、２Ｄ画像データを取得する（５１０）。２Ｄ画像データは、三次元オブジェクトの２Ｄ断面画像の電子表現である。
【００３６】
システム４２０は、画素値のユーザ入力選択を受信する（５１５）。一実施形態では、システム４２０は、２Ｄ断面画像の１つをユーザに視覚的に提示し、ユーザは、目的の画素値を選択してもよい。一例では、ユーザは、単一の画素値を選択し、システムは、選択された画素値から画素値範囲を特定してもよい。ユーザは、複数の画素値又は複数の画素値範囲を選択してもよい。別の実施形態では、ユーザは、提示された２Ｄ断面画像上の目的の構成要素（例えば、図１の歯）を選択する。この実施形態では、構成要素のユーザ選択は、選択された構成要素に対応する画素の２Ｄ座標によって特定される。システム４２０は、２Ｄ座標によって特定される選択された構成要素の画素値又は画素値範囲を特定する。ユーザは、複数の構成要素を選択し、システム４２０は、２Ｄ座標によって特定される選択された構成要素に対応する複数の画素値又は複数の画素値範囲を特定してもよい。
【００３７】
システム４２０は、六面体モデルを含む３Ｄモデルを生成する（５２０）。具体的には、システム４２０は、２Ｄ画像ファイルごとに、所定の画素値範囲内の画素値を有する画素を特定し、特定された画素に関して六面体モデルを生成する。例えば、変換モジュール４３０は、２Ｄ画像ファイル内に表現された３Ｄオブジェクト（例えば、骨）を特定するために、人間の骨を表す特定の画素色範囲内の画素値を有する画素を特定して、３Ｄモデルを生成してもよい。各六面体モデルは、対応する画素の座標及び直交軸に沿った２Ｄ画像の位置に従って配置される。このように、六面体モデルを積み重ねて、閉じた形状を有する３Ｄモデルを形成することができる。
【００３８】
システム４２０は、表面最適化を実行する（５３０）。一態様では、システム４２０は、六面体モデルを含む３Ｄモデルの表面を自動的に平滑化するために表面最適化を実行する。
【００３９】
システム４２０は、３Ｄモデル出力データを生成する（５４０）。システム４２０は、変更された３Ｄモデルの３Ｄモデルデータを３Ｄモデル出力データとして生成する。３Ｄモデル出力データは、３Ｄモデルの視覚的表現を提示するために計算機によって処理されてもよいし、３Ｄモデルの物理的表現を生成するために３Ｄ印刷機によって処理されてもよい。
【００４０】
図６は、実施形態に従って、六面体モデルを含む３Ｄモデルの電子表現を生成するコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図６のステップは、図５のステップ５２０の一部である。したがって、図６のステップは、図４のシステム４２０（例えば、変換モジュール４３０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００４１】
システム４２０は、仮想３Ｄ空間（本明細書では「３Ｄ空間」とも呼ばれる）を生成する（６１０）。３Ｄ空間は、仮想３Ｄモデルを生成することができるコンピュータグラフィックシステムにおける仮想空間である。システム４２０は、２Ｄ画像を受信し、各２Ｄ画像の画素の数及び２Ｄ画像の数を求める。システム４２０は、少なくとも２Ｄ画像内の画素の総数、大抵の場合、それより多い画素を含むことができる仮想空間を生成する。さらに、システム４２０は、２Ｄ画像の２Ｄ座標を３Ｄ空間の対応する３Ｄ座標にマッピングする。例えば、３番目の２Ｄ画像の２Ｄ座標（ｘ，ｙ）によって特定される画素は、３Ｄ座標（ｘ，ｙ，ｚ）にマッピングされてもよく、その場合、ｚは、３Ｄオブジェクトの軸に沿った２Ｄ画像の深さであり、ｘ及びｙは、２Ｄ画像内の画素の２Ｄ座標である。システム４２０は、本明細書の実施形態に従って３Ｄモデルデータを生成するために複数の２Ｄ画像セットを受信するため、各２Ｄ画像の画素は、どの２Ｄ画像に画素が属するかに応じて異なるＺ座標データを有することができる。例えば、２Ｄ位置（ｘ，ｙ）にある、ある断面画像の画素は、３Ｄ座標（ｘ，ｙ，ｚ１）を有することができ、同じ２Ｄ位置（ｘ、ｙ）にあるが、３Ｄオブジェクトの軸に沿って異なる深さにある、別の断面画像の別の画素は、３Ｄ座標（ｘ、ｙ、ｚ２）を有することができる。したがって、画素に対応する六面体モデルは、画素の２Ｄ座標に対応する３Ｄ座標に生成することができる。
【００４２】
システム４２０は、３Ｄオブジェクトの複数の２Ｄ断面画像セットの中から２Ｄ画像を選択する（６２０）。一態様では、システム４２０は、２Ｄ画像に直交する軸に沿ったその位置に従って２Ｄ画像を選択する。例えば、直交軸の一端（例えば、下端）に位置する２Ｄ画像が最初に選択され、次いで、直交軸の異なる深さにある、他端（例えば、上端）に向かって次の２Ｄ画像が次に選択される。
【００４３】
システム４２０は、ターゲット画素値を有する画素を選択する（６３０）。具体的には、システム４２０は、所定の画素値範囲内の画素値を有する画素を特定する。一手法では、所定の画素値範囲は、システム４２０のユーザによって決定されるか、又はシステム４２０によって予め決定される。システム４２０は、特定された画素から画素を選択する。
【００４４】
システム４２０は、選択された画素に対応する六面体モデルの頂点を生成する（６４０）。システムは、画素の２Ｄ座標に基づいて六面体モデルのサイズ（例えば、高さ、幅、及び長さ）ならびに位置を求め、求められた六面体モデルのサイズ及び位置に基づいて六面体モデルの頂点の位置を示す六面体データを生成する。一例では、六面体モデルの各頂点は、３Ｄ空間内の３Ｄ座標で特定することができる。一部の実施形態では、六面体モデルは、立方体モデルであってもよい。
【００４５】
システム４２０は、選択された画素の画素値と隣接画素の画素値とを比較する（６５０）。隣接画素は、同じ２Ｄ画像内の画素及び異なる２Ｄ画像内の画素（例えば、選択された画素の上／下の）を含む。具体的には、システム４２０は、隣接画素ごとに、隣接画素が所定の画素値範囲内の画素値を有するかどうかを比較する。例えば、所定の画素値範囲は、人間の３Ｄオブジェクトの骨を表す画素値（色値）に対応してもよい。
【００４６】
システム４２０は、画素値の比較に基づいて六面体モデルの表面を生成する（６６０）。一実施形態では、ある方向に位置する隣接画素が所定の画素値範囲内の画素値を有するとの判定に応答して、システム４２０は、その方向に面する六面体モデルの面を開放面として決定する。六面体モデルの開放面は、２つの六面体モデルが開放面を共有するように互いに接合されていることを表す。互いに接合された六面体モデルは、計算効率を向上させるために単一の六面体モデルとして扱われる。別の方向に位置する隣接画素が所定の画素値範囲外の画素値を有するとの判定に応答して、システム４２０は、前記別の方向に面する六面体モデルの面を閉鎖面として決定する。六面体モデルの閉鎖面は、３Ｄモデルの内側と外側とを区別するための３Ｄモデルの表面の一部となる。一態様では、閉鎖面は、選択された画素の画素値又は所定の画素値範囲の平均値に対応する色を有する。
【００４７】
システム４２０は、閉鎖面の頂点の位置及び閉鎖面の色を示す六面体データを生成する。一実施形態では、六面体モデルの各閉鎖面は、２つの三角形に分割され、システム４２０は、各三角形の頂点の位置を含む六面体データを記憶する。六面体モデルの面を２つの三角形に分割することによって、六面体モデルの長方形又は正方形の表面を、１つ以上の三角形を含む任意の多角形に変更する表面最適化を実行することができる。
【００４８】
システム４２０は、所定の画素値範囲内の画素値を有する、２Ｄ画像のさらなる画素に関して六面体モデルを生成する必要があるかどうかを判定する（６７０）。２Ｄ画像に関してさらなる六面体モデルを生成する必要があるとの判定に応答して、システム４２０は、別の画素を選択するためにステップ６３０に進み、ステップ６４０〜６６０を繰り返す。２Ｄ画像に関してすべての六面体モデルが生成されたとの判定に応答して、システム４２０は、さらなる２Ｄ画像が存在するかどうかを判定する（６８０）。さらなる２Ｄ画像が存在する場合、システム４２０は、ステップ６２０に進み、次の２Ｄ画像（例えば、直交軸の前記他端に向かって次の画像）を選択し、ステップ６３０〜６７０を繰り返す。
【００４９】
すべての２Ｄ画像を処理した後、六面体モデルに基づいて３Ｄモデルを生成する。３Ｄモデルは、３Ｄ座標に従って３Ｄ空間に積み重ねられた六面体モデルの集合である。３Ｄモデルの表面は、六面体モデルの閉鎖面として表される。システム４２０は、六面体データを含む３Ｄモデルデータを生成する。
【００５０】
図６に開示したプロセスでは、ステップ６５０及び６６０を通して、画素に関して、六面体モデルの閉鎖面及び開放面を生成することができる。他の実施形態では、ステップ６５０及び６６０を省略してもよい。例えば、所定の画素値範囲内の画素値を有する複数の画素に関して、複数の六面体モデルであって、各々が閉鎖面によって全体的に囲まれた複数の六面体モデルを生成することができ、次に、互いに隣接する六面体モデルをマージして、共有面を除去するか、共有面を開放面に置換することができる。
【００５１】
図７Ａは、実施形態に従って、仮想六面体モデルを含む仮想３Ｄモデル７２２への２Ｄ画像７１０の画素の例示的な変換を示す。システム４２０は、２Ｄ断面画像のコンピュータ表現である２Ｄ画像データ（又は２Ｄ画像ファイル）を受信し、３Ｄモデルの電子表現である３Ｄモデルデータを生成する。２Ｄ画像７１０は、３Ｄオブジェクトの断面画像であり、各２Ｄ画像は、２Ｄ画像７１０に直交する軸７００に沿って別の２Ｄ画像から離れている。各２Ｄ画像は、画素７１２に分割されており、各画素は、２Ｄ座標によって（行７１６及び列７１４によって）特定される。例えば、高解像度２Ｄ画像は、１０８０×７２０の画素（画像当たり７００，０００を上回る画素）を含む。直交軸７００に沿った２Ｄ画像７１０の位置は、２Ｄ画像７１０内の画素を別の次元で特定することができるようにする。
【００５２】
システムは、３Ｄ空間７２０に六面体モデルを含む３Ｄモデル７２２を生成する。その場合、各六面体モデルは、対応する画素の位置に従って生成される。３Ｄ空間は、２Ｄ画像７１０内の画素の総数に従って生成される。３０枚の高解像度２Ｄ画像７１０（例えば、画像当たり１０８０×７２０の画素の）が利用可能であると仮定すると、２３００万超の六面体モデルを包含する３Ｄ空間７２０を生成することができ、これにより、高解像度３Ｄモデル７２２を生成することができる。一例では、行７１６は、３Ｄ空間７２０の幅７２４に対応し、列７１４は、３Ｄ空間７２０の長さ７２６に対応し、直交軸７００に沿った２Ｄ画像７１０の位置は、３Ｄ空間７２０の高さ７２８に対応する。したがって、第１の画像内の画素は、第１の層の六面体モデルに対応し、軸７００に沿って第１の画像の後の第２の画像内の画素は、３Ｄ空間７２０内で軸７０５に沿って第１の層の上にある第２の層の六面体モデルに対応する。したがって、２Ｄ座標で表された画素を、３Ｄ座標にマッピングすることができ、２Ｄ画像内の画素の２Ｄ座標に対応する３Ｄ座標に六面体モデルを生成することができる。
【００５３】
一実施形態では、システム４２０は、第１の画像を表す第１の画像データセットを受信し、第１の画像データセットに基づいて、第１の六面体モデルを表す第１の六面体データセットを生成する。同様に、システム４２０は、軸７００に沿って第１の画像の後の第２の画像を表す第２の画像データセットを受信し、第２の画像データセットに基づいて、軸７０５に沿って第１の六面体モデルの上に積み重ねられる第２の六面体モデルを表す第２の六面体データセットを生成する。システム４２０は、軸７００に沿ってさらなる画像を表すさらなる画像データを取得し、軸７０５に沿って、対応するレベル（又は層）に位置するさらなる六面体モデルを表すさらなる六面体データを生成する。
【００５４】
図７Ｂは、実施形態に従って、図１のＣＴスキャン画像に対応する、３Ｄモデルの例示的な断面７３０を示す。断面７３０では、対応する画素の位置に六面体モデルが生成されている。その結果、図７Ｂに示すように、別のオブジェクト内のオブジェクトを正確に表現することができている。図７Ｃは、図７Ｂの部分７３５の拡大図であり、図１の別のオブジェクト１３０に対応する別のオブジェクト７４０（例えば、椎骨）内の、図１のオブジェクト１２０に対応する内部オブジェクト７４５（例えば、椎孔）が正確に表現されていることを示している。
【００５５】
図７Ｄは、実施形態に従って、画素に関して六面体モデルを生成する例示的なプロセスを示す。例えば、システム４２０は、六面体モデル７８０を生成するために画素Ｐを選択する。システム４２０は、同じ２Ｄ画像内の隣接画素７６８Ａ、７６８Ｂ、７６８Ｃは所定の画素値範囲内の画素値を有すると判定する一方で、隣接画素７６８Ｄは所定の画素値範囲外の画素値を有すると判定する。したがって、システム４２０は、所定の画素値範囲外の画素値を有する画素７６８Ｄの側の、六面体モデル７８０の閉鎖面７８６（７８６Ｃ、７８６Ｄ）の構造配置を記述する面情報（例えば、頂点の位置、面の色など）を生成する。一態様では、閉鎖面７８６は、２つの三角形７８６Ｃ及び７８６Ｄに分割される。また、システム４２０は、画素Ｐの下の２Ｄ画像の隣接画素７５５が所定の画素値範囲内の画素値を有すると判定する一方で、画素Ｐの上の２Ｄ画像の隣接画素７７５が所定の画素値範囲外の画素値を有すると判定する。したがって、システム４２０は、所定の画素値範囲外の画素値を有する画素７７５の側の閉鎖面７８２（７８２Ａ、７８２Ｂ）の構造配置を含むように六面体モデル７８０の面情報を生成（又は更新）する。閉鎖面７８２もまた、２つの三角形７８２Ａ及び７８２Ｂに分割されてもよい。六面体モデル７８０は、所定の画素値範囲内の画素値を有する画素（例えば、画素７６８Ａ、７６８Ｂ、７６８Ｃ、７５５）の側に閉鎖面を有さず、開放面を有する。言い換えれば、閉鎖面７８２、７８６以外の六面体モデル７８０の残りの面は、開放面として決定される。これは、隣接する六面体モデルが、これらの開放面を共有するためである。３Ｄ空間の直交軸の異なる深さにある各２Ｄ断面画像の画素のすべてに、図７Ｄ（及び図６）に関して説明したプロセスを繰り返す（すなわち、閉鎖面又は開放面を有する六面体を決定し、２Ｄ断面画像のうちの異なる２Ｄ断面画像に対応するこのような六面体を互いに接合する）ことによって、３Ｄオブジェクトに対応する、六面体モデルで構成された３Ｄモデルを生成することができる。
【００５６】
図７Ｅは、実施形態に従って、複数の六面体モデルを含む例示的な３Ｄモデル７９０を示す。システム４２０は、２Ｄ画像に基づいて、複数の六面体モデルで表現された人間の頭蓋骨の３Ｄモデルを生成する。図７Ｆは、３Ｄモデルの六面体モデルを示すための、図７Ｅに示した３Ｄモデルの部分７９２の拡大図である。各六面体モデルが、閉じた形状を有することから、３Ｄモデルも閉じた形状を有することが保証される。
【００５７】
図８は、実施形態に従って、３Ｄモデルに表面最適化を実行するコンピュータ実施プロセスを示すフローチャートである。図７Ｅ及び図７Ｆに示したように、六面体モデルを含む３Ｄモデルは、六面体モデルの凸頂点又は凹頂点に起因して粗面又は凹凸面を含む。一実施形態では、図８のステップは、図５のステップ５３０の一部である。したがって、図８のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００５８】
一実施形態では、システム４２０は、図５のステップ５２０から、六面体モデルを含む３Ｄモデルを記述した３Ｄモデルデータを受信する。３Ｄモデルデータに基づいて、システム４２０は、六面体モデルの１つ以上の頂点を除去する（８１０）。その場合、各頂点は、３つの直交面（例えば、３つの直交する三角形）によって共有されたものである。本明細書における直交面は、実質的に互いに直交する２つの法線ベクトルを有する面を意味する。さらに、システム４２０は、六面体モデルの直交面を合成する（８２０）。システム４２０は、多面体のオフセット頂点（例えば、近傍表面を基準とした多面体の凸頂点又は凹頂点）をトリミングする（８３０）。システム４２０は、３Ｄモデルの外側面を合成する（８４０）。本明細書における外側面は、実質的に同様の方向を有する表面（すなわち、３Ｄモデルの外側に面する表面）を意味する。システム４２０は、面の辺（例えば、三角形の辺）のバランスをとる（８５０）。システム４２０は、変更された３Ｄモデルの構造配置を記述する３Ｄモデルデータを生成する。これらのステップの例示的なプロセスは、以下で図９〜図１８に関して詳細に提供される。
【００５９】
他の実施形態では、図８に示したステップの一部は、異なる順序で実行されてもよい。一例では、ステップ８３０はステップ８２０の前に実行されてもよいし、ステップ８４０はステップ８３０の前に実行されてもよい。しかしながら、図８に示した順序で表面最適化を実行することによって、計算リソースを節約することができ、処理効率を向上させることができる。例えば、直交面の合成前にオフセット頂点をトリミングすることは、直交面の合成後にオフセット頂点をトリミングすることと比較して、より多数の頂点のトリミングを必要とする。同様に、オフセット頂点のトリミング前に外側面を合成することは、オフセット頂点のトリミング後に外側面を合成することと比較して、より多数の面の合成を必要とする。
【００６０】
図９は、実施形態に従って、３つの直交面によって共有された、六面体モデルの頂点を除去するコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図９のステップは、図８のステップ８１０の一部である。したがって、図９のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００６１】
システム４２０は、六面体モデルを含む３Ｄモデルの複数の頂点からターゲット頂点を選択する（９１０）。システム４２０は、ターゲット頂点が３つの面（例えば、三角形）によって共有されているかどうかを判定する（９２０）。ターゲット頂点が３つの面によって共有されているとの判定に応答して、システム４２０は、３つの角度を求める。その場合、３つの角度の各々は、３つの面のうちの２つの面の２つの法線ベクトルのなす角度である。３つの角度の合計が、実質的に２７０度に等しい場合、システム４２０は、そのターゲット頂点は除去されるべき頂点であると判定し、ターゲット頂点に隣接する頂点を頂点として有する新しい面を生成する（９４０）。システム４２０は、ターゲット頂点及びターゲット頂点に結びついた面を除去する（９５０）。
【００６２】
ステップ９２０における、ターゲット頂点が３つの面によって共有されていないとの判定又はステップ９３０における、３つの角度の合計が実質的に２７０度に等しくないとの判定に応答して、システム４２０は、ステップ９６０に進む。
【００６３】
システム４２０は、さらなる頂点を調べる必要があるかどうかを判定する（９６０）。さらなる頂点を調べる必要があるとの判定に応答して、システム４２０は、ステップ９１０に進み、３Ｄモデルの複数の頂点から別のターゲット頂点を選択する。すべての頂点を調べたら、システム４２０は、３つの直交面によって共有された六面体モデルの頂点を除去するプロセスを終了する（９７０）。
【００６４】
図１０Ａは、図９に示したコンピュータ実施プロセスに従って、六面体モデルの頂点を除去する前の例示的な３Ｄモデル１０１０と、六面体モデルの頂点を除去した後の例示的な３Ｄモデル１０５０を示す。
【００６５】
図１０Ａでは、３Ｄモデル１０１０は、複数の頂点を含む六面体モデルを含む。システム４２０は、頂点１０２０Ａ、１０２０Ｂ、１０２０Ｃ、１０２０Ｄが除去されるべきであると判定する。これは、これらの頂点の各々が３つの直交面によって共有されているためである。また、システム４２０は、頂点１０３０Ａ、１０３０Ｂ、１０３０Ｄが頂点１０２０Ａに隣接する頂点であり、頂点１０３０Ｅ、１０３０Ｄ、１０３０Ｆが頂点１０２０Ｂに隣接する頂点であり、頂点１０３０Ｄ、１０３０Ｆ、１０３０Ｇが頂点１０２０Ｃに隣接する頂点であり、頂点１０３０Ｄ、１０３０Ｈ、１０３０Ｇが頂点１０２０Ｄに隣接する頂点であると判定する。したがって、システム４２０は、隣接する頂点１０３０Ａ、１０３０Ｂ、１０３０Ｄを頂点として有する第１の三角形Ｓ１と、隣接する頂点１０３０Ｅ、１０３０Ｄ、１０３０Ｆを頂点として有する第２の三角形Ｓ２と、隣接する頂点１０３０Ｄ、１０３０Ｆ、１０３０Ｇを頂点として有する第３の三角形Ｓ３と、隣接する頂点１０３０Ｄ、１０３０Ｈ、１０３０Ｇを頂点として有する第４の三角形Ｓ４とを生成する。さらに、システム４２０は、頂点１０２０Ａ、１０２０Ｂ、１０２０Ｃ、１０２０Ｄにそれぞれ結びついた三角形（簡単にするために図１０Ａには明示的に示していない）を除去し、頂点１０２０Ａ、１０２０Ｂ、１０２０Ｄ、１０２０Ｄも除去する。
【００６６】
図１０Ｂは、図９に示したコンピュータ実施プロセスに従って、除去すべき六面体モデルの頂点を判定する例示的な手法を示す。図１０Ｂに示す例では、頂点１０２０Ｃが除去されるべき頂点であると判定される。システム４２０は、頂点１０３０Ｄ、１０３０Ｆ、１０２０Ｃを有する三角形Ｔ１の第１の法線ベクトルＮ１と、頂点１０２０Ｃ、１０３０Ｆ、１０３０Ｇを有する三角形Ｔ２の第２の法線ベクトルＮ２と、頂点１０３０Ｄ、１０２０Ｃ、１０３０Ｇを有する三角形Ｔ３の第３の法線ベクトルＮ３とを取得する。さらに、システム４２０は、第１の法線ベクトルＮ１と第２の法線ベクトルＮ２とのなす角度θ１と、第２の法線ベクトルＮ２と第３の法線ベクトルＮ３とのなす角度θ２と、第１の法線ベクトルＮ１と第３の法線ベクトルＮ３とのなす角度θ３とを取得する。システム４２０は、角度θ１、θ２、θ３を合計し、角度θ１、θ２、θ３の合計が２７０度であることから頂点１０２０Ｃは除去する必要があると判定する。同様のステップを頂点１０２０Ａ、１０２０Ｂ、１０２０Ｄに対して実行することができる。図９に開示したプロセスを通して、凸頂点（例えば、頂点１０２０Ａ、１０２０Ｂ、１０２０Ｄ）及び凹頂点（例えば、頂点１０２０Ｃ）を除去して３Ｄモデルの表面を平滑化することができる。
【００６７】
図１０Ｃは、図９に示したコンピュータ実施プロセスに従って、３つの直交面によって共有された六面体モデルの頂点を除去する例示的なプロセスを示す。六面体モデルは、頂点１０２０Ａと、頂点１０２０Ａに隣接する頂点１０３０Ａ、１０３０Ｂ、１０３０Ｃとを含む。システム４２０は、頂点１０２０Ａが３つの直交する三角形Ｔ４、Ｔ５、Ｔ６によって共有されていることから頂点１０２０Ａは除去する必要があると判定する。システム４２０は、隣接する頂点１０３０Ａ、１０３０Ｂ、１０３０Ｃを頂点として有する新しい三角形Ｔ７を生成する。さらに、システム４２０は、三角形Ｔ４、Ｔ５、Ｔ６、及び頂点１０２０Ａを除去する。
【００６８】
図１１は、実施形態に従って、３Ｄモデルの直交面を合成するコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図１１のステップは、図８のステップ８２０の一部である。したがって、図１１のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００６９】
システム４２０は、３Ｄモデルの複数の頂点からターゲット頂点を選択する（１１１０）。システム４２０は、一端をターゲット頂点として有し、かつ他端をターゲット頂点に隣接する頂点として有する辺が２つの面（例えば、三角形）によって共有されているかどうかを判定する（１１２０）。辺が２つの面によって共有されているとの判定に応答して、システム４２０は、共通辺を共有する２つの面が互いに直交しているかどうかを判定する（１１２０）。共通辺を共有する２つの面が互いに直交しているとの判定に応答して、システム４２０は、ターゲット頂点及び隣接する頂点のどちらの頂点を保持し、どちらの頂点を除去するかを判定する（１１３５）。一態様では、システム４２０は、より多数の面によって共有されている方の頂点を保持して、もう一方の頂点を除去すると判定する。
【００７０】
システム４２０は、保持すべきと判定された頂点と、共通しない隣接する頂点（すなわち、共通辺から離れた隣接する頂点）とを頂点として有する新しい面を生成する（１１４０）。したがって、新しい面は、除去すべきもう一方の頂点をその頂点として含まない。システム４２０は、直交面１１５０及び除去すべきと判定されたもう一方の頂点を除去する。
【００７１】
一端をターゲット頂点として有し、かつ２つの面によって共有された共通辺が存在しないとのステップ１１２０における判定又は共通辺を共有する２つの面が互いに直交していないとのステップ１１３０における判定に応答して、システム４２０は、ステップ１１６０に進む。
【００７２】
システム４２０は、さらなる頂点を調べる必要があるかどうかを判定する（１１６０）。さらなる頂点を調べる必要があるとの判定に応答して、システム４２０は、ステップ１１１０に進み、３Ｄモデルの複数の頂点から別のターゲット頂点を選択する。すべての頂点を調べたら、システム４２０は、３Ｄモデルの直交面を合成するプロセスを終了する（１１７０）。
【００７３】
図１２は、図１１に示したコンピュータ実施プロセスに従って、３Ｄモデル１２１０の直交面を合成する前の例示的な３Ｄモデル１２１０と、直交面を合成した後の例示的な３Ｄモデル１２５０とを示す。一実施形態では、３Ｄモデル１２１０は、図９、図１０Ａ、及び図１０Ｂに示したように、３つの直交面によって共有された六面体モデルの頂点を除去した後に得られる。
【００７４】
図１２では、３Ｄモデル１２１０は、頂点１２２０及びこれに隣接する頂点１２３０Ａ、１２３０Ｂ、…、１２３０Ｇ（本明細書では「隣接する頂点１２３０」とも呼ばれる）を含む。システム４２０は、第１の辺１２３２Ａが互いに直交する２つの三角形Ｂ１、Ｂ２によって共有されていることから、２つの頂点１２３０Ａ及び１２２０を２つの端として有する第１の辺１２３２Ａは除去する必要があると判定する。さらに、システム４２０は、頂点１２２０が頂点１２３０Ａよりも多数の三角形によって共有されていることから、第１の辺１２３２Ａの頂点１２３０Ａは除去する必要があり、頂点１２２０は保持する必要があると判定する。同様に、システム４２０は、第２の辺１２３２Ｂが互いに直交する２つの三角形Ｂ３、Ｂ４によって共有されていることから、２つの頂点１２３０Ｄ及び１２２０を２つの端として有する第２の辺１２３２Ｂは除去する必要があると判定する。さらに、システム４２０は、頂点１２２０が頂点１２３０Ｄよりも多数の三角形によって共有されていることから、第２の辺１２３２Ｂの頂点１２３０Ｄは除去する必要があり、頂点１２２０は保持する必要があると判定する。システムは、頂点１２２０、１２３０Ｂ、１２３０Ｇを頂点として有する第１の三角形Ｂ１１と、頂点１２２０、１２３０Ｃ、１２３０Ｅを有する第２の三角形Ｂ１２とを生成する。さらに、システム４２０は、三角形Ｂ１、Ｂ２、Ｂ３、Ｂ４ならびに頂点１２３０Ａ及び１２３０Ｄを除去する。
【００７５】
図１３は、実施形態に従って、３Ｄモデルのオフセット頂点（例えば、近傍表面を基準とした多面体の凸頂点又は凹頂点）をトリミングするコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図１３のステップは、図８のステップ８３０の一部である。したがって、図１３のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００７６】
システム４２０は、３Ｄモデルの複数の頂点からターゲット頂点を選択する（１３１０）。システム４２０は、ターゲット頂点が少なくとも３つの面（例えば、三角形）によって共有されているかどうかを判定する（１３２０）。ターゲット頂点が少なくとも３つの面によって共有されているとの判定に応答して、システム４２０は、少なくとも３つの面ごとに、面から離れた、ターゲット頂点に隣接する頂点までの距離ベクトルを取得する（１３３０）。本明細書における距離ベクトルは、面の中心から、面から離れた、ターゲット頂点に隣接する頂点までのベクトルを意味する。面の距離ベクトルの各々は、面の法線ベクトルに対して極性を有する。法線ベクトルは、３Ｄモデルの外側に面する表面の方向として規定することができる。面の距離ベクトルが、３Ｄモデルの内側を指す場合、距離ベクトルは、面の法線ベクトルと異なる極性（又は負極性）を有する。逆に、面の距離ベクトルが、３Ｄモデルの外側を指す場合、距離ベクトルは、面の法線ベクトルと同じ極性（又は正極性）を有する。
【００７７】
システム４２０は、ターゲット頂点が距離ベクトルの極性に基づいてオフセット頂点であるかどうかを判定する（１３４０）。一態様では、各距離ベクトルが同じ極性を有する場合、システム４２０は、ターゲットベクトルはオフセット頂点であると判定する。ターゲットベクトルがすべて負極性を有する場合、システム４２０は、オフセット頂点は凸頂点であると判定する。一方、ターゲットベクトルがすべて正極性を有する場合、システム４２０は、オフセット頂点は凹頂点であると判定する。距離ベクトルが異なる極性を有する場合、システム４２０は、ターゲットベクトルはオフセット頂点ではないと判定する。
【００７８】
システム４２０は、オフセット頂点をシフトさせる（１３５０）。一手法では、ターゲット頂点は、ターゲット頂点の最も近くの隣接する頂点にシフトされる。システム４２０は、重なった面を除去する（１３６０）。このようにして、オフセット頂点は効果的に除去され、３Ｄモデルの表面が平滑化され得る。
【００７９】
ターゲット頂点は少なくとも３つの面によって共有されていないとのステップ１３２０における判定又はターゲット頂点はオフセット頂点ではないとのステップ１３４０における判定に応答して、システム４２０は、ステップ１３７０に進む。
【００８０】
システム４２０は、さらなる頂点を調べる必要があるかどうかを判定する（１３７０）。さらなる頂点を調べる必要があるとの判定に応答して、システム４２０は、ステップ１３１０に進み、３Ｄモデルの複数の頂点から別のターゲット頂点を選択する。すべての頂点を調べたら、システム４２０は、３Ｄモデルのオフセット頂点をトリミングするプロセスを終了する（１３８０）。
【００８１】
図１４Ａは、オフセット頂点１４１０及び１４３０を有する面を有する例示的な３Ｄモデルを示す。図１４Ａの例示的な３Ｄモデルの面は、頂点１４１０、１４２０Ａ、…、１４２０Ｄ、１４３０、及び１４４０Ａ、…、１４４０Ｄによって規定されている。頂点１４１０は、近傍表面から突き出た位置にあり、頂点１４４０は、近傍表面から引っ込んだ位置にある。
【００８２】
図１４Ｂは、図１３に示したコンピュータ実施プロセスに従って、図１４Ａに示した例示的な３Ｄモデルのオフセット頂点１４１０及び１４３０を判定する例示的なプロセスを示す。
【００８３】
システム４２０は、４つの三角形（すなわち、頂点１４２０Ａ、１４２０Ｂ、１４１０を有する第１の三角形、頂点１４２０Ｂ、１４２０Ｃ、１４１０を有する第２の三角形、頂点１４２０Ｃ、１４２０Ｄ、１４１０を有する第３の三角形、及び頂点１４２０Ｄ、１４２０Ａ、１４１０を有する第４の三角形）によって共有された頂点１４１０を選択する。システム４２０は、第１の三角形の中心から頂点１４２０Ｃ、１４２０Ｄまでの距離ベクトル、第２の三角形の中心から頂点１４２０Ａ、１４２０Ｄまでの距離ベクトル、第３の三角形の中心から頂点１４２０Ａ、１４２０Ｂまでの距離ベクトル、及び第４の三角形の中心から頂点１４２０Ｂ、１４２０Ｃまでの距離ベクトルがすべて、負極性を有する（すなわち、３Ｄモデルの内側を指す）と判定する。したがって、システム４２０は、頂点１４１０はオフセット頂点（又は凸頂点）であると判定する。
【００８４】
同様に、システム４２０は、４つの三角形（すなわち、頂点１４４０Ａ、１４４０Ｂ、１４３０を有する第５の三角形、頂点１４４０Ｂ、１４４０Ｃ、１４３０を有する第６の三角形、頂点１４４０Ｃ、１４４０Ｄ、１４３０を有する第７の三角形、及び頂点１４４０Ｄ、１４４０Ａ、１４３０を有する第８の三角形）によって共有された頂点１４３０を選択する。システム４２０は、第５の三角形の中心から頂点１４４０Ｃ、１４４０Ｄまでの距離ベクトル、第６の三角形の中心から頂点１４４０Ａ、１４４０Ｄまでの距離ベクトル、第７の三角形の中心から頂点１４４０Ａ、１４４０Ｂまでの距離ベクトル、及び第８の三角形の中心から頂点１４４０Ｂ、１４４０Ｃまでの距離ベクトルがすべて、正極性を有する（すなわち、３Ｄモデルの外側を指す）と判定する。したがって、システム４２０は、頂点１４３０はオフセット頂点（又は凹頂点）であると判定する。
【００８５】
図１４Ｃは、図１３に示したコンピュータ実施プロセスに従って、図１４Ａの例示的な３Ｄモデルのオフセット頂点１４１０、１４３０を除去した後の例示的な表面を示す。システムは、頂点１４１０の第１の最も近くの隣接する頂点１４２０Ａ及び第２の最も近くの隣接する頂点１４４０Ａを特定し、頂点１４１０、１４３０をそれぞれ隣接する頂点１４２０Ａ及び１４４０Ａにシフトさせる。オフセット頂点からこれに隣接する頂点までの距離がすべて等しい場合、システム４２０は、隣接する頂点のうちのいずれか１つを選択し、オフセット頂点を選択された隣接する頂点にシフトさせてもよい。システム４２０はまた、重なった三角形（例えば、図１４Ｂの第１の三角形、第４の三角形、第５の三角形、及び第８の三角形）を除去する。
【００８６】
図１４Ｄは、図１３に示したコンピュータ実施プロセスに従って、３Ｄモデル１４５０のオフセット頂点をトリミングする前の例示的な３Ｄモデル１４５０と、オフセット頂点をトリミングした後の例示的な３Ｄモデル１４８０とを示す。一実施形態では、３Ｄモデル１４５０は、図１１及び図１２に示したように直交面を合成した後に得られる。
【００８７】
図１４Ｄでは、３Ｄモデル１４５０は、頂点１４７０と、隣接する頂点１４６０Ａ、１４６０Ｂ、…、１４６０Ｆとを含む。システム４２０は、図１３、図１４Ａ、及び図１４Ｂに関して詳細に説明したプロセスを通して、頂点１４７０を共有する三角形の距離ベクトルのすべてが負極性を有する（すなわち、３Ｄモデル１４５０の内側を指す）ことから、頂点１４７０はオフセット頂点（例えば、凸頂点）であると判定する。したがって、システム４２０は、頂点１４７０をその最も近くの隣接する頂点１４６０Ｄにシフトさせ、重なった三角形を除去する。
【００８８】
図１５は、実施形態に従って、３Ｄモデルの外側面を合成するコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図１５のステップは、図８のステップ８４０の一部である。したがって、図１５のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００８９】
システム４２０は、３Ｄモデルの複数の頂点からターゲット頂点を選択する（１５１０）。システム４２０は、ターゲット頂点を共有する面（例えば、三角形）が、実質的に同様の方向を有する外側面であるかどうかを判定する（１５２０）。一手法では、システム４２０は、面の法線ベクトルに従って、ターゲット頂点を共有する面の方向を判定する。一手法では、システム４２０は、ターゲット頂点を共有する面の平均方向（例えば、法線ベクトルの平均ベクトル）を取得する。面の方向が、平均方向から所定の方向範囲（例えば、所定のベクトル範囲）だけ外れている場合、システム４２０は、面は外側面ではないと判定する。ターゲット頂点を共有する面の方向が、平均方向から所定のベクトル範囲内にある場合、システム４２０は、面は外側面であると判定する。
【００９０】
ターゲット頂点を共有する面は外側面であるとの判定に応答して、システム４２０は、ターゲット頂点をシフトさせる（１５３０）。一手法では、ターゲット頂点は、ターゲット頂点の最も近くの隣接する頂点にシフトされる。システム４２０は、重なった面を除去する（１５４０）。効果的に、外側面が、単一の面に合成（又はマージ）される。
【００９１】
ターゲット頂点を共有する面は外側面ではないとのステップ１５２０における判定に応答して、システム４２０は、ステップ１５５０に進む。
【００９２】
システム４２０は、さらなる頂点を調べる必要があるかどうかを判定する（１５５０）。さらなる頂点を調べる必要があるとの判定に応答して、システム４２０は、ステップ１５１０に進み、３Ｄモデルの複数の頂点から別のターゲット頂点を選択する。すべての頂点を調べたら、システム４２０は、３Ｄモデルの外側面を合成するプロセスを終了する（１５６０）。
【００９３】
図１６は、図１５に示したコンピュータ実施プロセスに従って、３Ｄモデル１６１０の外側面を合成する前の例示的な３Ｄモデル１６１０と、外側面を合成した後の例示的な３Ｄモデル１６５０とを示す。
【００９４】
図１６では、３Ｄモデル１６１０は、頂点１６２０と、隣接する頂点１６３０Ａ、１６３０Ｂ、１６３０Ｃとを含む。頂点１６２０は、頂点１６３０Ａ、１６３０Ｂ、１６２０を有する第１の三角形、頂点１６３０Ｂ、１６３０Ｃ、１６２０を有する第２の三角形、及び頂点１６３０Ａ、１６３０Ｃ、１６２０を有する第３の三角形によって共有されている。システム４２０は、第１の三角形、第２の三角形、及び第３の三角形のそれぞれの法線ベクトルＶ１、Ｖ２、Ｖ３を取得する。システム４２０は、平均法線ベクトルＶａｖｇを取得し、法線ベクトルＶ１、Ｖ２、Ｖ３が平均ベクトルから所定のベクトル範囲内にあると判定する。したがって、システム４２０は、頂点１６２０を共有する第１の三角形、第２の三角形、及び第３の三角形は外側三角形であると判定する。
【００９５】
システム４２０は、頂点１６２０をその最も近くの隣接する頂点１６３０Ａにシフトさせる。外側三角形によって共有された共通頂点からこれに隣接する頂点までの距離がすべて等しい場合、システム４２０は、隣接する頂点のうちのいずれか１つを選択し、頂点１６２０を選択された隣接する頂点にシフトさせる。システムはまた、重なった三角形（例えば、頂点１６２０を共有する第１の三角形及び第３の三角形）を除去する。このようにして、第１の三角形、第２の三角形、及び第３の三角形は、頂点１６３０Ａ、１６３０Ｂ、１６３０Ｃを有する単一の三角形に効果的にマージされる。
【００９６】
図１７は、実施形態に従って、３Ｄモデルの辺のバランスをとるコンピュータ実施プロセスを示すフローチャートである。一実施形態では、図１７のステップは、図８のステップ８５０の一部である。したがって、図１７のステップは、図４のシステム４２０（例えば、表面最適化モジュール４４０）によって実行される。他の実施形態では、他のエンティティが、ステップの一部又は全部を実行してもよい。同様に、実施形態は、異なるステップ及び／又は追加のステップを含んでもよいし、異なる順序でステップを実行してもよい。
【００９７】
システム４２０は、３Ｄモデルの複数の頂点からターゲット頂点を選択する（１７１０）。システム４２０は、ターゲット頂点が少なくとも３つの面（例えば、三角形）によって共有されているかどうかを判定する（１７２０）。ターゲット頂点が少なくとも３つの面によって共有されているとの判定に応答して、システム４２０は、ターゲット頂点に２つの９０°の角度が形成されているかどうかを判定する（１７３０）。ターゲット頂点に少なくとも２つの９０°の角度が形成されているとの判定に応答して、システム４２０は、ターゲット頂点を端としてそれぞれ有する最長辺及び最短辺を特定する（１７４０）。
【００９８】
システム４２０は、特定された最長辺及び最短辺に基づいてターゲット頂点をシフトさせる（１７５０）。一手法では、システム４２０は、最長辺の長さと最短辺の長さとの差を取得し、この差の半分だけ最長辺の他端に向けてターゲット頂点をシフトさせる。
【００９９】
ターゲット頂点が少なくとも３つの三角形によって共有されていないとのステップ１７２０における判定又はターゲット頂点に少なくとも２つの９０°の角度が形成されていないとのステップ１７３０における判定に応答して、システム４２０は、ステップ１７６０に進む。
【０１００】
システム４２０は、さらなる頂点を調べる必要があるかどうかを判定する（１７６０）。さらなる頂点を調べる必要があるとの判定に応答して、システム４２０は、ステップ１７１０に進み、３Ｄモデルの複数の頂点から別のターゲット頂点を選択する。すべての頂点を調べたら、システム４２０は、３Ｄモデルの辺のバランスをとるプロセスを終了する（１７７０）。
【０１０１】
図１８は、図１７に示したコンピュータ実施プロセスに従って、３Ｄモデル１８１０の辺のバランスをとる前の例示的な３Ｄモデル１８１０と、辺のバランスをとった後の例示的な３Ｄモデル１８８０とを示す。一実施形態では、３Ｄモデル１８１０は、図１５及び図１６に示したように外側面を合成した後に得られる。
【０１０２】
図１８では、３Ｄモデル１８１０は、頂点１８２０と、隣接する頂点１８３０Ａ、…、１８３０Ｅとを含む。システム４２０は、頂点１８２０が頂点１８２０を共有する５つの三角形を有し、２つの９０°の角度が頂点１８２０に形成されていると判定する。このようにして、システム４２０は、頂点１８２０を共有する３Ｄモデル１８１０の辺のバランスをとる。一態様では、システム４２０は、頂点１８２０を共有する最長辺１８３５Ａ及び最短辺１８３５Ｂを特定する。システム４２０は、辺１８３５Ａの長さと辺１８３５Ｂの長さとの差を取得し、この差の半分だけ頂点１８３０Ａに向けて頂点１８２０をシフトさせる。したがって、バランスをとった後の３Ｄモデル１８６０は、バランスをとる前の３Ｄモデル１８１０よりもバランスのとれた辺の長さを有する。
【０１０３】
図１９Ａは、一実施形態に従って、３Ｄモデル１９１０に表面最適化を実行する前の六面体モデルを含む例示的な３Ｄモデル１９１０と、表面最適化を実行した後の例示的な３Ｄモデル１９５０とを示す。図１９Ａに示すように、３Ｄモデル１９１０の粗面又は凹凸面は、図８〜図１８に関して詳細に説明したように表面最適化を実行することによって平滑化される。
【０１０４】
図１９Ｂは、一実施形態に従って、図７Ｅに示した六面体モデルを含む３Ｄモデル７９０に表面最適化を実行した後の例示的な３Ｄモデル１９９０を示す。本明細書に開示した表面最適化を実行していない図７Ｅの３Ｄモデル７９０と比較して、３Ｄモデル１９９０は、平滑な表面を含み、３Ｄモデル７９０よりも写実的な形状を有するように最適化されている。
【０１０５】
図１９Ｃは、実施形態に従って、図１９Ｂに示した例示的な３Ｄモデル１９９０の部分１９９２の拡大図である。図１９Ｃに示す例示的な図では、３Ｄモデル１９９０の表面は、人間の頭蓋骨の複雑な形状を表現する複数の三角形からなる。
【０１０６】
計算機のアーキテクチャ
図２０は、プロセッサ（又はコントローラ）で機械可読媒体から命令を読み出し、これらを実行することができる例示的な機械の構成要素を示すブロック図である。具体的には、図２０は、例えば図１〜図１９を用いて本明細書に述べた方法のうちの任意の１つ以上を機械に実行させるための命令２０２４（例えば、ソフトウェア又はプログラムコード）が実行され得るコンピュータシステム２０００の例示的な形態の機械の概略図を示す。代替実施形態では、機械は、スタンドアロン装置として動作するか、又は他の機械に接続（例えば、ネットワーク接続）されてもよい。ネットワーク配置において、機械は、サーバ・クライアント・ネットワーク環境内のサーバ機械もしくはクライアント機械又はピアツーピア（又は分散）ネットワーク環境内のピア機械として機能してもよい。
【０１０７】
機械は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ：ＰＣ）、タブレットＰＣ、セット・トップ・ボックス（ｓｅｔ−ｔｏｐ  ｂｏｘ：ＳＴＢ）、携帯情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ：ＰＤＡ）、携帯電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、又はその機械によって行われるべき動作を指定する命令２０２４（シーケンシャルな又は別種の）を実行することができる任意の機械であってもよい。さらに、単一の機械のみが示されているが、用語「機械」はまた、本明細書に述べた方法のうちの任意の１つ以上を実行するために命令２０２４を個別に又は一緒に実行する機械の集合を含むと考えられるべきである。
【０１０８】
例示的なコンピュータシステム２０００は、１つ以上のプロセッサ（一般に、プロセッサ２００２）（例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＣＰＵ）、グラフィック処理装置（ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：ＧＰＵ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ：ＤＳＰ）、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、１つ以上の無線周波数集積回路（ｒａｄｉｏ−ｆｒｅｑｕｅｎｃｙ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：ＲＦＩＣ）、又はこれらの任意の組み合わせ）と、メインメモリ２００４と、スタティックメモリ２００６とを含み、これらは、バス２００８を介して互いに通信するように構成されている。コンピュータシステム２０００は、グラフィック・ディスプレイ・ユニット２０１０（例えば、プラズマ・ディスプレイ・パネル（ｐｌａｓｍａ  ｄｉｓｐｌａｙ  ｐａｎｅｌ：ＰＤＰ）、液晶ディスプレイ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ：ＬＣＤ）、プロジェクタ、又はブラウン管（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ：ＣＲＴ））をさらに含んでもよい。コンピュータシステム２０００はまた、英数字入力装置２０１２（例えば、キーボード）と、カーソル制御装置２０１４（例えば、マウス、トラックボール、ジョイスティック、モーションセンサ、又は他のポインティング機器）と、記憶ユニット２０１６と、信号生成装置２０１８（例えば、スピーカ）と、ネットワークインターフェース装置２０２０とを含んでもよく、その場合、これらもまた、バス２００８を介して通信するように構成される。
【０１０９】
記憶ユニット２０１６は、本明細書に記載の方法又は機能のうちの任意の１つ以上を具体化する命令２０２４を記憶した機械可読媒体２０２２を含む。命令２０２４はまた、コンピュータシステム２０００によるその実行中にメインメモリ２００４内又はプロセッサ２００２内（例えば、プロセッサのキャッシュメモリ内）に完全に又は少なくとも部分的に常駐されてもよく、その場合、メインメモリ２００４及びプロセッサ２００２はまた、機械可読媒体を構成する。命令２０２４は、ネットワークインターフェース装置２０２０を用いてネットワーク２０２６を介して送信又は受信されてもよい。
【０１１０】
機械可読媒体２０２２は、例示的な実施形態では単一の媒体として示されているが、用語「機械可読媒体」は、命令（例えば、命令２０２４）を記憶することができる単一の媒体又は複数の媒体（例えば、集中型もしくは分散型のデータベース又は関連するキャッシュ及びサーバ）を含むと考えられるべきでる。用語「機械可読媒体」はまた、機械によって実行するための命令（例えば、命令２０２４）を記憶することができ、本明細書に開示した方法のうちの任意の１つ以上を機械に実行させる任意の媒体を含むと考えられるべきである。用語「機械可読媒体」は、固体メモリ、光媒体、及び磁気媒体の形態のデータレポジトリを含むが、これに限定されない。
【０１１１】
構成に関する補足的な留意事項
一態様では、本明細書に開示されている原理は、医療用途に適用することができる。例えば、仮想３Ｄモデルは、医療におけるデジタル画像及び通信（Ｄｉｇｉｔａｌ  Ｉｍａｇｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｉｎ  Ｍｅｄｉｃｉｎｅ：ＤＩＣＯＭ）のファイルフォーマットの２Ｄ断面画像に基づいて生成することができる。３Ｄモデルは、従来の任意の３Ｄ記述フォーマット（例えば、ＳＴＬフォーマット、３ＤＭＡＸの３ＤＳフォーマット、ＭＡＹＡのＯＢＪフォーマットなど）に変換することができる３Ｄモデルデータによって表現することができる。３Ｄモデルは、患者の医学的状態の判断を助けるために、身体部分の構造的問題の原因を特定するために、又は特定の処置（例えば、歯科インプラント、整形外科手術など）を行った後の状況をシミュレートするために視覚的に提示することができる。さらに、３Ｄモデルは、医師の手術の準備、身体部分の代替物の作製などを助けるために３Ｄ印刷によって有形の形態としてレンダリングすることができる。
【０１１２】
本明細書に開示されている原理は、３Ｄモデルを使用する他の用途（例えば、３Ｄアニメーション、ゲーム、３Ｄ  ＣＡＤなど）にも適用することができる。
【０１１３】
開示されている構成の利点は、複雑な形状を有するオブジェクト（例えば、相互に絡み合ったオブジェクト又は別のオブジェクト内に配置されたオブジェクト）を正確に表現することができる六面体モデルを含む仮想３Ｄモデルを生成することを含む。例えば、ユーザは、２Ｄ断面画像上の少数のオブジェクト（例えば、骨、動脈、靭帯、任意の器官、又はこれらの任意の組み合わせ）を選択し、選択されなかった身体部分が、選択された部分が仮想３Ｄ空間内でどのように構造化されているかを表現しなくとも、局所的な３Ｄモデルを生成することができる。さらに、複数の仮想六面体モデルに基づいて３Ｄモデルを生成することによって、３Ｄモデルが、３Ｄ印刷を正確に実行できるようにする閉じた形状を有することが保証される。
【０１１４】
さらに、本明細書に開示したように、六面体モデルを含む３Ｄモデルに表面最適化を実行することによって、３Ｄモデルの粗面又は凹凸面は、処理リソース（例えば、プロセッサスレッド、記憶容量など）に関して効率的な仕方で平滑化することができる。例えば、数千万の六面体モデルを含む３Ｄモデルの表面を平滑化するために解析されるべき頂点及び面（例えば、三角形）の数は、本明細書に開示したように表面最適化を実行することによって１桁分低減することができる。その結果、処理リソースを節約することができる。
【０１１５】
本明細書を通して、単一の例として説明した構成要素、動作、又は構造は、複数の例によって実施されてもよい。１つ以上の方法の個々の動作は、別々の動作として示され、説明されているが、１つ以上の個々の動作は、同時に実行されてもよく、動作を図示の順序で実行する必要はない。例示的な構成において別々の構成要素として提示された構造及び機能は、組み合わされた構造又は構成要素として実施されてもよい。同様に、単一の構成要素として提示された構造及び機能は、別々の構成要素として実施されてもよい。これら及び他の変形、修正、追加、及び改良は、本明細書の主題の範囲内に入る。
【０１１６】
特定の実施形態は、本明細書では、例えば図４に示したように論理又は多数の構成要素、モジュール、もしくはメカニズムを含むものとして説明されている。モジュールは、ソフトウェアモジュール（例えば、機械可読媒体上又は伝送信号上で具体化されたコード）又はハードウェアモジュールのいずれかを構成してもよい。ハードウェアモジュールは、特定の動作を実行することができる有形のユニットであり、特定の方法で構成又は配置されてもよい。例示的な実施形態では、１つ以上のコンピュータシステム（例えば、スタンドアロンのクライアントもしくはサーバコンピュータシステム）又はコンピュータシステムの１つ以上のハードウェアモジュール（例えば、プロセッサもしくはプロセッサグループ）は、本明細書に記載した特定の動作を実行するように動作するハードウェアモジュールとしてソフトウェア（例えば、アプリケーション又はアプリケーション部分）によって構成されてもよい。
【０１１７】
様々な実施形態において、ハードウェアモジュールは、機械的又は電子的に実施されてもよい。例えば、ハードウェアモジュールは、特定の動作を実行するように（例えば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）又は特定用途向け集積回路（ＡＳＩＣ）などの特殊用途プロセッサとして）恒久的に構成された専用回路又は論理を備えてもよい。ハードウェアモジュールはまた、特定の動作を実行するようにソフトウェアによって一時的に構成されるプログラマブル論理又は回路（例えば、汎用プロセッサ又は他のプログラマブルプロセッサ内に含まれる）を備えてもよい。恒久的に構成された専用回路又は一時的に構成される回路（例えば、ソフトウェアによって構成される回路）のどちらで機械にハードウェアモジュールを実施するのかの決定は、コスト及び時間を考慮して行われてもよい。
【０１１８】
本明細書に記載の例示的な方法の様々な動作は、関連する動作を実行するように（例えば、ソフトウェアによって）一時的に構成される又は恒久的に構成された１つ以上のプロセッサ（例えば、プロセッサ２００２）によって少なくとも部分的に実行されてもよい。一時的な仕方又は恒久的な仕方のどちらで構成されようと、このようなプロセッサは、１つ以上の動作又は機能を実行するように動作するプロセッサ実施モジュールを構成することができる。本明細書で言及されたモジュールは、一部の例示的な実施形態では、プロセッサ実施モジュールを備えてもよい。
【０１１９】
１つ以上のプロセッサはまた、「クラウドコンピューティング」環境又は「サービスとしてのソフトウェア」（ｓｏｆｔｗａｒｅ  ａｓ  ａ  ｓｅｒｖｉｃｅ：ＳａａＳ）の関連動作のパフォーマンスをサポートするように動作してもよい。例えば、動作の少なくとも一部は、（プロセッサを含む機械の例として）コンピュータグループによって実行されてもよく、その場合、これらの動作は、ネットワーク（例えば、インターネット）及び１つ以上の適切なインターフェース（例えば、アプリケーション・プログラム・インターフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ：ＡＰＩ））を介してアクセス可能である。
【０１２０】
特定の動作のパフォーマンスは、１つ以上のプロセッサ（単一の機械内に存在するだけでなく、多数の機械にも配置される）に分散されてもよい。一部の例示的な実施形態では、１つ以上のプロセッサ又はプロセッサ実施モジュールは、単一の地理的位置（例えば、家庭環境、オフィス環境、又はサーバファーム内）に配置されてもよい。他の例示的な実施形態では、１つ以上のプロセッサ又はプロセッサ実施モジュールは、多数の地理的位置に分散されてもよい。
【０１２１】
本明細書のいくつかの部分は、機械メモリ（例えば、コンピュータメモリ）内にビット又はバイナリデジタル信号として記憶されたデータに対する動作のアルゴリズム又は記号表現の観点から提示されている。これらのアルゴリズム又は記号表現は、これらの働きの実質を他の当業者に伝えるためにデータ処理技術の当業者によって使用される技術の例である。本明細書で使用される場合、「アルゴリズム」は、所望の結果をもたらす自己矛盾のない動作シーケンス又は同様の処理である。これに関連して、アルゴリズム及び動作は、物理量の物理的操作を含む。典型的には、必須ではないが、このような量は、機械によって記憶、アクセス、伝送、結合、比較、又は他の操作が行われ得る電気信号、磁気信号、又は光信号の形態を取ることができる。「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「項」、「数」、又は「数字」などの語を用いてこのような信号を呼ぶことは、主に一般的な用法の理由から時には便利である。しかしながら、これらの語は、便利なラベルに過ぎず、適切な物理量に関連付けられるべきである。
【０１２２】
他に別段の指示がない限り、「処理する」、「計算する」、「算定する」、「判定する」、「提示する」、又は「表示する」などの語を用いた本明細書の説明は、１つ以上のメモリ（例えば、揮発性メモリ、不揮発性メモリ、もしくはこれらの組み合わせ）、レジスタ、又は情報を受信、記憶、送信、もしくは表示する他の機械の構成要素内の物理的（例えば、電子的、磁気的、又は光学的）量として表されるデータを操作又は変換する機械（例えば、コンピュータ）の動作又はプロセスを意味し得る。
【０１２３】
本明細書で使用される場合、「一実施形態」又は「実施形態」への言及は、実施形態に関連して説明されている特定の要素、特徴、構造、又は特性が少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態では」という句の記載の必ずしもすべてが、同じ実施形態を指しているとは限らない。
【０１２４】
一部の実施形態は、「結びついた（ｃｏｕｐｌｅｄ）」及び「接続された（ｃｏｎｎｅｃｔｅｄ）」という表現を、これらの派生語と共に用いて説明されている場合がある。例えば、一部の実施形態は、２つ以上の要素が物理的又は電気的に直接接触していることを示すために用語「結びついた」を用いて説明されている場合がある。しかしながら、用語「結びついた」は、２つ以上の要素が互いに直接接触していないものの、互いに協働又は相互作用することも意味し得る。実施形態は、これに関連して限定されない。
【０１２５】
本明細書で使用される場合、用語「備える（ｃｏｍｐｒｉｓｅｓ）」、「備えている（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｅｓ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｈａｓ）」、「有している（ｈａｖｉｎｇ）」、又はこれらの任意の他の変異は、非排他的な包含を意味するよう意図されている。例えば、要素のリストを含むプロセス、方法、物品、又は装置は、必ずしもそれらの要素だけに限定されず、明示的に列挙されていない他の要素又はそのようなプロセス、方法、物品、もしくは装置に固有の他の要素を含み得る。さらに、相容れない別段の指示がない限り、「又は」は、包含的論理和を意味し、排他的論理和を意味しない。例えば、条件Ａ又はＢは、以下のいずれかによって満たされる。Ａが真であり（又は存在し）、かつＢが偽である（又は存在しない）、Ａが偽であり（又は存在せず）、かつＢが真である（又は存在しない）、Ａ及びＢの両方が真である（又は存在する）。
【０１２６】
さらに、「ある（ａ）」又は「ある（ａｎ）」の使用は、本明細書の実施形態の要素及び構成要素を説明するために用いられる。これは、単に便宜のために、また本発明の一般的な意味を与えるために行われる。この説明は、１つ又は少なくとも１つを含むと解釈されるべきであり、単数形は、明白に他の意図がない限り、複数形をも含む。
【０１２７】
この開示を読むことで、当業者ならば、本明細書の開示されている原理を通して、仮想六面体を含む仮想３Ｄモデルの３Ｄモデルデータを生成するシステム及びプロセスのためのさらなる代替的な構造及び機能上の設計を理解するであろう。以上、特定の実施形態及び用途を示して説明してきたが、開示されている実施形態が、本明細書に開示されているまさにその構成及び構成要素に限定されないことを理解されたい。添付の特許請求の範囲で規定される精神及び範囲から逸脱することなく、本明細書に開示されている方法及び装置の配置、動作、及び詳細に関して、当業者には明らかな様々な修正、変更、及び変形を行うことができる。
【図１】
0006533593.tif 000002
【図２】
0006533593.tif 000003
【図３】
0006533593.tif 000004
【図４】
0006533593.tif 000005
【図５】
0006533593.tif 000006
【図６】
0006533593.tif 000007
【図７Ａ】
0006533593.tif 000008
【図７Ｂ】
0006533593.tif 000009
【図７Ｃ】
0006533593.tif 000010
【図７Ｄ】
0006533593.tif 000011
【図７Ｅ】
0006533593.tif 000012
【図７Ｆ】
0006533593.tif 000013
【図８】
0006533593.tif 000014
【図９】
0006533593.tif 000015
【図１０Ａ】
0006533593.tif 000016
【図１０Ｂ】
0006533593.tif 000017
【図１０Ｃ】
0006533593.tif 000018
【図１１】
0006533593.tif 000019
【図１２】
0006533593.tif 000020
【図１３】
0006533593.tif 000021
【図１４Ａ】
0006533593.tif 000022
【図１４Ｂ】
0006533593.tif 000023
【図１４Ｃ】
0006533593.tif 000024
【図１４Ｄ】
0006533593.tif 000025
【図１５】
0006533593.tif 000026
【図１６】
0006533593.tif 000027
【図１７】
0006533593.tif 000028
【図１８】
0006533593.tif 000029
【図１９Ａ】
0006533593.tif 000030
【図１９Ｂ】
0006533593.tif 000031
【図１９Ｃ】
0006533593.tif 000032
【図２０】
0006533593.tif 000033