(57)【特許請求の範囲】
【請求項１】
物体についての３次元形状データを生成する方法であって、
前記物体についての視点の異なる複数の画像からシルエット法を用いてボリュームデータに変換することによって第１のボリュームデータを生成する第１のステップ、
前記物体について３次元計測によって得られた３次元データをボリュームデータに変換することによって第２のボリュームデータを生成する第２のステップ、
前記第１のボリュームデータと第２のボリュームデータとを統合して１つのボリュームデータとする第３のステップ、を有し、
前記ボリュームデータは、ボリュームを表現する座標系内の離散的な各座標位置を格子点とする複数のボクセルによって構成され、前記各ボクセルの格子点において、物体の表面からの距離に応じた値が属性値として保持されており、
前記属性値について、当該格子点が物体の外部にあることを示す外部（遠）、当該格子点が物体の外部にあり前記外部（遠）よりも物体の表面に近いことを示す外部（近）、当該格子点が物体の内部にあることを示す内部（遠）、および、当該格子点が物体の内部にあり前記内部（遠）よりも物体の表面に近いことを示す外部（近）の４つに分類し、
前記第３のステップにおいて、前記各ボクセルの格子点について、前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値とに基づいて統合された属性値である統合属性値を求める、
ことを特徴とする３次元形状データの生成方法。
【請求項２】
前記第１のボリュームデータによる前記属性値が前記外部（遠）である場合に、前記第２のボリュームデータによる前記属性値に係わらず、前記統合属性値を外部（遠）とし、
前記第１のボリュームデータによる前記属性値および前記第２のボリュームデータによる前記属性値が共に内部（遠）である場合に、前記統合属性値を内部（遠）とし、
前記第１のボリュームデータによる前記属性値が前記内部（遠）でありかつ前記第２のボリュームデータによる前記属性値が前記外部（遠）である場合に、前記統合属性値を外部（遠）とし、
それ以外で前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値とが異なる場合に、前記統合属性値を外部（近）または内部（近）とし、
前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値との両方が外部（近）または内部（近）で同じである場合に、それら両方の前記属性値を混合して前記統合属性値を求める、
請求項１記載の３次元形状データの生成方法。
【請求項３】
前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値との両方が外部（近）または内部（近）で同じである場合に、前記統合属性値ｄｔを、次の式、
ｄｔ＝ｗｘ・ｄｒ＋（１−ｗｘ）ｄｓ
但し、ｗｘ：格子点における第２のボリュームデータによる属性値の重み
ｄｓ：第１のボリュームデータによる属性値
ｄｒ：第２のボリュームデータによる属性値
で算出する、
請求項２記載の３次元形状データの生成方法。
【請求項４】
第１のステップにおいて、シルエット法を用いてボリュームデータに変換するに際し、
（ａ）ボリュームを表現する座標系内の離散的な各座標位置において、前記物体の画像の輪郭と当該画像の視点とにより定まる視体積の境界までの距離に応じた値を求めるステップ、
（ｂ）各座標位置について、前記物体の複数の画像について求めた複数の値に基づいて物体表面からの距離に応じた値を決定し、各座標位置に対応付けて保持するステップ、
を実行する請求項１ないし３のいずれかに記載の３次元形状データの生成方法。
【請求項５】
第２のステップにおいて、３次元データをボリュームデータに変換するに際し、
（ａ）ボリュームを表現する座標系内の離散的な各座標位置において、前記物体の３次元データで表される物体表面までの距離に応じた値を求めるステップ、
（ｂ）求めた値を各座標位置に対応付けて保持するステップ、
を実行する請求項１ないし３のいずれかに記載の３次元形状データの生成方法。
【請求項６】
物体についての３次元形状データを生成する装置であって、
前記物体についての視点の異なる複数の画像からシルエット法を用いてボリュームデータに変換することによって第１のボリュームデータを生成する第１の変換手段、
前記物体について３次元計測によって得られた３次元データをボリュームデータに変換することによって第２のボリュームデータを生成する第２の変換手段、および、
前記第１のボリュームデータと第２のボリュームデータとを統合して１つのボリュームデータとする統合手段、を有し、
前記ボリュームデータは、ボリュームを表現する座標系内の離散的な各座標位置を格子点とする複数のボクセルによって構成され、前記各ボクセルの格子点において、物体の表面からの距離に応じた値が属性値として保持されており、
前記統合手段において、
前記属性値について、当該格子点が物体の外部にあることを示す外部（遠）、当該格子点が物体の外部にあり前記外部（遠）よりも物体の表面に近いことを示す外部（近）、当該格子点が物体の内部にあることを示す内部（遠）、および、当該格子点が物体の内部にあり前記内部（遠）よりも物体の表面に近いことを示す外部（近）の４つに分類し、
前記各ボクセルの格子点について、前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値とに基づいて統合された属性値である統合属性値を求める、
ことを特徴とする３次元形状データの生成装置。
【請求項７】
物体についての３次元形状データを生成するためのコンピュータプログラムであって、
前記物体についての視点の異なる複数の画像からシルエット法を用いてボリュームデータに変換することによって第１のボリュームデータを生成する第１のステップ、
前記物体について３次元計測によって得られた３次元データをボリュームデータに変換することによって第２のボリュームデータを生成する第２のステップ、
前記第１のボリュームデータと第２のボリュームデータとを統合して１つのボリュームデータとする第３のステップ、
の各処理をコンピュータに実行させるものであり、さらに、前記コンピュータに、
前記ボリュームデータは、ボリュームを表現する座標系内の離散的な各座標位置を格子点とする複数のボクセルによって構成され、前記各ボクセルの格子点において、物体の表面からの距離に応じた値が属性値として保持されるように処理を実行させ、
前記属性値について、当該格子点が物体の外部にあることを示す外部（遠）、当該格子点が物体の外部にあり前記外部（遠）よりも物体の表面に近いことを示す外部（近）、当該格子点が物体の内部にあることを示す内部（遠）、および、当該格子点が物体の内部にあり前記内部（遠）よりも物体の表面に近いことを示す外部（近）の４つに分類する処理を実行させ、
前記第３のステップにおいて、前記各ボクセルの格子点について、前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値とに基づいて統合された属性値である統合属性値を求める処理を実行させる、
ためのコンピュータプログラム。
【請求項８】
請求項７記載のコンピュータプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元形状データの生成方法および装置並びにコンピュータプログラムに関する。
【０００２】
【従来の技術】
従来より、物体の３次元形状データを生成する方法の１つとして、シルエット法（Shape From Silhouette ）が知られている。
【０００３】
シルエット法は、物体を異なる視点から撮影（または撮像）して得られた複数の画像から、当該物体の３次元形状を復元する。つまり、シルエット法では、物体を複数の視線方法から撮影した画像に基づいて、それぞれの視線方向から見た物体の形状を反映する物体存在領域を３次元画像空間内のボクセルの集合として記述する。そして、すべての方向から見た物体存在領域内のボクセルの集合をその３次元空間内の物体として求める。
【０００４】
【発明が解決しようとする課題】
しかし、シルエット法では、物体の窪んだ部分または凹んだ部分がシルエット画像として表れないため、そのような凹部領域の形状を復元することができない。
【０００５】
他方、物体の３次元形状を復元する他の方法として、光切断法などにより非接触で物体を計測するレンジセンサ（３次元計測装置）を用いる方法がある。しかし、レンジセンサを用いた場合には、物体の表面の反射率が極めて低い場合にデータが欠落してしまい、その部分の３次元形状を復元できないという問題点がある。
【０００６】
本発明は、上述の問題に鑑みてなされたもので、凹部領域や低反射率の部分があった場合でも、できるだけ少ないメモリ容量で且つ少ない演算時間で正確に３次元形状を復元することを目的とする。
【０００７】
本発明の１つの形態による方法では、物体についての３次元形状データを生成する方法であって、前記物体についての視点の異なる複数の画像からシルエット法を用いてボリュームデータに変換することによって第１のボリュームデータを生成する第１のステップ、前記物体について３次元計測によって得られた３次元データをボリュームデータに変換することによって第２のボリュームデータを生成する第２のステップ、前記第１のボリュームデータと第２のボリュームデータとを統合して１つのボリュームデータとする第３のステップを有し、前記ボリュームデータは、ボリュームを表現する座標系内の離散的な各座標位置を格子点とする複数のボクセルによって構成され、前記各ボクセルの格子点において、物体の表面からの距離に応じた値が属性値として保持されており、前記属性値について、当該格子点が物体の外部にあることを示す外部（遠）、当該格子点が物体の外部にあり前記外部（遠）よりも物体の表面に近いことを示す外部（近）、当該格子点が物体の内部にあることを示す内部（遠）、および、当該格子点が物体の内部にあり前記内部（遠）よりも物体の表面に近いことを示す外部（近）の４つに分類し、前記第３のステップにおいて、前記各ボクセルの格子点について、前記第１のボリュームデータによる前記属性値と前記第２のボリュームデータによる前記属性値とに基づいて統合された属性値である統合属性値を求める。
【０００８】
好ましくは、第１のステップにおいて、シルエット法を用いてボリュームデータに変換するに際し、
（ａ）  ボリュームを表現する座標系内の離散的な各座標位置において、前記物体の画像の輪郭と当該画像の視点とにより定まる視体積の境界までの距離に応じた値を求めるステップ、
（ｂ）  各座標位置について、前記物体の複数の画像について求めた複数の値に基づいて物体表面からの距離に応じた値を決定し、各座標位置に対応付けて保持するステップを実行する。
【０００９】
また、第２のステップにおいて、３次元データをボリュームデータに変換するに際し、
（ａ）  ボリュームを表現する座標系内の離散的な各座標位置において、前記物体の３次元データで表される物体表面までの距離に応じた値を求めるステップ、
（ｂ）  求めた値を各座標位置に対応付けて保持するステップを実行する。
【００１０】
生成されたボリュームデータを逆変換することにより、物体の３次元形状が復元される。
本発明によると、３次元形状データの生成方法の相違によるそれぞれの欠点を補って欠落のない精度のよい３次元モデルが生成される。
【００１１】
【発明の実施の形態】
図１は本実施形態に係る３次元データ生成装置１のブロック図である。
図１において、３次元データ生成装置１は、装置本体１０、磁気ディスク装置１１、媒体ドライブ装置１２、ディスプレイ装置１３、キーボード１４、およびマウス１５などからなる。
【００１２】
装置本体１０は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ビデオＲＡＭ、入出力ポート、および各種コントローラなどからなる。ＲＡＭおよびＲＯＭなどに記憶されたプログラムをＣＰＵが実行することにより、以下に説明する種々の機能が実現される。
【００１３】
磁気ディスク装置１１には、ＯＳ（Operating System) 、３次元モデルＭＬを生成するためのモデリングプログラムＰＲ、その他のプログラム、入力された３次元データ（３次元形状データ）ＤＴ、画像（２次元画像データ）ＦＴ、ボリュームデータＤＶ、生成された３次元モデルＭＬ、その他のデータなどが格納されている。これらのプログラムおよびデータは、適時、装置本体１０のＲＡＭにローディングされる。
【００１４】
なお、モデリングプログラムＰＲには、初期化処理、属性値設定処理、属性値決定処理、境界判定処理、分割処理、統合処理、逆変換処理、マッピング処理、およびその他の処理のためのプログラムが含まれる。
【００１５】
媒体ドライブ装置１２は、ＣＤ−ＲＯＭ（ＣＤ）、フロッピィディスクＦＤ、光磁気ディスク、コンパクトフラッシュなどの半導体メモリＨＭ、その他の記録媒体にアクセスし、データまたはプログラムの読み書きを行う。記録媒体の種類に応じて適切なドライブ装置が用いられる。上に述べたモデリングプログラムＰＲは、これら記録媒体からインストールすることも可能である。３次元データＤＴおよび画像ＦＴなども記録媒体を介して入力することが可能である。
【００１６】
ディスプレイ装置１３の表示面ＨＧには、上に述べた種々のデータ、３次元データＤＴ、画像ＦＴ、モデリングプログラムＰＲによる処理過程の画像、生成された３次元モデルＭＬ、その他のデータまたは画像が表示される。
【００１７】
キーボード１４およびマウス１５は、ディスプレイ装置１３に表示された画像ＦＴおよび３次元データＤＴに対して、ユーザが種々の指定を行うために用いられる他、装置本体１０に種々のデータを入力しまたは指令を与えるために用いられる。
【００１８】
図示は省略したが、装置本体１０には、被写体である物体を種々の視線で撮影しまたは種々の視点から撮影して画像ＦＴを入力するためのデジタルカメラを接続することが可能である。画像ＦＴから被写体である物体の輪郭を切り出すことにより、シルエット画像ＦＳが生成される。シルエット画像ＦＳに基づいて、シルエット法によって３次元データＤＴを生成することが可能である。
【００１９】
また、視差のある２枚の画像に基づいて３次元再構成を行い、３次元データＤＴを生成することも可能である。
また、装置本体１０には、物体を撮影してその３次元データＤＴを入力するための３次元入力装置（３次元計測装置）を接続することも可能である。そのような３次元入力装置は、例えば光切断法によって物体の３次元データＤＴを非接触で計測する。また、３次元入力装置から、３次元データＤＴではなく、３次元データＤＴを生成するための元となるデータを出力し、装置本体１０によって３次元データＤＴを演算によって求めてもよい。
【００２０】
このようにして得られた３次元データＤＴ、または３次元データＤＴを生成する途中のデータは、物体の３次元形状を境界表現形式で表現するものである。
本実施形態においては、境界表現形式で表現された物体の３次元形状を、各ボクセル（Voxel)に多値の属性値ｄを持たせたボリュームデータ（Volume Data ）ＤＶに変換する。ボクセルとは、３次元空間を小さな単位の格子に分解し、単位格子によって構成される小さな立方体である。
【００２１】
また、生成方法の異なる複数の３次元形状から変換された複数のボリュームデータＤＶを、１つのボリュームデータＤＶに統合することも行われる。
最終的なボリュームデータＤＶは、再度、境界表現形式の形状表現に逆変換される。その際に、例えば、公知の零等値面抽出法などを用いることができる。つまり、隣接する頂点（格子点）を結ぶ辺上の零等値面に対応する点を算出し、それらの点を連結した三角ポリゴンを生成することにより、ポリゴンメッシュに変換することができる。
【００２２】
逆変換によって得られた３次元形状に、テクスチャ画像を貼り付けることも行われる。このようにして３次元モデルＭＬが生成される。
３次元データ生成装置１は、パーソナルコンピュータまたはワークステーションなどを用いて構成することが可能である。上に述べたプログラムおよびデータは、ネットワークＮＷを介して受信して取得することも可能である。
【００２３】
図２は３次元データ生成装置１による３次元モデルＭＬの生成処理の流れを示すフローチャートである。
図２において、適当なサイズのボリューム（ボリュームデータＤＶ）が準備され、初期化が行われる（＃１）。ボリュームとして、例えば、５０×５０×５０ボクセル、または１００×１００×１００ボクセル程度のサイズのものが用いられる。ボリュームは立方体でなくてもよい。また、座標系におけるボクセルの中心の座標および姿勢なども設定される。
【００２４】
ボリュームは、ボクセルの各頂点に、２種類の多値のデータを属性値ｄとして格納することができる。つまり、各頂点に対して、２つの属性値ｄｓ，ｄｒを格納する領域が設けられる。これは、ボクセルの各頂点に多値のデータを属性値として格納することが可能なボリュームが２つある、とすることもできる。この場合に、一方を第１のボリューム、他方を第２のボリュームと記載することができる。
【００２５】
なお、本明細書において、「ボリューム」のことを「ボリュームデータ」と記載することがある。その場合には、「ボリュームデータ」は、ボクセルによって所定の形状となるように構成され、ボクセルの各頂点にデータを格納することが可能な３次元領域を意味する。
【００２６】
また、ボクセルの頂点は、隣合うボクセルについて共通である。したがって、周縁部にはない頂点については、８つのボクセルの頂点となる。頂点はボリュームデータの格子点と一致する。したがって、「頂点」を「格子点」と記載することがある。
【００２７】
さて、図２に戻って、シルエット画像を用いて変換処理が行われ、第１のボリュームデータＤＶが生成される（＃２）。レンジデータを用いて変換処理が行われ、第２のボリュームデータＤＶが生成される（＃３）。なお、レンジデータとは、レンジファインダなどと呼称される３次元計測装置を用いて、物体を計測して得られた３次元形状データである。また、視差のある複数の画像からステレオ法によって再構成された３次元形状データも、ここにいうレンジデータに含まれる。
【００２８】
これら、第１および第２のボリュームデータＤＶが統合される（＃４）。統合されたボリュームデータＤＶが、境界表現形式の形状表現に逆変換される（＃５）。必要に応じてテクスチャマッピングが行われる（＃６）。
【００２９】
以下において、ボリュームデータＤＶへの変換処理、および複数のボリュームデータＤＶの統合処理について、詳しく説明する。まず、変換処理について説明する。
〔第１の実施形態による変換処理〕
図３は３次元データ生成装置１による変換処理を示すフローチャート、図４は変換処理の変形例を示すフローチャートである。これらのフローチャートで示す変換処理は、レンジデータ、その他の３次元形状データ、およびシルエット画像を用いた変換処理に適用される。
【００３０】
図３において、まず、物体の３次元形状を表す３次元データＤＴが準備される。または、３次元データＤＴに代えて、３次元データＤＴの生成の元となる複数の画像ＦＴが準備される。そして、３次元データＤＴとボリュームデータＤＶとの位置合わせが行われる（＃１１）。通常、ボリュームデータＤＶの中に３次元データＤＴが丁度納まるように、それらのサイズおよび位置が決定される。
【００３１】
ボリュームを構成するボクセルの各頂点について、それぞれの頂点から３次元形状を表現する境界まで、つまり物体の表面までの距離に応じた値が求められる（＃１２）。求められた値は、各頂点の属性値として保持される（＃１３）。
【００３２】
このようにして、各ボクセルの頂点、つまり格子点には、多値の属性値が格納され、多値の属性値を持った格子点群により構成されるボリュームデータＤＶが生成される。
【００３３】
図４において、物体の表面と交差するボクセルが抽出される（＃２２）。このようなボクセルを「境界ボクセル」と記載することがある。境界ボクセルについて、その頂点から物体の表面までの距離に応じた値が求められる（＃２３）。求められた値は、上と同様に各頂点の属性値として保持される（＃２４）。
【００３４】
なお、ある頂点が境界ボクセルと他のボクセルとの共通の頂点である場合に、その頂点は境界ボクセルの頂点として扱う。
〔第２の実施形態による変換処理〕
第２の実施形態に基づいて、変換処理についてさらに詳しく説明する。なお、第２および第３の実施形態は、主としてシルエット画像を用いた変換処理に適用される。
【００３５】
図５は第２の実施形態の変換処理を示すフローチャート、図６は図５のステップ＃３４の属性値の設定処理のサブルーチンを示すフローチャート、図７はシルエット画像ＦＳをボリュームデータＤＶに投影した状態を説明するための図、図８は図７に示すシルエット画像ＦＳの一部を拡大して示す図、図９はボリュームデータＤＶを水平面で切断した状態を示す図、図１０は境界ボクセルを拡大して示す図、図１１はボリュームデータＤＶを格納したボリュームテーブルＴＬｓの例を示す図である。
【００３６】
図５において、まず、設定されたボリュームデータＤＶについて、すべての格子点ＴＰに初期値をセットする。これによってボリュームデータＤＶを初期化する（＃３１）。格子点ＴＰの初期値として、例えば、物体内部を意味する「プラス無限大」をセットする。この場合、「プラス無限大」は本発明における第１の特定値である。初期化が完了した時点において、図１０に示すボリュームデータＤＶはすべて初期値となる。
【００３７】
次に、１つの画像ＦＴを入力する（＃３２）。その際に、画像ＦＴを撮影したときのカメラパラメータも入力する。カメラパラメータとして、焦点距離などのカメラ内部行列、視点位置などの外部行列が挙げられる。これらを含んだ射影行列を入力してもよい。カメラパラメータに基づいて、画像ＦＴをボリュームデータＤＶに投影する際の視点位置および投影方向が決定される。
【００３８】
なお、ステップ＃３２で画像ＦＴを入力すると、画像ＦＴは磁気ディスク装置１１に格納される。磁気ディスク装置１１に格納された画像ＦＴは、プログラムによって自動的にＲＡＭ上に読み込まれ、以降の処理が加えられる。しかし、ステップ＃３２での画像の入力を、磁気ディスク装置１１に格納された画像ＦＴをＲＡＭ上に読み込む、という意味に用いてもよい。その場合には、予め多数の画像ＦＴを磁気ディスク装置１１に格納しておき、ステップ＃３２で指定された１つの画像ＦＴをＲＡＭ上に読み込むようにすればよい。また、画像の入力を、磁気ディスク装置１１に格納された多数の画像ＦＴの中から、処理すべき１つの画像ＦＴを指定する、という意味に用いることも可能である。
【００３９】
入力された画像ＦＴから、被写体である物体の輪郭が切り出されることにより、シルエット画像ＦＳが生成される（＃３３）。シルエット画像ＦＳは、輪郭が分かればよいので、モノクロの画像で充分である。シルエット画像の生成は、公知の方法によって自動的にまたは手動により行うことができる。
【００４０】
ボリュームデータＤＶ、つまりボクセルＶＸの各頂点（格子点）ＴＰの属性値が求められ、設定される（＃３４）。属性値は、各頂点ＴＰと物体の表面との間の符号付き距離として求められる。つまり、例えば、図７および図８に示されるように、シルエット画像ＦＳによる輪郭（遮蔽輪郭）と視点ＶＰとで定まる視体積ＶＶの境界ＳＦから頂点ＴＰまでの距離Ｌｓを、視体積ＶＶの内側に向かう方向を＋（プラス）として求めたものである。詳しくは後述する。
【００４１】
処理の必要な画像ＦＴが残っている場合に、次の１つの画像を入力する（＃３５でイエス、＃３２）。これが、必要なすべての画像ＦＴについての処理が終了するまで繰り返される（＃３５）。予定したすべての画像ＦＴについての処理を終えた場合でも、必要に応じて画像ＦＴを追加してステップ＃３２〜３４の処理を行うことが可能である。
【００４２】
なお、ステップ＃３２で画像ＦＴを入力する代わりに、シルエット画像ＦＳを入力することも可能である。その場合には、ステップ＃３３は不要である。
図６において、属性値の設定に際し、まず、ボリュームを構成する１つの格子点ＴＰに注目する（＃４１）。注目している格子点ＴＰの属性値をチェックする（＃４２）。属性値が「マイナス無限大」であれば、ステップ＃４５に進む。つまり、属性値が「マイナス無限大」であるということは、その格子点ＴＰは物体の外部にあることを意味する。物体の外部にある格子点ＴＰは切り取られるので、それ以上に属性値を求める必要はない。この場合、「マイナス無限大」は、本発明における第２の特定値である。
【００４３】
なお、最初の画像を処理する時点では、全格子点に初期値として「プラス無限大」がセットされているので、すべてステップ＃４３に進む。２枚目以降の画像を処理する時点では、以前の画像の処理により、「プラス無限大」、「マイナス無限大」、または後述の「符号付き距離ｄｓ」のいずれかが属性値としてセットされており、「マイナス無限大」以外、つまり「プラス無限大」または「符号付き距離ｄｓ」の場合に、ステップ＃４３に進む。
【００４４】
属性値が「マイナス無限大」でなければ、ステップ＃４３において、符号付き距離ｄｓの算出を行う。符号付き距離の算出には種々の方法がある。次に第１から第３までの３つの方法を説明する。
（第１の方法）
注目している格子点ＴＰと、その格子点ＴＰに隣接している格子点（つまり同じボクセルＶＸについての頂点）とを、それぞれ視点ＶＰに向かって画像ＦＴ上に投影する。投影された点同士を画像ＦＴ上でつないだときに、それによってできる辺が輪郭（遮蔽輪郭）と交差する場合に、符号付き距離を計算する。
【００４５】
つまり、図７に示すように、あるボクセルＶＸが、視体積ＶＶの境界ＳＦ上にある場合に、そのボクセルＶＸは境界ボクセルＶＸｓである。境界ボクセルＶＸｓの頂点ＴＰについて、符号付き距離を計算する。
【００４６】
図９において、視体積ＶＶの境界ＳＦと交差するボクセルＶＸが、境界ボクセルＶＸｓとして中間濃度で示されている。図１０において、境界ボクセルＶＸｓの各頂点ＴＰから視体積ＶＶの境界ＳＦまでの距離を求める。求めた距離、またはそれに対応する数値が、それぞれの頂点ＴＰの属性値として示されている。
【００４７】
距離の単位またはスケールは、適当に設定してよい。距離の最大値は、ボクセルＶＸの対角線の長さである。したがって、対角線の長さを基準として、距離を正規化してもよい。また、視体積ＶＶの内部にある頂点ＴＰについては、距離の符号をそのまま正の値とし、外部にある頂点ＴＰについては、距離にマイナスを付けて負の値とする。
【００４８】
例えば、属性値として８ビットのデータを用いる場合には、最上位ビットを符号ビットとし、下位７ビットで距離を示す。これによって、−１２７〜＋１２８の値を表現することができるので、−１２７を、外部を示す「マイナス無限大」に対応させ、＋１２８を、内部を示す「プラス無限大」に対応させ、−１２６〜＋１２７を符号付き距離に対応させる。属性値として、１２ビット、１６ビット、その他のビット数のデータを用いることができる。
【００４９】
したがって、格子点ＴＰが視体積ＶＶの境界ＳＦ上にある場合には、その属性値は零となる。格子点ＴＰが視体積ＶＶの内部にいくにしたがって属性値は大きくなり、外部にいくにしたがって属性値は小さくなる。
【００５０】
辺が遮蔽輪郭と交差しない場合には、つまり境界ボクセルＶＸｓでない場合には、その格子点ＴＰは視体積ＶＶの内部または外部に存在する。外部にある場合には、その格子点ＴＰは切り取るべき点であるから、属性値を「マイナス無限大」とする。内部にある場合には属性値を「プラス無限大」のままとする。
（第２の方法）
注目している格子点ＴＰを視点ＶＰに向かって画像ＦＴ上に投影する。投影された点を中心とし、中心から一定の半径の円の内部の領域に遮蔽輪郭があるか否かをチェックする。遮蔽輪郭が存在する場合に、符号付き距離を計算する。領域内に遮蔽輪郭が存在しない場合で、格子点ＴＰが視体積ＶＶの外部にある場合には、属性値を「マイナス無限大」とする。
。
（第３の方法）
遮蔽輪郭を一定間隔でサンプリングし、サンプリング点と視点ＶＰとを結ぶ直線を得る。これらの直線は、遮蔽輪郭を通る視線である。視体積ＶＶの境界ＳＦに代えて視線を用い、３次元的に符号付き距離を算出する。つまり、境界ボクセルＶＸｓの頂点ＴＰについて、頂点ＴＰから視線までの距離を算出する。注目する格子点ＴＰが視体積ＶＶの外部にある場合には、属性値を「マイナス無限大」とする。
【００５１】
そして、ステップ＃４４において、格子点ＴＰに属性値をセットする。属性値をセットする際には、既にセットされている属性値よりも小さい値のみをセットする。既にセットされている属性値よりも大きい値が新たに得られている場合には、その新しい属性値は無視する。
【００５２】
つまり、属性値として、新たに「マイナス無限大」が得られたとすると、先にセットされている属性値が何であれ、属性値は「マイナス無限大」となる。このようにして物体の外部が切り取られていく。
【００５３】
なお、属性値が新旧とも符号付き距離であった場合には、それらの平均値を求めてそれを新たな属性値ｄとしてもよい。
すべての格子点ＴＰに対して処理を行ったかどうかをチェックする（＃４５）。まだ処理を行っていない格子点ＴＰがある場合は、ステップ＃４１以降を繰り返す。すべての格子点ＴＰについての処理を終えた場合にはリターンする。これによって、図１１に示すようなボリュームテーブルＴＬｓが完成する。
【００５４】
第２の実施形態によると、１つの画像ＦＴごとに処理が行われるので、画像の処理が終わればその画像を削除することができ、それだけ使用するメモリ容量が少なくて済む。
〔第３の実施形態による変換処理〕
第２の実施形態の変換処理では、画像ＦＴを追加していくことにより変換処理を進行したが、最初に複数枚の画像ＦＴをまとめて入力し（読み込み）、処理を行うことも可能である。次にその例を第３の実施形態として示す。
【００５５】
図１２は第３の実施形態の変換処理を示すフローチャート、図１３は図１２のステップ＃５４の属性値の設定処理のサブルーチンを示すフローチャートである。
【００５６】
図１２において、ステップ＃５１は図５のステップ＃３１と同様である。ステップ＃５２では、物体について撮影したすべての画像ＦＴを一時に入力する。その際に、それぞれの画像ＦＴを撮影したときのカメラパラメータを入力する。各画像ＦＴについて、ステップ＃３３と同様にシルエット画像ＦＳが生成される（＃５３）。そして、属性値の設定が行われる（＃５４）。
【００５７】
図１３において、属性値の設定に際し、まず、ステップ＃４１と同様に、１つの格子点ＴＰに注目する（＃６１）。注目している格子点ＴＰが、視体積ＶＶに対してどのような位置に存在するかをチェックする（＃６２）。
【００５８】
すなわち、格子点ＴＰが視体積ＶＶの境界ＳＦの付近に存在する場合には属性値を仮に「BORDER」とし、視体積ＶＶの内部に存在する場合には属性値を「INSIDE」とし、被写体の外部に存在する場合には属性値を「OUTSIDE 」とする。属性値「INSIDE」「OUTSIDE 」は、本発明における第１の特定値および第２の特定値である。次に２つのチェック方法について説明する。
（第１の方法）
注目している格子点ＴＰと隣接している格子点とを、すべての画像ＦＴ上に投影する。投影されたそれぞれの画像ＦＴ上において、投影された２つの点を各画像ＦＴ上でつないだときに、それによってできる辺が輪郭（遮蔽輪郭）と交差するか否かを判断する。１つでも交差する画像ＦＴが存在すれば、格子点ＴＰは視体積ＶＶの境界ＳＦ付近に存在すると判断し、属性値を仮に「BORDER」とする。交差する画像ＦＴがない場合で、格子点ＴＰの投影点が遮蔽輪郭の外部に存在している画像が１つでもあれば、格子点ＴＰは被写体の外部に存在すると判断し、属性値を仮に「OUTSIDE 」とする。それ以外の場合は、格子点ＴＰは被写体の内部に存在すると判断し、属性値を仮に「INSIDE」とする。
（第２の方法）
注目している格子点ＴＰをすべての画像ＦＴ上に投影する。投影された各点を中心とし、中心から一定の半径の円の内部の領域に遮蔽輪郭があるか否かをチェックする。遮蔽輪郭を含むと判断された画像が１つでも存在する場合は、視体積ＶＶの境界ＳＦ付近に存在すると判断する。遮蔽輪郭を含むと判断された画像がない場合で、格子点ＴＰの投影点が遮蔽輪郭外に存在している画像が１つでもあれば、被写体の外部に存在すると判断する。それ以外の場合は、被写体の内部に存在すると判断する。
【００５９】
このようにして、１つの格子点ＴＰについて、全ての画像ＦＴを考慮した上で、仮の属性値を決定する。
仮の属性値が「OUTSIDE 」または「INSIDE」である場合には、属性値を、例えば、それぞれ「マイナス無限大」または「プラス無限大」とする。仮の属性値が「BORDER」である場合には、符号付き距離を計算する（＃６３）。
【００６０】
符号付き距離の計算方法は、基本的にはステップ＃４３の説明で述べたと同様である。しかし、ここでは、１つの格子点ＴＰについて、すべての画像ＦＴを同時に考慮して符号付き距離を決定する。
【００６１】
すなわち、例えば、次のようにして符号付き距離を計算する。
（第１の方法）
注目している格子点ＴＰを、すべての画像ＦＴ上に投影する。投影したすべての画像ＦＴの中から、投影点から遮蔽輪郭までの距離が一番近いものを選択する。選択された画像ＦＴについて、その遮蔽輪郭上の点を通る視線を求める。格子点ＴＰからその視線までの距離を求める。求めた距離に正負の符号を付けて属性値とする。
（第２の方法）
すべての画像ＦＴについて、遮蔽輪郭を一定間隔でサンプリングし、ステップ＃３４での第３の方法と同様に、遮蔽輪郭を通る視線を用いて３次元的に符号付き距離を算出する。
【００６２】
次に、ステップ＃６４では、ステップ＃４４と同様に格子点ＴＰに属性値をセットする。但し、こここでは、各格子点ＴＰに対して、最終的な属性値がセットされる。
【００６３】
ステップ＃６５では、ステップ＃４５と同様に、すべての格子点ＴＰに対して処理を行ったかどうかがチェックされる。
第３の実施形態によると、仮の属性値が「BORDER」である格子点ＴＰのみについて符号付き距離を計算するので、符号付き距離の計算量が大幅に低減する。したがって、処理速度が速い。
〔第４の実施形態による変換処理〕
次に、第４の実施形態として、８分木（Octree) 表現を用いた変換処理について説明する。
【００６４】
図１４は第４の実施形態の変換処理を示すフローチャート、図１５は図１４のステップ＃７５の交差判定処理のサブルーチンを示すフローチャート、図１６および図１７は８分木表現の原理を説明するための図である。
【００６５】
図１６および図１７に示すように、８分木表現では、対象とする物体よりも大きい立方体を定義し、これをルートキューブ（Root-Cube)ＲＣとする。ルートキューブを、ｘ，ｙ，ｚの各方向に沿ってそれぞれ２等分すると、体積が８分の１の立方体が８つ生成される。このような分割を任意のレベルまで再起的に繰り返すことにより、８分木のデータが生成される。８分木表現それ自体は公知である。
【００６６】
図１４において、まず、ルートキューブを設定する（＃７１）。ルートキューブの設定に当たっては、その中心の座標およびサイズを入力する。また、ルートキューブのすべての頂点に対して、物体内部を意味する「ＣＯ」を初期値としてセットする。また、ルートキューブの属性を、遮蔽輪郭と交差していることを表す「GRAY」とし、レベルを「０」とする。属性が「GRAY」であるキューブは、本発明における境界キューブに相当する。
【００６７】
次に、被写体である物体を撮影した画像ＦＴについて、必要なすべての画像を入力する（＃７２）。その際に、それぞれの画像ＦＴを撮影したときのカメラパラメータを入力する。
【００６８】
ステップ＃７３において、ステップ＃３３と同様にシルエット画像ＦＳが生成される。
ステップ＃７４において、キューブ（ルートキューブ）の分割が行われる。ここでの分割は、属性が「GRAY」であるキューブのみがついて行われる。分割は、８分割とされる。そして、レベルを１つ上げる。
【００６９】
ステップ＃７５において、キューブの交差判定が行われる。ここでは、分割されたそれぞれのキューブを画像ＦＴ上に投影し、遮蔽輪郭との交差の有無を判断する。その判断結果に基づいて、キューブの属性を決定する。
【００７０】
そして、所定のレベルに達するまで、ステップ＃７４および７５の処理を繰り返す（＃７６）。または、属性が「GRAY」であるキューブがなくなった場合には、そこで終了する。その場合には、以降の処理において、境界上にあるキューブ、または頂点が境界上にあるキューブを、属性が「GRAY」であるキューブとして用いる。
【００７１】
処理が終わると、属性が「GRAY」であるキューブについて、各頂点の属性値を求めて設定する（＃７７）。各頂点について属性値を求める方法は、第２の実施形態において説明した方法を用いることができる。
【００７２】
図１５において、分割されたキューブのうちの１つに注目する（＃８１）。キューブをすべての画像ＦＴ上に投影し、それぞれにおいて遮蔽輪郭との交差の有無を判断する（＃８２）。
【００７３】
その判断の結果、遮蔽輪郭に対して交差する画像ＦＴが１つでも存在すれば、そのキューブの属性を「GRAY」に設定する。すべての画像において、投影したキューブが遮蔽輪郭内に存在する場合は、キューブの属性を、物体内部を表す「WHITE 」に設定する。すべての画像において、投影したキューブが遮蔽輪郭外に存在する場合は、物体外部を表す「BLACK 」に設定する（＃８３）。
【００７４】
ここでの「GRAY」「WHITE 」「BLACK 」は、それぞれ、上に述べた「BORDER」「INSIDE」「OUTSIDE 」に対応する。
分割された８つのキューブのすべてについての処理が行われた場合には（＃８４でイエス）、リターンする。
【００７５】
第４の実施形態においても、属性が「GRAY」であるキューブの格子点ＴＰのみについて符号付き距離を計算するので、符号付き距離の計算量が大幅に低減し、処理速度が速い。
【００７６】
このように、第１〜第４の実施形態の変換処理によると、格子点ＴＰに多値のデータを持たせることができ、少ない個数のボクセルＶＸによって高精度の３次元形状を表現することができる。したがって、少ないメモリ容量で物体の３次元形状を高精度に表現することができる。
【００７７】
上に述べた第２〜第４の実施形態の変換処理は、主としてシルエット画像に適用されるものである。次に、主としてレンジデータに対して適用される変換処理について詳しく説明する。
〔第５の実施形態による変換処理〕
図１８は第５の実施形態の変換処理を示すフローチャート、図１９はスペースカービングを説明するための図、図２０はボリュームデータＤＶを水平面で切断した状態を示す図、図２１は境界ボクセルを拡大して示す図、図２２〜２５は最近点ＭＤを求める方法を説明するための図である。
【００７８】
ここでは、複数のレンジデータＤＲに対して変換処理を行う。このような複数のレンジデータは、例えば、物体の周囲の異なる位置から物体を複数回に分けて計測することにより得られる。なお、ボリュームデータＤＶに対するレンジデータの位置合わせは済んでいるものとする。
【００７９】
図１８において、スペースカービング（space carving ) を行う（＃９１）。スペースカービングは、ボリュームデータＤＶから、物体ではない不要な部分を切り取る処理である。
【００８０】
すなわち、図１９に示すように、ボリュームデータＤＶのボクセルＶＸのうち、レンジデータＤＲの外部にあるボクセルＶＸについて、その頂点ＴＰの属性値として「マイナス無限大」をセットする。その際に、視点ＶＰからレンジデータＤＲに対して、レンジデータＤＲを含むような視線を仮想し、その視線の内側にあって且つレンジデータＤＲの外側にあるボクセルＶＸを、切り取るべきボクセルＶＸとする。但し、上の実施形態の場合と同様に、レンジデータＤＲの近傍にある頂点ＴＰについては除外する。図１９において、白いボクセルが外部のボクセルＶＸとして表示されている。
【００８１】
１つの格子点ＴＰｘに注目する（＃９２）。注目している格子点ＴＰｘの属性値をチェックする（＃９３）。属性値が「マイナス無限大」でなければ、ステップ＃９４に進む。
【００８２】
その格子点ＴＰｘについて、最近点ＭＤを求める（＃９４）。ｉ番目のレンジデータＤＲにおける最近点ＭＤを最近点ｒｉとする。最近点ＭＤの求め方は次のとおりである。
【００８３】
図２２に示すように、複数のレンジデータＤＲのそれぞれに対して、格子点ＴＰｘから垂線を下ろす。１つのレンジデータＤＲに対して複数の垂線が引ける場合には、そのうちの最も短い垂線を選択する。垂足点が最近点ＭＤ１，２である。但し、垂線の長さＬＭ１，２が所定の長さαよりも短いことを条件とする。つまり、垂線の長さＬＭ１，２がいずれも所定の長さαよりも大きい場合には、最近点ＭＤは存在しないものとする。
【００８４】
最近点ＭＤが存在しない場合には（＃９５でノー）、その格子点ＴＰｘの属性値を「プラス無限大」とする（＃９６）。１つまたは複数の最近点ＭＤが存在する場合には（＃９５でイエス）、最近点ＭＤのうち、格子点ＴＰｘに最も近い最近点ＭＤを最近点ｒmin とする（＃９７）。
【００８５】
なお、ここでは、最近点ＭＤは、レンジデータＤＲを構成する３次元のポリゴンデータＤＰの中から選ばれる。
つまり、図２３および図２５において、格子点ＴＰｘに対するレンジデータＤＲ上の最近点ＭＤ１は、レンジデータＤＲのポリゴンデータＤＰとして存在する３次元点と一致する。したがって、最近点ＭＤ１の座標はポリゴンデータＤＰの座標と一致する。ポリゴンデータＤＰの座標は既知であるので、最近点ＭＤ１の座標は極めて容易に求められる。しかし、最近点ＭＤ１は、レンジデータＤＲに対して真に最も近い点とはいえない。したがって、後で符号付き距離を求める際に、法線となす角の余弦をかけて補正する。
【００８６】
これに対し、図２４に示すように、ポリゴンメッシュＰＭ上の任意の点ＰＭＴを最近点ＭＤとした場合には、レンジデータＤＲに対する真の最近点を得ることができる。しかし、この場合に、最近点ＭＤ１の座標は、周辺のポリゴンデータＤＰの座標から演算により求める必要があるので、座標を求めるのに時間がかかる。
【００８７】
さて、図１８に戻り、ステップ＃９８において、格子点ＴＰｘからレンジデータＤＲまでの符号付き距離を、格子点ＴＰｘから１つまたは複数の最近点ＭＤまでの距離の加重平均によって求める。符号付き距離の求め方は次のとおりである。
【００８８】
すなわち、最近点ＭＤの中で、最近点ｒmin から一定の距離内にある最近点ＭＤのみを抽出する。その中には最近点ｒmin も含める。つまり、最近点ｒmin から一定の距離よりも遠い最近点ＭＤを除外する。抽出された最近点ＭＤについて、格子点ＴＰｘからの距離を求める。求めたすべての距離を加重平均することにより得られる。
【００８９】
すなわち、格子点ＴＰｘの符号付き距離はｄr(x)は、
ｄr(x)＝Σｗi ・〔ｎi ・（ｒi −ＴＰｘ）〕／Σｗi   ……（１）
但し、ｒi はｉ番目のレンジデータにおける最近点
ｎi は最近点ｒi の法線ベクトル
ｗi は最近点ｒi の重み
【００９０】
【数１】
0004904638.tif 000002
【００９１】
として求められる。
すなわち、格子点ＴＰｘと最近点ｒi との間の距離は、格子点ＴＰｘと最近点ｒi とを結ぶ線の長さ（つまりそれらの間の距離）に、その線と最近点ｒi における法線とのなす角の余弦をかけた値として求められる。つまり、格子点ＴＰｘまでの最近点ＭＤにおける法線方向の距離として求められる。距離の符号は、法線方向がマイナスである。求めた距離について、各最近点ｒi の信頼性に応じた重み（荷重）を与えて平均する。これによって符号付き距離が求まる。
【００９２】
重みｗi は、最近点ｒi における法線ベクトルｎi と、格子点ＴＰｘを始点とし最近点ｒi を終点とするベクトルとがなす角の余弦である。つまり、その角が大きいほど、信頼性は小さくなると考えられるので、重みｗi を小さくする。
【００９３】
求めた符号付き距離を、その格子点ＴＰｘの属性値として格納する。
すべての格子点ＴＰに対して処理を行ったかどうかがチェックされる（＃９９）。まだ処理を行っていない格子点ＴＰがある場合は、ステップ＃９２以降を繰り返す。すべての格子点ＴＰについての処理を終えた場合には終了する。これによって、レンジデータＤＲに対応した、図１１のボリュームテーブルＴＬｓと同様なボリュームテーブルＴＬｒが完成する。
〔ボリュームデータの統合〕
さて、ステップ＃２および３において、シルエット画像ＦＳを用いたボリュームデータＤＶと、レンジデータＤＲを用いたボリュームデータＤＶとが生成された。ステップ＃４では、これらのボリュームデータＤＶを統合する。ボリュームデータＤＶの統合に際しては、各ボリュームデータＤＶの互いに対応するボクセルＶＸの２つの属性値に基づいて、当該ボクセルＶＸの統合された属性値を求める。なお、シルエット画像ＦＳによるボリュームデータＤＶの属性値を、シルエット属性値ｄｓ、レンジデータＤＲによるボリュームデータＤＶの属性値を、レンジ属性値ｄｒ、統合されたボリュームデータＤＶの属性値を統合属性値ｄｔと記載することがある。
【００９４】
図２６は格子点ＴＰの属性値と物体の表面ＨＭとの位置関係を示す図、図２７は２つの属性値の統合方法を示す図である。
図２６に示すように、物体の表面ＨＭに対し、属性値の値に応じて、外部（遠）、外部（近）、内部（近）、内部（遠）の４つに分類する。
【００９５】
すなわち、属性値が「マイナス無限大」の場合に外部（遠）、属性値が「プラス無限大」の場合に内部（遠）、属性値が負であって「マイナス無限大」でない場合に外部（近）、属性値が正であって「プラス無限大」でない場合に内部（近）となる。これは、シルエット画像ＦＳおよびレンジデータＤＲのいずれによるボリュームデータＤＶに対しても適用される。
【００９６】
図２７に示すように、シルエット属性値ｄｓが外部（遠）である場合に、レンジ属性値ｄｒの内容に係わらず、統合属性値ｄｔは外部（遠）を示す「マイナス無限大」である。シルエット属性値ｄｓおよびレンジ属性値ｄｒが共に内部（遠）である場合に、統合属性値ｄｔは内部（遠）を示す「プラス無限大」である。シルエット属性値ｄｓが内部（遠）で且つレンジ属性値ｄｒが外部（遠）である場合には、これは実際にはあり得ないが、統合属性値ｄｔは外部（遠）を示す「マイナス無限大」である。
【００９７】
それ以外で、一方が外部（遠）または内部（遠）で他方が外部（近）または内部（近）であった場合には、外部（近）または内部（近）であった方の属性値が用いられる。両方が外部（近）または内部（近）であった場合には、両方の属性値が混合される。混合によって、統合属性値ｄｔは次の（３）式により計算される。
【００９８】
ｄｔ＝ｗｘｄｒ＋（１−ｗｘ）ｄｓ    ……（３）
但し、ｗｘは格子点ＴＰｘにおけるレンジ属性値ｄｒの重みを表す。つまり、レンジ属性値ｄｒの重みｗｘに応じた比で、レンジ属性値ｄｒとシルエット属性値ｄｓとが混合される。荷重ｗｘの値は、物体の形状などに応じて決定される。このように、重みに応じた適当な比で加算されることにより、シルエット画像ＦＳによるボリュームデータＤＶとレンジデータＤＲによるボリュームデータＤＶとの境界部分が滑らかに接続される。得られた統合属性値ｄｔは、その格子点ＴＰの属性値として格納される。このようにして、すべての格子点ＴＰについて属性値が求められる。これによって統合処理が完了する。
【００９９】
このように、シルエット画像ＦＳによるボリュームデータＤＶとレンジデータＤＲによるボリュームデータＤＶとを統合することにより、それぞれの欠点を補って欠落のない精度のよい３次元モデルＭＬを生成することができる。
【０１００】
したがって、物体に凹部領域や低反射率の部分があった場合でも、できるだけ少ないメモリ容量で且つ少ない演算時間で、正確に３次元形状を復元することができる。
【０１０１】
上に述べた実施形態においては、属性値をボクセルの頂点にセットしたが、属性値をセットするのは必ずしもボクセルの頂点である必要はない。例えば、ボクセルの重心であってもよい。
【０１０２】
また、境界と交差するボクセルについてのみ、頂点と境界との距離値をセットするようにしているが、全ボクセルについて行ってもよい。但し、実施例のように交差するボクセルについてのみ演算する方が、演算時間が短縮される。物体の内部を正、外部を負として表現したが、逆であってもよい。
【０１０３】
第４の実施形態では、キューブを８分割する例について説明したが、８分割に限らず、ｘｙｚそれぞれの方向に３分割し、つまりキューブを２７分割してもよいし、それ以上に分割してもよい。
【０１０４】
上に述べた実施形態において、３次元データ生成装置１の全体または各部の構成、処理の内容および順序、ボクセルＶＸの個数、属性値の桁数などは、本発明の趣旨に沿って適宜変更することができる。
【０１０５】
【発明の効果】
本発明によると、凹部領域や低反射率の部分があった場合でも、できるだけ少ないメモリ容量で且つ少ない演算時間で正確に３次元形状を復元することができる。
【図面の簡単な説明】
【図１】本実施形態に係る３次元データ生成装置のブロック図である。
【図２】３次元データ生成装置による３次元モデルの生成処理の流れを示すフローチャートである。
【図３】３次元データ生成装置による変換処理を示すフローチャートである。
【図４】変換処理の変形例を示すフローチャートである。
【図５】第２の実施形態の変換処理を示すフローチャートである。
【図６】図５のステップ＃３４の属性値の設定処理のサブルーチンを示すフローチャートである。
【図７】シルエット画像をボリュームデータに投影した状態を説明するための図である。
【図８】図７に示すシルエット画像の一部を拡大して示す図である。
【図９】ボリュームデータを水平面で切断した状態を示す図である。
【図１０】境界ボクセルを拡大して示す図である。
【図１１】ボリュームデータを格納したボリュームテーブルの例を示す図である。
【図１２】第３の実施形態の変換処理を示すフローチャートである。
【図１３】図１２のステップ＃５４の属性値の設定処理のサブルーチンを示すフローチャートである。
【図１４】第４の実施形態の変換処理を示すフローチャートである。
【図１５】図１４のステップ＃７５の交差判定処理のサブルーチンを示すフローチャートである。
【図１６】８分木表現の原理を説明するための図である。
【図１７】８分木表現の原理を説明するための図である。
【図１８】第５の実施形態の変換処理を示すフローチャートである。
【図１９】スペースカービングを説明するための図である。
【図２０】ボリュームデータを水平面で切断した状態を示す図である。
【図２１】境界ボクセルを拡大して示す図である。
【図２２】最近点を求める方法を説明するための図である。
【図２３】最近点を求める方法を説明するための図である。
【図２４】最近点を求める方法を説明するための図である。
【図２５】最近点を求める方法を説明するための図である。
【図２６】格子点の属性値と物体の表面との位置関係を示す図である。
【図２７】２つの属性値の統合方法を示す図である。
【符号の説明】
１  ３次元データ生成装置
１０  装置本体（第１の変換手段、第２の変換手段、統合手段）
１１  磁気ディスク装置
ＤＶ  ボリュームデータ
ＶＸ  ボクセル
ＦＴ  画像
ＦＳ  シルエット画像
ＣＤ  ＣＤ−ＲＯＭ（記録媒体）
ＦＤ  フロッピィディスク（記録媒体）
ＴＬ  ボリュームテーブル（ボリュームデータ）
ＰＲ  モデリングプログラム（コンピュータプログラム）
【図１】
0004904638.tif 000003
【図２】
0004904638.tif 000004
【図３】
0004904638.tif 000005
【図４】
0004904638.tif 000006
【図５】
0004904638.tif 000007
【図６】
0004904638.tif 000008
【図７】
0004904638.tif 000009
【図８】
0004904638.tif 000010
【図９】
0004904638.tif 000011
【図１０】
0004904638.tif 000012
【図１１】
0004904638.tif 000013
【図１２】
0004904638.tif 000014
【図１３】
0004904638.tif 000015
【図１４】
0004904638.tif 000016
【図１５】
0004904638.tif 000017
【図１６】
0004904638.tif 000018
【図１７】
0004904638.tif 000019
【図１８】
0004904638.tif 000020
【図１９】
0004904638.tif 000021
【図２０】
0004904638.tif 000022
【図２１】
0004904638.tif 000023
【図２２】
0004904638.tif 000024
【図２３】
0004904638.tif 000025
【図２４】
0004904638.tif 000026
【図２５】
0004904638.tif 000027
【図２６】
0004904638.tif 000028
【図２７】
0004904638.tif 000029