(57)【要約】【課題】点群データによって表わされる物体について、角を正確に再現可能な形状データを生成する。【解決手段】点群データによって表わされる物体の形状を示す形状データを以下のように生成する。まず面取得部110で、点群データから、物体における複数の面のそれぞれの形状および空間位置を表す面データを取得する。面拡張部105で、対応する面を拡張した拡張面を表す拡張面データを生成する。面分割部106で、拡張面同士の交線で拡張面を分割した分割面を表す分割面データを生成する。そして面抽出部107で、該生成された分割面データのうち、物体を構成する分割面データを抽出し、面合成部108で、該抽出された分割面データを合成する。これにより、鮮鋭な角を有する物体を再現可能な形状データが得られる。【選択図】図1
2015095000.tif 000002
【特許請求の範囲】
【請求項１】
点群データによって表わされる物体の形状を示す形状データを生成する画像処理装置であって、
物体の点群データから、該物体における複数の面のそれぞれの形状および空間位置を表す面データを取得する面取得手段と、
前記面データから、対応する面を拡張した拡張面を表す拡張面データを生成する面拡張手段と、
前記拡張面データから、前記拡張面同士の交線で前記拡張面を分割した分割面を表す分割面データを生成する面分割手段と、
該生成された前記分割面データのうち、前記物体を構成する前記分割面データを抽出する面抽出手段と、
該抽出された前記分割面データを合成する面合成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記面拡張手段は、前記拡張面同士が空間上で交差するように、前記拡張面データを生成することを特徴とする請求項1に記載の画像処理装置。
【請求項３】
前記面取得手段は、前記点群データから、該点群データを仮想カメラで撮影した画像における、該仮想カメラと該点群データとの距離を示す深度値の分布からなるデプスマップを生成し、該デプスマップにおける連続面を抽出して前記面データとすることを特徴とする請求項1または2に記載の画像処理装置。
【請求項４】
前記面取得手段は、前記デプスマップから、前記点群データが生成する面の法線ベクトルを示す法線マップを生成し、前記デプスマップと前記法線マップから前記連続面を抽出することを特徴とする請求項3に記載の画像処理装置。
【請求項５】
前記面取得手段は、前記デプスマップにおいて前記深度値が連続して存在し、かつ前記法線マップにおいて対応する前記法線ベクトルの変動が所定値以内である所定サイズ以上の領域を、前記連続面として前記デプスマップから抽出することを特徴とする請求項4に記載の画像処理装置。
【請求項６】
前記面拡張手段は、前記法線マップにおいて、面を拡張した部分に対する法線ベクトルを、該拡張部分に隣接する部分の法線ベクトルに基づいて生成することを特徴とする請求項4または5に記載の画像処理装置。
【請求項７】
前記面拡張手段は、前記面取得手段で抽出された前記デプスマップにおける前記連続面から、前記拡張面を示すポリゴンデータを生成することを特徴とする請求項3乃至6のいずれか1項に記載の画像処理装置。
【請求項８】
前記面取得手段は、前記面データとしてポリゴンデータを取得することを特徴とする請求項1または2に記載の画像処理装置。
【請求項９】
前記面拡張手段は、前記ポリゴンデータが示すポリゴン群に対して新規のポリゴンを追加して前記拡張面データを生成することを特徴とする請求項8に記載の画像処理装置。
【請求項１０】
前記面抽出手段は、前記拡張面ごとに、当該拡張面の重心に最も近い重心を有する分割面を示す前記分割面データを抽出することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項１１】
前記面抽出手段は、前記拡張面ごとに、面積が最大である分割面を示す前記分割面データを抽出することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項１２】
前記面抽出手段は、前記拡張面ごとに、頂点数が最大である分割面を示す前記分割面データを抽出することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項１３】
前記面抽出手段は、前記拡張面ごとに、拡張により増加した頂点の割合が所定値以下である分割面を示す前記分割面データを抽出することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項１４】
前記面抽出手段は、前記拡張面ごとに、拡張による面積増加の割合が所定値以下である分割面を示す前記分割面データを抽出することを特徴とする請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項１５】
面取得手段、面拡張手段、面分割手段、面抽出手段、および面合成手段、を有し、点群データによって表わされる物体の形状を示す形状データを生成する画像処理装置における画像処理方法であって、
前記面取得手段が、物体の点群データから、該物体における複数の面のそれぞれの形状および空間位置を表す面データを取得し、
前記面拡張手段が、前記面データから、対応する面を拡張した拡張面を表す拡張面データを生成し、
前記面分割手段が、前記拡張面データから、前記拡張面同士の交線で前記拡張面を分割した分割面を表す分割面データを生成し、
前記面抽出手段が、該生成された前記分割面データのうち、前記物体を構成する前記分割面データを抽出し、
前記面合成手段が、該抽出された前記分割面データを合成する、ことを特徴とする画像処理方法。
【請求項１６】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至14のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１７】
請求項16に記載のプログラムを記憶したことを特徴とするコンピュータが読み出し可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の形状を示す形状データを生成する画像処理装置および画像処理方法に関する
【背景技術】
【０００２】
実在の被写体の形状をデータ化する技術は、特にCAD・CG分野で用いられる重要な技術である。このデータ化技術は通常、測定器などにより被写体を表す点群データを取得する手段と、該点群データをCAD・CG用のアプリケーションで利用可能な形式に変換する形状データ生成手段からなる。
【０００３】
点群データがある物体表面上に位置する点の集合であり、個々の点が三次元座標で定義されるデータであるとすると、形状データは、前記物体の形状を三角形の集合で近似した場合の個々の三角形についての頂点座標データの集合として定義される。このような三角形の集合は一般にポリゴンと呼ばれている。
【０００４】
点群データは、3Dスキャナや、多視点で撮影された被写体の画像から被写体上の点群を求めるMulti view stereo分野の技術を利用して生成可能であることが知られている。
【０００５】
点群データから形状データを生成する方法としては様々な手法があるが、中でも非特許文献1に記載された"Poisson surface reconstruction"が高精度な形状データ生成方法として知られている。また特許文献1に記載されたポリゴン化手法も知られている。該ポリゴン化手法ではまず、点群上に1つの三角形を定義する。そしてかかる三角形を構成する三辺の各々の辺について、新たな頂点を周囲の点群の配置状況に適するよう作成し、辺と接続することによって新規に3つの三角形を追加する。この操作の繰り返しにより、点群をポリゴン化する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2003-346182号公報
【非特許文献】
【０００７】
【非特許文献１】M.Kazhdan,M.Bolitho,and H.Hoppe,“Poisson surface reconstruction,”in Symp.Geom.Proc.,2006.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来の形状データ生成手法では、被写体がもつ鮮鋭な角を正確に生成することが困難であるという課題がある。例えば、立方体表面上の点群データから立方体の形状データの生成を行う場合、非特許文献1の方法では角が丸くなってしまい、本来の形状とは異なる形状データが生成されてしまう。また特許文献1に記載の方法では、新規に追加される頂点と、対応する辺の距離は固定であるため、新規に追加される頂点が丁度物体の角に配置される保証がなく、鮮鋭な角を正確に生成することが困難である。
【０００９】
本発明は上述した問題を解決するために、点群データによって表わされる物体について、物体の角を正確に再現可能な形状データを生成することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するための一手段として、本発明の形状生成装置は以下の構成を備える。すなわち、点群データによって表わされる物体の形状を示す形状データを生成する画像処理装置であって、物体の点群データから、該物体における複数の面のそれぞれの形状および空間位置を表す面データを取得する面取得手段と、前記面データから、対応する面を拡張した拡張面を表す拡張面データを生成する面拡張手段と、前記拡張面データから、前記拡張面同士の交線で前記拡張面を分割した分割面を表す分割面データを生成する面分割手段と、該生成された前記分割面データのうち、前記物体を構成する前記分割面データを抽出する面抽出手段と、該抽出された前記分割面データを合成する面合成手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、点群データによって表わされる物体について、物体の角を正確に再現可能な形状データを生成することができる。
【図面の簡単な説明】
【００１２】
【図１】第1実施形態における形状生成装置の機能構成を示すブロック図、
【図２】第1実施形態における形状データ生成処理を示すフローチャート、
【図３】本発明の概要を説明する図、
【図４】第1実施形態における点群データの例を示す図、
【図５】デプスマップ生成の概念を示す図、
【図６】デプスマップに対する処理を説明する図、
【図７】デプスマップからポリゴンデータを生成する例を示す図、
【図８】拡張面同士が交差する様子を示す図、
【図９】拡張面と交線の関係を示す図、
【図１０】交線による分割面の例を示す図、
【図１１】分割面ごとの重心を示す図、
【図１２】合成後ポリゴンデータの形状を示す図、
【図１３】第2実施形態における面拡張処理を示すフローチャート、
【図１４】第2実施形態における面拡張の例を示す図、である。
【発明を実施するための形態】
【００１３】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜第1実施形態＞
●概要
本実施形態の詳細な説明に先立ち、上記従来の形状データ生成技術における課題と本発明の要旨について説明する。なおここでは、説明を簡単にするため、2次元の点群データから形状データを生成する場合について説明する。
【００１５】
図3(a)は、角が直角である形状Xを表す。図3(b)は、形状Xを3Dスキャナ等で測定して得られた点群を示す。点群は形状X上に生成されるが、図3(b)のように必ずしも本来の形状Xの角の位置に点が生成されるわけではない。図3(c)は、図3(b)の点群から生成された形状を表す。図3(c)に示すように、点群データから形状データを生成するには、点群を連続的に連結すれば良いが、本来は角であったはずの部分が一部欠けた様相となり、本来の形状と異なる形状データが生成されてしまう。非特許文献1の手法によって生成される形状データは、必ずしも点群を連続的に連結したものではなく、滑らかに接続されるように形状を生成するため、図3(c)に示す形状よりも一層角が丸くなる。すなわち、従来の形状データ生成技術では、形状Xの角部分がうまく再現できない場合がある。
【００１６】
この課題に対し、本発明では点群から連続である面(図3の例では2次元であるため線分)を抽出し、図3(d)の点線で示すように、該抽出した面(線分)を拡張する。この拡張により、空間上で面(線分)同士が交差するため、交差点に新規頂点を設ける。そして交差点を境に面を4つに(線を2つに)分割して、拡張した面(線)分を削除することにより、図3(e)に示すような角がある形状を生成する。本発明では以上のような面拡張、頂点設定、削除を行うことで、オリジナルの形状Xに近い形状データを得ることができる。
【００１７】
図1は、本実施形態における形状生成を行う画像処理装置(以下、形状生成装置)の構成を示すブロック図であり、該装置によって図2のフローチャートに示す形状データ生成処理を行う。以下、図2のフローチャートに従い、図1に示す形状生成装置の各構成における動作を説明する。
【００１８】
●点群データ取得処理(S201)
まずS201で点群データ取得部101により、処理対象となる物体の点群データを取得する。点群データは図4に示すように、各点の3次元位置座標値xyzで構成される。図4において、各行のP1,P2,…は点の識別子であり、点ごとに対応する3次元位置座標を表している。なお、点群データは通信網を介して取得しても良いし、3Dスキャナと点群データ取得部101をケーブルで連結して、点群データ取得部101に逐次データが供給されるようにしても良い。
【００１９】
●デプスマップ生成処理(S202)
次にS202ではデプスマップ生成部102で、点群データからデプスマップを生成する。図5に、デプスマップ生成の概念図を示す。図5では、オリジナルの形状である立方体501から、3Dスキャナ等により点群502を取得した例を示している。図5ではさらに、点群502を囲むように複数の仮想カメラが配置され、そのうちの1つである仮想カメラ1のパラメータを用いて作成されたデプスマップd1(u,v)の例を示している。
【００２０】
デプスマップd1(u,v)は、仮想カメラ1で点群502を撮影した画像において、画素ごとに、RGB値に代えて対応する点とカメラとの距離を示す深度値を保持したデータであり、すなわち点群502をある面から観察した場合の深度値の分布を示す。図5のデプスマップでは1セルが1画素を示しており、色によって深度値を示している。すなわち、セルの色が濃いほど、深度値が小さくカメラに近いことを表す。
【００２１】
仮想カメラの台数および配置は、点群502の全ての点群がいずれかの仮想カメラから撮影されるように設定する。最良の設定方法は、3Dスキャナで点群を取得する場合であれば、測定時の物体に対する3Dスキャナの配置、及び3Dスキャナに内蔵されたカメラの特性値を用いて仮想カメラの配置や特性値を決定することができる。また、多視点から物体を撮影した画像からMVS(MutliViewStereo)の手法によって点群を生成する場合であれば、物体を撮影したカメラの配置および特性値を、図5に示す仮想カメラに設定すれば良い。なお3Dスキャナを用いる場合には、被写体にレーザー光を照射しつつ画像の撮影を行い、撮影画像に映っているレーザ光を手がかりに点群データを生成する。またMVSにしても複数の画像の類似する領域を手がかりに点群を生成する。このように、いずれの場合も被写体を撮影した画像は通常入手可能である。したがって、仮にカメラ配置や特性値データが出力されないシステムを用いた場合でも、画像さえあればカメラの配置や特性値はSfM(Structure from Motion)等の周知の技術により算出可能である。
【００２２】
以上説明したようなカメラ配置や特性値データを、点群データ取得部101で点群データと同時に取得することが望ましい。撮影画像が入手不可で点群データのみ入手可能という場合でも、十分に多い台数の仮想カメラを点群502の周囲に配置して、全ての点群が見えるように各仮想カメラの焦点距離を小さくして画角を広くしたり、点群に対するカメラの距離を大きく設定すれば良い。
【００２３】
カメラの配置や特性値から、3次元空間上での物体位置xyzと画像上の位置uvを対応付ける3行4列のカメラマトリクスCが、周知の技術により算出可能である。このカメラマトリクスCを用いて、位置uvと物体位置xyzの関係は以下の(1)式のように表せる。
【００２４】
┌u┐    ┌x┐
λ│v│＝Ｃ│y│      …(1)
└1┘    │z│
└1┘
(1)式においてλは、カメラと物体位置xyzの距離であって、デプスマップd1(u,v)に保持される深度値である。式(1)は3つの方程式であり、未知変数がu,v,λの3つであるから、(1)式から点群の各々についてxyzに対する画像上での位置u,vと深度値λを求めることで、デプスマップを生成する。なお、(u,v)が小数を含む場合は小数点以下を切り下げて整数化すれば良い。なお、ここで生成されるデプスマップは、カメラマトリクスCと対応付けて保持しておくことで、必要に応じて該デプスマップが示す面の3次元空間位置を算出することができる。
【００２５】
S202では以上の処理を全ての仮想カメラについて行うことで、仮想カメラ台数と同数のデプスマップdi(u,v)を得る。なお、iはカメラ番号を示す。
【００２６】
●ノーマルマップ生成処理(S203)
S203ではノーマルマップ生成部103で、i番目の仮想カメラに対するデプスマップdi(u,v)から、該カメラに対するノーマルマップNi(u,v)を生成する。ノーマルマップとは、物体表面に垂直な方向を示す法線ベクトルのマップ(法線マップ)であり、デプスマップdi(u,v)の位置(u,v)に対して深度値の代わりに、かかる位置(u,v)の物体表面に垂直な方向を示す法線ベクトルを保持している。すなわちNi(u,v)は法線ベクトルであり、デプスマップdi(u,v)において深度値が設定されている全ての位置(u,v)について、以下の(2)式により算出される。
【００２７】
Ni(u,v)＝[pi(u+1,v)−pi(u,v)]×[pi(u,v+1)−pi(u,v)]    …(2)
(2)式において、右辺の演算子Ｘはベクトルの外積を表す。またpi(u,v)は、i番目の仮想カメラに関して画像位置(u,v)に対応する点群データのXYZ座標ベクトルである。(1)式を用いれば、u,v,λからx,y,zすなわちpi(u,v)を算出できるので、デプスマップdi(u,v)からノーマルマップNi(u,v)を生成することができる。
【００２８】
●面生成処理(S204)
S204では面生成部104において、ノーマルマップを参照してデプスマップから連続面を生成する。この面生成処理について説明する。図6(a)は、図5と同様のデプスマップd1(u,v)である。面生成部104ではまず、デプスマップにおいて深度値が定義されていないセルについて、隣接する4セルのうち深度値が保持されているセルが3つ以上ある場合に、かかる隣接セルの深度値の平均を当該セルに格納する。この処理を整形処理と称し、点群を射影した場合に生じる深度値の欠落を補間することができる。デプスマップd1(u,v)に整形処理を施した結果、図6(b)に示す整形デプスマップd1'(u,v)が得られる。
【００２９】
さらに、整形デプスマップd1'の各セル(u,v)において、縦横の4近傍のセル(u+1,v),(u-1,v),(u,v+1),(u,v-1)を参照して連続面デプスマップを生成する。詳細にはまず、4近傍のセルのうち、深度値が定義されていて、なおかつノーマルマップに示される法線ベクトルがN1(u,v)に比べて10°以上変化しない、という条件を満たすセルをカウントする。このカウント値が0である場合、整形デプスマップd1'における当該セル(u,v)の深度値を未定義とする。以上の処理により、法線変動が少ない、すなわち所定値以内である滑らかな連続面が抽出され、図6(c)に示すデプスマップd1''(u,v)が得られる。
【００３０】
そしてさらに、法線変動が10°以内のセルをグループ化してその要素数をカウントし、所定の閾値(例えば10)以下である場合に、当該グループのセルを未定義とする。この処理により所定サイズ以上の連続面のみを抽出することができ、図6(d)に示す連続面デプスマップd1'''(u,v)が得られる。
【００３１】
なお、点群データ取得部101から面生成部104をまとめて面取得部110として定義し、この面取得部110を代替する手段により実現しても良い。それに対応して、図2に示すS201〜S204をまとめて例えば面取得処理等の1ステップとして定義しても良い。
【００３２】
●面拡張処理(S205)
次にS205で面拡張部105において、図6(d)に示す連続面デプスマップのセルを拡張した拡張面データとして、ポリゴンデータを生成する。具体的にはまず、図6(d)のデプスマップにおいて深度値が未定義であるセル(u,v)について、その8近傍のセルのいずれかに深度値が定義されていれば、当該セルに深度値を定義する。セル(u,v)についての8近傍セルは、(u-1,v-1),(u-1,v),(u-1,v+1),(u,v-1),(u,v+1),(u+1,v-1),(u+1,v),(u+1,v+1)のセルである。したがって、セル(u,v)の深度値が未定義であれば、その8近傍セルのいずれかに深度値が定義されていれば、該8近傍セルの深度値の平均を(u,v)に設定する。なお、ノーマルマップもデプスマップに応じて拡張される。すなわち、デプスマップで新たに深度値が設定された、すなわち拡張部分のセル(u,v)については、ノーマルマップの対応する法線ベクトルが未定義であるため、深度値と同様に隣接セルの法線ベクトルの平均を設定する。
【００３３】
以上の処理により、図6(e)で示す拡張連続面デプスマップd1''''(u,v)が得られる。図6(e)において、拡張部分のセルは、図6(d)に示す拡張前の連続面とは異なる色で示し、該拡張部分の位置情報が面拡張部105に内蔵された不図示の記憶部に保持される。
【００３４】
次に、拡張連続面デプスマップに基づいて、3つの頂点座標の組で指定される三角形の集合であるポリゴンデータを生成する。まず図7(a)に示すように、拡張連続面デプスマップにおいて、深度値を有し、画像位置(u,v)に射影されるような頂点を作成する。具体的には、各セル(u,v)に対して以下の(3)式を満たす頂点座標(x,y,z)を設定する。(3)式において、C1は仮想カメラ1のカメラマトリクスである。
【００３５】
┌u┐     ┌x┐
d1''''(u,v)│v│＝Ｃ1│y│      …(3)
└1┘     │z│
└1┘
この際、面拡張部105内の上記記憶部を参照して、拡張により深度値が設定された、すなわち拡張部分のセルであれば、そのセルから生成される頂点についても、拡張により得られた頂点であるとする。さらに各頂点について、それが拡張によるものであるか否かを示すフラグを、拡張データ記憶部111に保持しておく。次に、作成された頂点を、デプスマップの接続性に基づいて相互に連結して三角形を作成することで、図7(b)に示すポリゴンデータが得られる。図7(b)において、▲で示される頂点が、拡張により得られた頂点である。
【００３６】
同様の処理を他のカメラについても行うことで、複数の拡張された連続面を示すポリゴンデータが導出される。この面拡張により、図5に示すオリジナルの立方体501を構成する6つの面それぞれについて、より大きな拡張面が生成され、点群が存在しなかった空間領域にも面が存在するようになる。
【００３７】
なお、ここではデプスマップにおける連続面の周囲1セル相当分を拡張する例を示したが、拡張サイズはこの例に限らず、さらに大きく拡張しても良い。すなわち、3次元空間上で拡張面同士が交差する程度まで拡張されれば良い。
【００３８】
●面分割処理(S206)
S206では面分割部106において、S205で得られた拡張面を示すポリゴンデータを分割して、分割面データとしてのサブポリゴンデータを生成する。図8はS205で得られたポリゴンデータの3次元空間での配置を表し、図中の点線はポリゴンデータで示される拡張面同士が相互に交差する交線を表す。図8では説明のため、複数の拡張面により直方体を構成する例を示している。
【００３９】
図9に、図8における最も手前の拡張面のみを抽出して示す。図9に示す拡張面を交線で分割することで、図10に示すように9つの分割面を示すサブポリゴンデータが生成される。実際にポリゴン同士の交線に基づいてポリゴンを分割する処理は周知の技術であり、CADアプリケーションに立体の論理演算処理として実装されている。なおこのとき、S205で拡張されたノーマルマップについても、ポリゴンと同様に分割面ごとのサブマップに分割される。
【００４０】
●面抽出処理(S207)
S207では面抽出部107において、S206で生成された分割面を示すサブポリゴンデータのうち、オリジナルの形状を構成しないであろう不要なポリゴン部分を削除することで、物体を構成するのに必要な分割面のみを抽出する。不要ポリゴンの削除方法として、以下に示す複数の方法が挙げられる。
【００４１】
第1の方法は、図11に示すように分割面すなわちサブポリゴンデータごとの重心を求め、分割前のポリゴンデータの重心と最も近い重心を有するサブポリゴンデータのみを抽出する方法である。第2の方法は、含まれる頂点数が最も多いサブポリゴンデータを抽出する方法である。第3の方法は、面積最大であるサブポリゴンデータを抽出する方法である。第4の方法は、S205での面拡張により得られた頂点を示すフラグが保持された拡張データ記憶部111を参照して、拡張により増加した頂点の割合が所定値以下(例えば5割以下)であるサブポリゴンデータを抽出する方法である。第5の方法は、拡張データ記憶部111を参照して、拡張による面積増加の割合が所定値以下(例えば5割以下)であるサブポリゴンデータを抽出する方法である。
【００４２】
上記いずれの方法も、サブポリゴンデータから算出した特性値に応じて抽出判定を行う。実際には、上記第1〜第5の方法を組み合わせて用いても良いし、閾値も抽出結果を良好ならしめるよう適宜調整しても良い。なお、S206でノーマルマップを分割したサブマップについても、ポリゴンと同様に必要な分割面が抽出される。
【００４３】
以上の面抽出処理を、他の仮想カメラから得られる面に対しても行う。
【００４４】
●面合成処理(S208)
S208では面合成部108において、S207で抽出された分割面を示す各サブポリゴンデータを合成する。単純にはサブポリゴンデータをマージすることで、図12示すように合成後ポリゴンデータが得られる。もちろん、合成したポリゴンデータに冗長性等があれば該冗長性を除くなど、必要に応じて合成に関する適切な処理を行っても良い。なお、ノーマルマップについても、S207で分割面として抽出されたサブマップが合成される。
【００４５】
●ポリゴン出力処理(S209)
S209ではポリゴン出力部109において、S208で合成されたポリゴンデータを出力する。出力先はメモリ、CD-ROM、HDD等のデータ保存装置が好適である。通信網を介してデータ保存装置が本実施形態の形状生成装置と連絡している場合には、該接続先の記憶装置へポリゴンデータを送信する。なおこのとき、対応するノーマルマップも出力される。
【００４６】
以上説明したように本実施形態によれば、物体の点群データから鮮鋭な角を有する形状データを生成することができ、オリジナルの形状を正確にデータ化できる。
【００４７】
＜第2実施形態＞
以下、本発明に係る第2実施形態について説明する。第1実施形態では、図1に示す面取得部110において、点群データから作成した面データを取得して、これに基づく面拡張処理を行う例を示した。第2実施形態では、外部からポリゴンデータとして供給される面データを取得し、面拡張を行うことを特徴とする。なお、第2実施形態で取得されるポリゴンデータには各頂点に法線ベクトルが設定されていることが好適であるが、そうでない場合でも、頂点を共有する三角形の面法線ベクトルの平均値を当該頂点の法線ベクトルとして設定する処理を面拡張前に行えば良い。
【００４８】
第2実施形態における面取得部110としては、メモリカードに記憶された面データを読み込むメモリカードリーダや、通信網を介して接続されたPCから送信されてくる面データを受信するネットワークインターフェースが好適である。すなわち第2実施形態の面取得部110では、面データを読み込む、または受信する処理を行う。
【００４９】
第2実施形態で取得される面データは、上述した第1実施形態のようにカメラ視点が設定されていない。そのため、面拡張部105で実行される面拡張処理(S205)が第1実施形態とは異なるが、他の構成における処理については第1実施形態と同様であるため、説明を省略する。
【００５０】
●面拡張処理(S205)
第2実施形態において面拡張部105で行われる面拡張処理(S205)について、図13のフローチャートを用いて詳細に説明する。第2実施形態では、が外部より取得したポリゴンデータが示すポリゴン群に対してその外周部に新規のポリゴンを追加することで、面拡張を行う。
【００５１】
まずS1301で、面取得部110が外部より取得したポリゴンデータに基づいて、頂点間の平均距離μを算出する。次にS1302で面拡張の回数を示すカウンタNを0に初期化し、以下のS1303〜S1306の処理を、カウンタNが所定の閾値を超えるまでループする。
【００５２】
S1303では、ポリゴンデータから境界となる辺を抽出する。例えば図14(a)が取得されたポリゴンデータであるとすると、ポリゴンを構成する全ての三角形の辺について、図14(b)に示すように複数の三角形で共有されていない辺AB,BC,CD,DEを、境界辺として抽出する。
【００５３】
次にS1304では、S1303で抽出された境界辺に応じて、新規に頂点を生成する。図14(c)に、境界辺AB,BC,CD,DEに対応して生成された新規頂点VAB,VBC,VCD,VDEを示す。ここで、頂点の生成方法をVABを例として説明する。まず線分ABの垂直二等分面上にVABが位置するとし、VABまでの垂線の長さを頂点間の平均距離μと設定する。このような拘束条件の下、頂点VABには線分ABを回転の軸とする回転自由度が残されている。そこで、三角形ABVABの面法線が、頂点A,Bの法線NB,NBの平均法線と一致するような回転角を定めることで、VABの位置を確定させる。他の頂点についても同様に位置を定める。
【００５４】
S1305では、S1304で生成された新規頂点を有する新規面を生成する。具体的には図14(d)に示すように、まず境界辺と対応する新規頂点により三角形を生成し、さらに隣接関係にある新規頂点(例えば、VABとVBC)とその中間にある頂点(B)を結んで三角形を生成する。
【００５５】
そしてS1306でカウンタNをインクリメントし、S1307でカウンタNが所定の閾値以下であればS1303に戻って面の拡張を続ける。すなわちカウンタNに対する閾値によって、拡張部分のサイズが設定される。一方、カウンタNが閾値より大きければ、S205の面拡張処理を終了してS206の面分割処理へ移行する。
【００５６】
以降のS206〜S209の処理は上述した第1実施形態と同様であり。すなわちS205で拡張された面の交差線上に角を設定することで、より実物体に近い角の状態を再現したポリゴンデータを得る。
【００５７】
以上説明したように第2実施形態によれば、入力されたポリゴンデータによって示される、被写体を構成する複数の面データを拡張・統合することで、第1実施形態と同様に角の状態をより詳細に再現したポリゴンデータを生成することができる。
【００５８】
＜他の実施形態＞
本発明の構成要素は、複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用しても良い。本発明の目的は、前述の実施形態の機能を実現するプログラムをシステムのコンピュータ(またはCPUまたはMPU)が実行しても達成される。この場合、プログラム自体が前述した実施形態の機能を実現することになり、そのプログラムを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のデータ保存部、ROMなどを用いることが出来る。また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、プログラムの指示内容をシステムの機能拡張ボードに備わるCPUなどが実行し、その処理で前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図１】
2015095000.tif 000003
【図２】
2015095000.tif 000004
【図３】
2015095000.tif 000005
【図４】
2015095000.tif 000006
【図８】
2015095000.tif 000007
【図９】
2015095000.tif 000008
【図１０】
2015095000.tif 000009
【図１１】
2015095000.tif 000010
【図１２】
2015095000.tif 000011
【図１３】
2015095000.tif 000012
【図１４】
2015095000.tif 000013
【図５】
2015095000.tif 000014
【図６】
2015095000.tif 000015
【図７】
2015095000.tif 000016