JP4061013B2 - 3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus - Google Patents
3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus Download PDFInfo
- Publication number
- JP4061013B2 JP4061013B2 JP2000261512A JP2000261512A JP4061013B2 JP 4061013 B2 JP4061013 B2 JP 4061013B2 JP 2000261512 A JP2000261512 A JP 2000261512A JP 2000261512 A JP2000261512 A JP 2000261512A JP 4061013 B2 JP4061013 B2 JP 4061013B2
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- vertices
- dimensional shape
- mesh
- manifold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、専用の3次元形状処理装置やパーソナルコンピュータなど情報処理装置などで実施される3次元形状生成方法に係わり、特に、3角形メッシュ生成方法に関する。
【0002】
【従来の技術】
近年、インターネット上でのマルチメディア利用の広がりとともに、グラフィクス表示装置とコンピュータとを用いて構成される3次元形状処理システムが普及し、記憶されている3次元形状データ読み出して3次元形状モデルを表示させたり、3次元形状を生成したり、生成されている3次元形状を変形させたり、3次元形状の体積や重心などを計算したりすることが広く行われている。
そのような中で、最近、3次元測定器などを用いて取り込んだ3次元の点群データや距離画像をもとにして符号付き距離関数を生成し、マーチングキューブス法(参考文献[1]参照)などの同位相面生成手法を用いて3角形メッシュで表現される3次元形状モデルを自動生成する手法が提案されている(参考文献[2],[3]参照)。これらの手法の長所を以下に示す。
貫通穴などの位相構造を持った形状でも生成できる。
欠落している点群がある場合でも、その穴を埋める面を生成できる。
3次元測定器の性質や測定条件による誤差がある場合でも、誤差の影響を受けにくい。
測定したサンプル点の分布に偏りがある非一様な場合でも、関数化することで一様な分布のサンプル点を得ることができる。
しかしながら、この手法には以下のような欠点がある。
鋭角の特徴の再現性が弱い。鋭角の稜線を持った機械部品など人工的に作成したものでも、常に丸みを帯びた形状として再現される。
薄い形状や細い形状の再現性が弱い。再現性が格子の位置に依存するので、特に、薄さや細さが格子間隔以下の形状では形状が必ず再現できるとは言えない。
前記した、鋭角の特徴の再現性に関して補足すると、マーチングキューブス法では3角形メッシュの頂点位置が格子軸上に限定されているので、鋭角の稜線などの特徴を十分に捉え切れないのである。また、3角形メッシュの頂点位置がボクセル内で自由に配置できる格子点連結法(参考文献[4]参照)でも、凸部分の鋭角稜線は再現できるが、凹部分の鋭角稜線は再現できない。また、薄い形状や細い形状の再現性に関しては、マーチングキューブス法では、図32に示すように格子の設定位置により、形状が再現できる場合(b)とそうでない場合(a)があり、一般的には格子間隔以下の薄い形状や細い形状の再現性は保証されない。
【0003】
【発明が解決しようとする課題】
前記のように、従来技術においては、3次元測定器などで測定することにより得られる距離画像から3角形メッシュを生成する際に、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われる、格子間隔以下の薄い形状と細い形状が失われるというような問題がある。
本発明の目的は、このような従来技術の問題を解決し、3次元測定器などで測定することにより得られる距離画像から3角形メッシュを生成する際に、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われるという問題、格子間隔以下の薄い形状と細い形状が失われるという問題、格子位置により形状が変化してしまうという問題などを解消できる3次元形状生成方法を提供することにある。
【0004】
【課題を解決するための手段】
前記の課題を解決するために、請求項1記載の発明では、距離画像から3角形メッシュを生成して3次元形状を生成する3次元形状生成装置の3次元形状生成方法において、距離画像ボリューム生成手段が、輪郭・内部・外部の3つの属性値のいずれかを持つ個々のボクセルから成るボリュームモデルを距離画像から生成する工程と、基本メッシュ生成手段が、隣接する8ボクセル属性値から三角形生成情報と回転情報を取得し、取得した回転情報により8ボクセルを回転変換させ、回転変換させた8ボクセルと三角形生成情報とを用いて基本3角形メッシュを生成する工程と、頂点フィッティング手段が、前記基本3角形メッシュの頂点として薄板境界頂点、非多様体稜線接続頂点、非多様体頂点、および一般頂点のうち、少なくとも2種類以上の頂点を検出し、検出した頂点の種類に応じて異なった頂点移動方法を選択し、前記基本3角形メッシュの頂点を移動させて3角形メッシュを生成する工程と、薄板境界頂点まわりの複数の基本3角形メッシュを薄板境界稜線に沿って切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより薄板境界頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する工程と、を実行することを特徴とする。
また、請求項2記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、2つの基本3角形メッシュの組から成る4角形面を検出する工程と、検出された4角形面の組み合わせから薄板境界稜線を検出する工程と、検出された薄板境界稜線から前記薄板境界頂点を検出する工程と、を実行することを特徴とする。
また、請求項3記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、2つの基本3角形メッシュの組から成る4角形面を検出する工程と、検出された4角形面の組み合わせから非多様体稜線を検出する工程と、前記非多様体稜線接続頂点を検出する工程と、を実行することを特徴とする。
また、請求項4記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、非多様体稜線接続頂点を挟んで直交する2本の一般稜線を選択し、選択された2本の一般稜線に沿って前記非多様体稜線接続頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体稜線接続頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する工程を実行することを特徴とする。
【0005】
また、請求項5記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、2つの基本3角形メッシュの組から成る4角形面を検出する工程と、検出された4角形面の組み合わせから非多様体頂点を検出する工程を実行することを特徴とする。
また、請求項6記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、非多様体頂点を挟んで直交する稜線2本を1組とする稜線の組を複数組選択し、選択された複数組の稜線の各組の稜線に沿って前記非多様体頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体頂点を移動し、その移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する工程を実行することを特徴とする。
また、請求項7記載の発明では、請求項1に記載の3次元形状生成方法において、前記頂点フィッティング手段が、2つの基本3角形メッシュの組から成る4角形面を検出する工程と、検出された4角形面の組み合わせから面構成パターンを選択する工程と、選択された面構成パターン毎に新たに頂点と稜線を生成する工程と、を実行し、新たに生成した頂点を距離画像メッシュ上にのるまで移動することにより、前記一般頂点を移動することを特徴とする。
また、請求項8記載の発明では、請求項1乃至請求項7のいずれか1項に記載の3次元形状生成方法において、前記頂点フィッティング手段が、頂点に隣接する基本3角形メッシュの平均法線ベクトルを計算し、求まった平均法線ベクトルから対角線ベクトルを取得し、対角線ベクトルに沿って距離画像メッシュと交差するまで頂点を移動させることにより前記頂点を距離画像メッシュ上にのるまで移動する工程を実行することを特徴とする。
また、請求項9記載の発明では、コンピュータに請求項1乃至8の何れか1項に記載の工程を実行させるためのプログラムを記憶したコンピュータ読み取り可能な記憶媒体を特徴とする。
また、請求項10記載の発明では、距離画像から3角形メッシュを生成して3次元形状を生成する3次元形状生成装置において、輪郭・内部・外部の3つの属性値のいずれかを持つ個々のボクセルから成るボリュームモデルを距離画像から生成する距離画像ボリューム生成手段と、隣接する8ボクセル属性値から三角形生成情報と回転情報を取得し、取得した回転情報により8ボクセルを回転変換させ、回転変換させた8ボクセルと三角形生成情報とを用いて基本3角形メッシュを生成する基本メッシュ生成手段と、前記基本3角形メッシュの頂点として、薄板境界頂点、非多様体稜線接続頂点、非多様体頂点、および一般頂点のうち、少なくとも2種類以上の頂点を検出し、検出した頂点の種類に応じて異なった頂点移動方法を選択し、前記基本3角形メッシュの頂点を移動させて3角形メッシュを生成する手段と、薄板境界頂点まわりの複数の基本3角形メッシュを薄板境界稜線に沿って切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより薄板境界頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段と、を有する頂点フィッティング手段と、を備えたことを特徴とする。
請求項11記載の発明では、請求項10に記載の3次元形状生成装置において、前記頂点フィッティング手段は、2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから薄板境界稜線を検出する手段と、検出された薄板境界稜線から前記薄板境界頂点を検出する手段と、を備えたことを特徴とする。
また、請求項12記載の発明では、請求項10に記載の3次元形状生成装置において、
前記頂点フィッティング手段は、前記2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから非多様体稜線を検出する手段と、前記非多様体稜線接続頂点を検出する手段と、を備えたことを特徴とする。
また、請求項13記載の発明では、請求項10に記載の3次元形状生成装置において、前記頂点フィッティング手段は、非多様体稜線接続頂点を挟んで直交する2本の一般稜線を選択し、選択された2本の一般稜線に沿って前記非多様体稜線接続頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体稜線接続頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段を備えたことを特徴とする。
また、請求項14記載の発明では、請求項10に記載の3次元形状生成装置において、前記頂点フィッティング手段は、2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから非多様体頂点を検出する手段を備えたことを特徴とする。
また、請求項15記載の発明では、請求項10に記載の3次元形状生成装置において、前記頂点フィッティング手段は、非多様体頂点を挟んで直交する稜線2本を1組とする稜線の組を複数組選択し、選択された複数組の稜線の各組の稜線に沿って前記非多様体頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体頂点を移動し、その移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段を備えたことを特徴とする。
また、請求項16記載の発明では、請求項10に記載の3次元形状生成装置において、
前記頂点フィッティング手段は、2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから面構成パターンを選択する手段と、選択された面構成パターン毎に新たに頂点と稜線を生成する手段と、を備え、新たに生成した頂点を距離画像メッシュ上にのるまで移動することにより、前記一般頂点を移動することを特徴とする。
また、請求項17記載の発明では、請求項10乃至請求項16のいずれか1項に記載の3次元形状生成装置において、前記頂点フィッティング手段は、頂点に隣接する基本3角形メッシュの平均法線ベクトルを計算し、求まった平均法線ベクトルから対角線ベクトルを取得し、対角線ベクトルに沿って距離画像メッシュと交差するまで頂点を移動させることにより前記頂点を距離画像メッシュ上にのるまで移動することを特徴とする。
【0006】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図31は本発明の一実施例を示す3次元形状処理装置のハードウェアの構成ブロック図である。図示したように、この実施例の3次元形状処理装置は、プログラムに従って装置全体を制御したり本発明に係わる処理を含む3次元形状処理を行ったりするCPU1、プログラムやデータを一時的に記憶するメモリ2、プログラムや3次元形状データなど各種データを記憶しておく外部記憶装置3、マウスやキーボードなどを有して、3次元形状モデルやそれを構成している形状要素を指定したり、形状生成や形状変形のための入力を行なったりする入力装置4、グラフィックスディスプレイにより構成され、3次元形状モデルなどを表示する表示装置5などを備えている。
このようなハードウェアとプログラムを用いて、本発明の3次元形状処理システムでは、距離画像から3角形メッシュを生成する3次元形状生成方法において、輪郭・内部・外部の3つの属性値のいずれかを持つ個々のボクセルから成るボリュームモデルを距離画像から生成し、隣接する複数ボクセルの前記属性値の組み合わせを用いて基本3角形メッシュを生成し、生成された基本3角形メッシュから多様体頂点を検出してフィッティング処理を行う。なお、前記距離画像は撮影位置を視点とした透視投影または平行投影によった画像であり、距離画像を構成している各画素(背景とは区別される画像部分を構成している最小単位)は属性値として撮影位置からの距離情報を持っている。また、フィッティング処理とは、実物の形状に近づける処理である。
【0007】
以下、図1に示す動作フローに先立って準備しておくこと、および前提条件を示す。
(1)図2に示すような3角形面生成パターンに基づいた3角形を生成する情報へのポインタおよび回転情報(後述)を3角形生成ルックアップテーブルに予め格納しておく。そのルックアップテーブルには、図3に示すような隣接する8つのボクセルの属性値の組み合わせをアドレスとしてアクセスする。図3の例で言えば、「01011111」(図3に示したV0がビット0に相当するので前記ビット列は図3とは左右が逆になっている)という1バイトのアドレスでルックアップテーブルにアクセスするのである。なお、ボクセルとは、当該3次元形状モデルの境界箱(バウンディングボックス)をx,y,z方向に細分割して生成した個々の直方体のことであり、個々のボクセルはそれが当該3次元形状モデルの内部にあるか、輪郭位置にあるか、外部にあるかにより、内部ボクセル、輪郭ボクセル、外部ボクセルのいずれかを示す情報を属性値として持つ。また、図2および図3では8つのボクセルをそれぞれの中心点を示す白丸または黒丸で示している(図4参照)。白丸は外部ボクセル、黒丸は内部または輪郭ボクセルである。また、8つの中心点を結んでできる直方体をキューブと称する。隣接するキューブはいずれの方向も例えば4ボクセル重複して抽出した8ボクセルである。また、図2において、外部ボクセルの中心点(外部点)に結ばれる3角形面生成パターンがないのは、外部点が輪郭を形成する3角形面の外にあるからである。
(2)本発明で用いる前記ルックアップテーブルには、面を生成する場所を示す情報である図5に示すような3角形生成情報(面生成情報)を予め格納しておく(ポインタを格納しておいてもよい)。なお、図5には、3角形生成情報を6面(F0~F5)に対応付けて6ビットで示しているが、実際には例えば1バイトを用いて表現する。
(3)本発明で用いる距離画像は、各画素毎に奥行き方向(撮影位置から被写体に向かう方向)の距離情報(撮影位置からの距離を示す)、カメラ位置、カメラ撮影方向、視野角などの撮影情報を持つ。つまり、各画素毎に、透視変換を用いて容易に3次元空間上の座標値に変換できるものとする。
(4)本発明で用いるボリュームモデルでは、予め各方向のサイズ(各方向のボクセルの個数) Nx, Ny, Nz(すべて正の整数)を決めておく。しかし、必要に応じて利用者が利用前にサイズを指定することも可能とする。サイズを大きくすれば、それだけ細かな解像度の3角形メッシュを得ることができる。但し、Nx,×Ny,×Nzに比例した大きさの作業用メモリ空間が必要になる。
【0008】
以下、図1に示す動作フローに従って、この実施例の動作の概要を説明する。
まず、3次元測定器を用いて取得した距離画像データから輪郭・内部・外部の3つの属性値のいずれかを持つボクセルから構成されるボリュームモデルを生成する(距離画像ボリューム生成ステップ)(S1)。
続いて、ボリュームモデル中のボクセルの位置を順次ずらしながら隣接する8ボクセルの属性値の組み合わせ値を取得し、その値のアドレスに記憶されている3角形生成情報を用いて基本3角形メッシュを生成する(基本メッシュ生成ステップ)(S2)。
そして、基本3角形メッシュから対応する面構成パターンを抽出し、その面構成パターンを用いて基本3角形メッシュの頂点を移動させ、その頂点移動に従って基本3角形メッシュを変形するフィッティング処理を行う(頂点フィッティングステップ)(S3)。
次に、図6に示す動作フロー図に従って、前記距離画像ボリューム生成ステップ(S1)について説明する。
まず、距離画像の画素を頂点とする距離画像メッシュを生成する(S11)。距離画像の各画素が規則的に配置されている場合には隣接情報が得られるので、隣接した3画素を頂点とする3角形を生成することにより距離画像メッシュを生成するのである。距離画像の各画素が不規則に配置されている場合には、距離画像の各画素の座標値に対してドロネ3角形分割(参考文献[5])を用いることにより距離画像メッシュを生成する。なお、異なる方向から撮影されている複数枚の距離画像データがあれば、各距離画像データ毎に距離画像メッシュを生成する。
続いて、距離画像メッシュから、境界箱を生成し、その境界箱を細分して境界箱が複数のボクセルからなる構成とし、とりあえず、すべてのボクセルを内部ボクセルとした初期ボリュームモデルを生成する(内部ボクセル生成ステップ)(初期ボリューム生成)(S12)。
そして、前記ボリュームモデルから輪郭ボクセルを検出し(後述)、そのボクセルに輪郭ボクセルであることを示す属性情報を設定する(輪郭ボクセル生成ステップ)(S13)。
さらに、そのボリュームモデルから外部ボクセルを検出し(後述)、そのボクセルに外部ボクセルであることを示す属性情報を設定する(外部ボクセル生成ステップ)(S14)。
【0009】
次に、図7に示す動作フロー図に従って、前記内部ボクセル生成ステップ(S12)について説明する。
まず、距離画像メッシュの頂点座標をすべて含む境界箱(バウンディングボックス)を求める(S121)。境界箱は、各頂点座標の3次元座標(X,Y,Z)の各要素X,Y,Z毎に最大値Xmin, Ymin, Zmin、最小値Xmax, Ymax, Zmaxを求め、その最大値、最小値を次のように組み合わせた8座標B1〜B8を頂点とする直方体として求める。
B1:(Xmin,Ymin,Zmin), B2:(Xmax,Ymin,Zmin), B3:(Xmin,Ymax,Zmin), B4:(Xmax,Ymax,Zmin), B5:(Xmin,Ymin,Zmax), B6:(Xmax,Ymin,Zmax), B7:(Xmin,Ymax,Zmax), B8:(Xmax,Ymax,Zmax)
続いて、境界箱の各頂点に、次に示すように定数δを加えるか減ずることにより、境界箱を拡大する(S122)。δは、各画素が境界箱の表面に分布し、微妙な境界判断の問題を起こさないようにするための、正の小さな数である。
B1:(Xmin−δ,Ymin−δ,Zmin−δ), B2:(Xmax+δ,Ymin−δ,Zmin−δ), B3:(Xmin−δ,Ymax +δ,Zmin−δ), B4:(Xmax+δ,Ymax+δ,Zmin−δ), B5:(Xmin−δ,Ymin−δ,Zmax+δ), B6:(Xmax+δ,Ymin−δ,Zmax+δ), B7:(Xmin−δ,Ymax+δ,Zmax+δ), B8:(Xmax+δ,Ymax+δ,Zmax+δ)
そして、境界箱の頂点B1をボリュームモデルの原点とし、境界箱を予め決められたサイズ(個数)Nx,Ny,Nzにより分割して生成されたボクセルにより構成されるボリュームモデルを作成する(S123)。
さらに、ボクセルの初期属性値をすべて内部ボクセルに設定する(S124)。
【0010】
次に、図8に示す動作フロー図に従って、前記輪郭ボクセル生成ステップ(S13)について説明する。
まず、距離画像メッシュの各頂点の3次元座標(X,Y,Z)が含まれるボクセルに輪郭ボクセル属性を設定する(S131)。次に示す(1)式を用いて各頂点の座標(X,Y,Z)が含まれているボクセルを検出し、検出したボクセルに輪郭ボクセル属性を設定するのである。
(Xi,Yi,Zi)=( (X−Xmin) /Nx, (Y−Ymin)/ Ny, (Z−Zmin)/ Nz) (1)
ここで、 (Xi,Yi,Zi)はボクセルのアドレス(番号)で各要素の小数点以下は切り捨てられ、整数に丸められる。
続いて、距離画像メッシュの3角形毎に、その頂点が含まれる最大で3つのボクセルを(1)式により探し、3つのボクセルを含む境界箱に相当する、次のように定義されるボクセルアドレス(X,Y,Z)の範囲に存在するボクセル空間を求める(S132)。
min(X1,X2,X3) ≦X≦ max(X1,X2,X3),
min(Y1,Y2,Y3) ≦Y≦ max(Y1,Y2,Y3),
min(Z1,Z2,Z3) ≦Z≦ max(Z1,Z2,Z3).
ここで、(X1,Y1,Z1),(X2,Y2,Z2),(X3,Y3,Z3)は3角形の頂点が含まれる3つのボクセルアドレスとする。
さらに、前記のような各ボクセル空間に含まれる各ボクセルについて距離画像メッシュの各3角形との交差チェックを行い、交差したボクセルを輪郭ボクセルとする(S133)。なお、計算コスト節約のため、既にステップS131で輪郭ボクセルと判定されているものについては、交差チェックを行わない。
【0011】
次に、図9に示す動作フロー図に従って、前記外部ボクセル生成ステップ(S14)について説明する。
まず、距離画像の撮影位置から距離画像メッシュの各3角形面に至る空間から成る角錐状の複数の視点ボリューム空間(平行投影の場合は角柱状のボリューム空間)を作成する(S141)。
続いて、各視点ボリューム空間とボリュームモデルの交差チェックを行い、交差したボクセルに外部ボクセル属性を設定する(S142)。計算コスト節約のため、既に外部ボクセルと判定されたものや、ステップS131およびステップS133で輪郭ボクセルと判定されているものについては、交差チェックを行わずにそのままにしておく。
こうして、輪郭ボクセルでも外部ボクセルでもないボクセルが最終的な内部ボクセルとされるのであるが、そうすると、視点ボリューム空間と交わらない輪郭ボクセルの外側のボクセルがあった場合には、そのボクセルも内部ボクセルになってしまう。そのため、距離画像はあらゆる方向から撮影したものを用意して、被写体の外側はすべて視点ボリューム空間と交わるようにする。
【0012】
次に、図10に示す動作フロー図に従って前記基本メッシュ生成ステップ(S2)について説明する。
まず、ルックアップテーブル内の、隣接する8ボクセルの属性値の組み合わせから成るアドレスから回転情報と3角形生成情報を取得する(S21)。あるいは、ルックアップテーブルに記憶されたポインタを取得し、そのポインティング先からそれらを取得してもよい。3角形生成情報は回転情報に従った回転変換分を一つにまとめることにより、前記図2に示したようにまとめられている。回転情報は、図11に示すように、X,Y,Z各軸まわりに90度の回転を1回とする回転回数を (Rx,Ry,Rz) と定義したもので、それぞれ0以上の整数である。なお、図11はX軸まわりに90度の回転を1回行なった例である。図11において、キューブの下に示した白丸および黒丸は図3と同様な意味である。
続いて、回転情報(Rx,Ry,Rz)により8ボクセル(キューブ)を回転変換させる(S22)。アドレッシング先に8ボクセルのアドレスを格納した領域を用意しておき、回転変換を行うのである。例えば、図11に示した例で言えば、ルックアップテーブルには、(b)図に示した組み合わせのアドレス情報「11111100」に対応付けて回転情報(1,0,0)および(a)図のアドレス「11001111」を格納しておき、アドレス「11001111」を得ることにより(a)図の3角形生成パターンを取得し、それをX軸まわりに90度回転させて(b)図の3角形生成パターンを得る。
さらに、回転変換させた8ボクセルと3角形生成情報を用いて基本3角形メッシュを生成する(S23)。輪郭ボクセルの中心点の座標を取得し、その中心点を3角形メッシュの頂点とする3角形を作成するのである。例えば図11の例では4個の基本3角形メッシュが作成される。なお、図2や図11に示した基本3角形メッシュの各太線は3次元形状モデルの稜線となる。
こうして、対象としているボリュームモデル全体について基本3角形メッシュが求まると、図1に示した頂点フィッティング(S3)では、例えば図12に示したような基本3角形メッシュの頂点(黒丸で図示した点)を移動させて基本3角形メッシュを変形させることにより、基本3角形メッシュの面を実際の輪郭面に近づける。以下、図13に示した動作フローに基づいて、図1に示した頂点フィッティングステップS3における基本3角形メッシュの頂点フィッティング方法の概要を説明する。後述するように、この実施例では、基本3角形メッシュの頂点の種類により、異なった移動方法で頂点を移動させるのが特徴である。これにより、実際の3次元形状が例えば1ボクセルの大きさにも満たない薄板のような場合でも実際に近い3次元形状を生成することができるのである。
【0013】
図13に示したように、まず、対象としているボリュームモデル中から薄板境界頂点を検出する(S31)。そして、その薄板境界頂点を実際の3次元形状に近くなる方向へ移動する(S32)。なお、薄板とは、2つの基本3角形メッシュの組から成る4角形面が背中合わせに、すきまなく密着して存在する場合に当たり、実際の3次元形状が1ボクセルにも満たない厚さのものを言う。薄板の例を図15に示す。図15において、黒丸が薄板境界頂点である。薄板境界については後述する。
次に、非多様体稜線接続頂点を検出し(S33)、前記薄板境界頂点の場合とは違った方法でその非多様体稜線接続頂点を移動する(S34)。
続いて、非多様体頂点を検出し(S35)、非多様体頂点を移動し(S36)、さらに、一般頂点を移動する(S37)。
【0014】
次に、図14に示した動作フローに従って、図13のステップS31に示した薄板境界頂点の検出方法を説明する。
まず、各頂点に隣接する2つの基本3角形メッシュの組から成る4角形面を検出し、4角形面の配置情報である4角形面配置フラグを取得する(S311)。図16に示したように、各頂点のまわりには24種類の4角形面が存在する可能性があるので、4角形面の配置情報は24bitの4角形面配置フラグで表している。4角形面配置フラグの最下位bitから最上位bitまで順にR0からR23とする。Riが1であればi番目の4角形面は存在し、Riが0であればi番目の4角形面は存在しない。このような4角形面配置フラグを図1に示したステップS2の基本3角形メッシュ生成時に作成しておくのである。
続いて、4角形面の有無の組み合わせから薄板の配置情報、つまり薄板の有無を求める(S312)。図17に示したように、各頂点のまわりには12種類の薄板が存在する可能性があるので、薄板の配置情報は12bitの薄板配置フラグで表す。薄板配置フラグの最下位bitから最上位bitまで順にL0からL11とする。Liが1であればi番目の薄板は存在し、Liが0であればi番目の薄板は存在しない。そのような薄板配置フラグの各bitを次のように4角形面配置フラグのbitの論理積(&)を用いて計算する。つまり、前記4角形面が両面にあれば1とするのである。
L0=R0 & R5, L1=R1 & R4, L2=R2 & R7, L3=R3 & R6,
L4=R8 & R13, L5=R9 & R12, L6=R10 & R15, L7=R11 & R14,
L8=R17 & R20, L9=R16 & R21, L10=R19 & R22, L11=R18 & R23
【0015】
次に、面の有無を求める(S313)。図17に示した薄板の場合と同じ配置情報を使用して、12bitの面存在フラグで表す。薄板配置フラグと同様に、最下位bitから最上位bitまで順にN0からN11とする。Niが1であればi番目の場所に面は存在し、Niが0であればi番目の場所に面は存在しない。そのような面存在フラグの各bitを次のように4角形面配置フラグのbitの論理和( | )を用いて計算する。つまり、背中合わせの両側のうち、少なくとも一方に4角形面があれば1とするのである。
N0=R0 | R5, N1=R1 | R4, N2=R2 | R7, N3=R3 | R6,
N4=R8 | R13, N5=R9 | R12, N6=R10 | R15, N7=R11 | R14,
N8=R17 | R20, N9=R16 | R21, N10=R19 | R22, N11=R18 | R23
さらに、薄板の組み合わせにより薄板境界稜線を求める(S314)。なお、薄板境界稜線とは、薄板の境界を成す稜線、つまり、薄板を成す2つの4角形面によってのみ共有される稜線である。頂点のまわりには最大6本の稜線が存在するので、図18に示したように薄板境界稜線の配置情報を6bitの稜線配置フラグによって表す。フラグの最下位bitから最上位bitまで、順にBE0からBE5とする。BEiが1であればその場所に稜線は存在し、BEiが0であればその場所に稜線は存在しない。薄板境界稜線の稜線配置フラグの各bitは、次のように、薄板配置フラグ、面存在フラグの論理積(&)、論理和( | )、否定( ! )を用いて計算される。当該頂点のまわりに薄板境界稜線が1本でも存在すれば、その頂点は薄板境界頂点と判断する。
BE0=(L0 & (!N1 & !N4 & !N6)) | (L1 & (!N0 & !N4 & !N6))
| (L4 & (!N0 & !N1 & !N6)) | (L6 & (!N0 & !N1 & !N4)),
BE1=(L0 & (!N2 & !N8 & !N10)) | (L2 & (!N0 & !N8 & !N10))
| (L8 & (!N0 & !N2 & !N10)) | (L10 & (!N0 & !N2 & !N8)),
BE2=(L0 & (!N1 & !N4 & !N6)) | (L1 & (!N0 & !N4 & !N6))
| (L4 & (!N0 & !N1 & !N6)) | (L6 & (!N0 & !N1 & !N4)),
BE3=(L0 & (!N1 & !N4 & !N6)) | (L1 & (!N0 & !N4 & !N6))
| (L4 & (!N0 & !N1 & !N6)) | (L6 & (!N0 & !N1 & !N4)),
BE4=(L0 & (!N1 & !N4 & !N6)) | (L1 & (!N0 & !N4 & !N6))
| (L4 & (!N0 & !N1 & !N6)) | (L6 & (!N0 & !N1 & !N4)),
BE5=(L0 & (!N1 & !N4 & !N6)) | (L1 & (!N0 & !N4 & !N6))
| (L4 & (!N0 & !N1 & !N6)) | (L6 & (!N0 & !N1 & !N4))
【0016】
次に、図19に示した動作フローに従って、図13のステップS32に示した薄板境界頂点の移動方法を説明する。
まず、前記薄板境界頂点まわりの基本3角形メッシュを薄板境界稜線に沿って切り離す(カットする)(S321)。図21(a),(b)に示したように、薄板境界頂点および薄板境界稜線を位相的に複製し、別の要素として分離するのである。
続いて、切り離すことにより生成された複数の頂点を図21(a)に矢印で示した方向に(この方向の詳細については後述する)距離画像メッシュ上にのるまで移動する(S322)。そして、そのような頂点の移動により生成された、基本3角形メッシュのすきまに新たに3角形面を生成する(S323)。つまり、まず、複製した薄板境界稜線を2辺とする3角形(図21(c)の太線で囲まれた4つの3角形)を生成し、図示の場合のように薄板境界稜線が3本より多い場合には、まだ多角形領域のすきまが残るので、その多角形領域を複数の3角形(図21(d)において太線で囲まれた2つの3角形)に分割することにより穴埋めを行うのである。
こうして、基本3角形メッシュの面は実際の面により近くなる。頂点移動前の頂点位置はボクセルの中心位置に近似されていたが、移動後の頂点位置は3頂点が実際の位置である距離画像メッシュ上の点であるので、実際の位置に極めて近いのである。また、面数を増やして基本3角形メッシュ間を補完したことも実際の面に近づける効果をもたらしている。
次に、図20に示した動作フローに従って、図13のステップS33に示した非多様体稜線接続頂点検出について説明する。
まず、2つの基本3角形メッシュの組から成る4角形面を検出し、4角形面の配置情報である4角形面配置フラグを取得する(S331)。そして、4角形面の組み合わせから非多様体稜線を検出する(S332)。なお、非多様体稜線とは、3つ以上の面により共有されている稜線であり、回転変換により同じになるものを除くと、非多様体稜線を含む4角形面の組み合わせは図22(a),(b)の2つになる。各頂点について4角形面配置フラグを格納したテーブルを用意しておき、そのようなテーブルを探索して、各頂点について図22(a),(b)に示したような非多様体稜線を含むか否かを調べ、非多様体稜線が1つでも検出されたならば、その頂点を非多様体稜線接続頂点とするのである。
【0017】
次に、図23に示した動作フローに従って、図13のステップS34に示した非多様体稜線接続頂点の移動方法を説明する。
まず、非多様体稜線接続頂点を挟んで直交する2本の一般稜線(図24(a),(d)の太線)を選択する(S341)。そして、その2本の一般稜線に沿ってその頂点まわりの基本3角形メッシュを切り離す(カットする)(S342)。
続いて、この切り離しにより生成された複数の頂点を矢印方向へ(詳細は後述)距離画像メッシュ上にのるまで移動する(図24(a), (b),(d),(e)参照)(S343)。そして、その頂点の移動により生成された、基本3角形メッシュのすきまに新たに3角形面を生成する(図24(c),(f)において太線で囲まれた3角形)(S344)。
こうして、基本3角形メッシュの面は実際の面により近くなる。また、面数を増やして基本3角形メッシュ間を補完したことも実際の面に近づける効果をもたらしている。
次に、図25に示した動作フローに従って、図13のステップS35に示した非多様体頂点の検出方法を説明する。なお、非多様体頂点とは、複数の面により頂点のみが共有されている場合におけるその頂点のことである。
まず、2つの基本3角形メッシュの組から成る4角形面を検出し、4角形面配置フラグを取得する(S351)。そして、4角形面の組み合わせから非多様体頂点を検出する(S352)。回転変換により同じになるものを除くと、非多様体頂点を含む4角形面の組み合わせは図22(c)に示したもの1つになるので、各頂点について4角形面配置フラグを格納したテーブルを用意しておき、そのようなテーブルを探索して、各頂点について、複数の面により当該頂点のみが共有されている図22(c)のような4角形面の組み合わせの有無を調べ、そのような組み合わせがあれば、その頂点を非多様体頂点とするのである。
【0018】
次に、図26に示した動作フローに従って、図13のステップS36に示した非多様体頂点の移動方法を説明する。
まず、非多様体頂点を挟んで直交する2本の稜線を1組とする稜線の組を3組(図27(a)の太線)選択する(2組でもよい)(S361)。そして、3組の稜線の各組の稜線に沿ってその非多様体頂点のまわりの複数の基本3角形メッシュを切り離す(カットする)(S362)。
続いて、この切り離しにより生成された複数の頂点を距離画像メッシュ上にのるまで移動する(図27(b)参照)(S363)。そして、そのような頂点移動により生成された、前記基本3角形メッシュのすきまに新たに3角形面(図27(c)の太線で囲まれた3角形)を生成する(S364)。
こうして、基本3角形メッシュの面は実際の面により近くなる。また、面数を増やして基本3角形メッシュ間を補完したことも実際の面に近づける効果をもたらしている。
次に、図28に示した動作フローに従って、図13のステップS37に示した一般頂点の移動方法を説明する。
まず、各頂点まわりについて、2つの基本3角形メッシュの組から成る4角形面を検出し、4角形面の配置情報である4角形面配置フラグを取得する(S371)。そして、これまで説明してきた各種頂点以外の一般頂点(2つの面により共有される稜線が接続する頂点など)を抽出し、その一般頂点まわりの4角形面の組み合わせから面構成パターンを選択する(S372)。回転変換により同じになるものを除くと、そのような4角形面の組み合わせは図12に示した10通りになるので、各頂点について4角形面配置フラグを格納したテーブルを用意しておき、そのようなテーブルを探索して、各頂点について、図12に示したような合致する面構成パターンを求めるのである。
続いて、頂点まわりの複数の基本3角形メッシュを切り離して(カットして)面構成パターン毎に新たに頂点と稜線を生成(複製)する(S373)。ステップS372において抽出した面構成パターンが、ひとつの頂点に対して複数存在する場合があるので、その場合に、頂点と接続する稜線とを複製することにより位相的に分離するのである。
さらに、もとの頂点および新たに生成した頂点を距離画像メッシュ上にのるまで移動する(S374)。
こうして、基本3角形メッシュの面は実際の面により近くなる。
【0019】
次に、図29に示した動作フローに従って、前記した各頂点移動の際の移動方向などについて説明する。
まず、当該頂点まわりの基本3角形メッシュの平均法線ベクトルを計算する(S41)。そして、方向が平均法線ベクトルの逆方向に最も近い対角線ベクトルを求める(S42)。なお、対角線ベクトルとは、当該頂点を含む隣接8ボクセルにおいて、当該頂点と対角位置のボクセルの頂点とを結んだもの(図30(a)参照)、当該頂点に接続するいずれかの稜線の中点とその対角位置の稜線の中点とを結んだもの(図30(b)参照)、当該頂点を含むいずれかの面の中点とその対向面の中点とを結んだもの(図30(c)参照)である。
続いて、求まった対角線ベクトルが距離画像メッシュと交差する交点を求め、前記各動作フローにおいて示した各種頂点をその交点まで移動させる(S43)。
また、その際、距離画像メッシュとの交点が求まらなければ、方向が平均法線ベクトルの逆方向に次に近い対角線ベクトルを選んで前記交点を求め、いずれの対角線ベクトルも交点を持たない場合には、対角線ベクトルの始点から最も距離が近い距離画像メッシュ上の点を頂点移動先とする。なお、前記において、もとの頂点を単純に平均法線ベクトルの逆方向に移動させて距離画像メッシュにのる点を移動先としないのは、薄板などの場合には、ボクセルの中心としての頂点が実際の薄板の表面からずれてしまっていて距離画像メッシュにのらない可能性が大であるからである。
以上、本発明の3次元形状生成方法について説明してきたが、説明したような3次元形状生成方法を実施するためのプログラムを例えば着脱可能な記憶媒体に記憶させ、その記憶媒体をこれまで本発明によった3次元形状生成を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置において本発明によった3次元形状生成を行うこともできる。
参考文献
[1]William E. Lorensen and Harvey E. Cline: "Marching Cubes: A High Resolution 3D Surface Construction Algorithm", SIGGRAPH'87 Proceedings, pp.163-169, Jul 1987.
[2]Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald and Werner Stuetzle: "Surface reconstruction from unorganized points", SIGGRAPH '92 Proceedings, pp.71-78, Jul 1992.
[3]Brian Curless and Marc Levoy: "A Volumetric Method for Building Complex Models from Range Images", SIGGRAPH'96 Proceedings, pp.303-312, Aug 1996.
[4]松岡、植田、早野:「格子点連結法と局所操作を用いた点群データからのソリッドモデル自動再構成」、情報処理学会論文誌、vol.40, No.5, 1999年。
[5]Jean-Daniel Boissonnat: "Geometric structures for three-dimentional shape representation", ACM Transactions on Graphics, Vol.3, No.4, Oct 1984, pp.266-286.
【0020】
【発明の効果】
以上説明したように、請求項1、10記載の本発明によれば、3次元測定器などで測定することにより得られる距離画像から3角形メッシュを生成する際に、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われるという問題、格子間隔以下の薄い形状と細い形状が失われるという問題、格子位置により形状が変化してしまうという問題などを解消できる。また基本3角形メッシュを実際の輪郭面に、より適切に近づけることができる。
また、請求項2、11記載の発明によれば、薄板境界頂点の検出を容易に実現することができる。
【0021】
また、請求項3、12記載の発明によれば、非多様体稜線接続頂点の検出を容易に実現することができる。
また、請求項4、13記載の発明によれば、非多様体稜線接続頂点を有した3次元形状であっても、基本3角形メッシュを実際の輪郭面に適切に近づけることができ、したがって、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われるという問題、格子間隔以下の薄い形状と細い形状が失われるという問題、格子位置により形状が変化してしまうという問題などを解消できる。
また、請求項5、14記載の発明によれば、非多様体頂点の検出を容易に実現することができる。
また、請求項6、15記載の発明によれば、非多様体頂点を有した3次元形状であっても、基本3角形メッシュを実際の輪郭面に適切に近づけることができ、したがって、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われるという問題、格子間隔以下の薄い形状と細い形状が失われるという問題、格子位置により形状が変化してしまうという問題などを解消できる。
【0022】
また、請求項7、16記載の発明によれば、各種頂点のなかに一般頂点が混在した3次元形状であっても、基本3角形メッシュを実際の輪郭面に適切に近づけることができ、したがって、角張った形状の鋭角の稜線、特に凹部分の鋭角稜線が失われるという問題、格子間隔以下の薄い形状と細い形状が失われるという問題、格子位置により形状が変化してしまうという問題などを解消できる。
また、請求項8、17記載の発明によれば、例えば薄板などの場合に、頂点移動の際、ボクセルの中心としての頂点が実際の薄板の表面からずれてしまっていて距離画像メッシュにのらないという事態を避けることができる。
また、請求項9記載の発明によれば、本発明の記憶媒体をパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても請求項1乃至請求項8の何れかに記載の発明の効果を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す3次元形状生成方法の動作フロー図である。
【図2】本発明の一実施例を示す3次元形状生成方法の説明図である。
【図3】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図4】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図5】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図6】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図7】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図8】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図9】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図10】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図11】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図12】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図13】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図14】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図15】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図16】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図17】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図18】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図19】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図20】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図21】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図22】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図23】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図24】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図25】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図26】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図27】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図28】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図29】本発明の一実施例を示す3次元形状生成方法の他の動作フロー図である。
【図30】本発明の一実施例を示す3次元形状生成方法の他の説明図である。
【図31】本発明の一実施例を示す3次元形状処理装置のハードウェアの構成ブロック図である。
【図32】従来技術の一例を示す3次元形状生成方法の説明図である。
【符号の説明】
1 CPU
2 メモリ
3 外部記憶装置
4 入力装置
5 表示装置[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a three-dimensional shape generation method implemented in an information processing apparatus such as a dedicated three-dimensional shape processing apparatus or a personal computer, and more particularly to a triangular mesh generation method.
[0002]
[Prior art]
In recent years, with the spread of multimedia use on the Internet, 3D shape processing systems configured using a graphics display device and a computer have become widespread, and the stored 3D shape data is read and a 3D shape model is displayed. It is widely performed to generate a three-dimensional shape, to deform the generated three-dimensional shape, and to calculate a volume, a center of gravity, and the like of the three-dimensional shape.
Under such circumstances, a signed distance function is generated based on three-dimensional point cloud data or a distance image recently acquired using a three-dimensional measuring instrument or the like, and the marching cubes method (reference document [1]). For example, a method of automatically generating a three-dimensional shape model represented by a triangular mesh using the same phase plane generation method (see References [2] and [3]) has been proposed. The advantages of these methods are as follows.
A shape having a phase structure such as a through hole can also be generated.
Even if there is a missing point cloud, a surface that fills the hole can be generated.
Even if there is an error due to the nature of the three-dimensional measuring instrument or measurement conditions, it is less susceptible to the error.
Even when the measured distribution of sample points is non-uniform, sample points having a uniform distribution can be obtained by functioning.
However, this method has the following drawbacks.
The reproducibility of acute angle features is weak. Even artificial parts such as machine parts with sharp ridges are always reproduced as rounded shapes.
The reproducibility of thin and thin shapes is weak. Since the reproducibility depends on the position of the grid, it cannot be said that the shape can always be reproduced especially when the thickness or the thickness is less than the grid interval.
Supplementing on the reproducibility of the acute angle feature described above, in the marching cubes method, since the vertex position of the triangular mesh is limited on the lattice axis, the feature such as the acute angle ridge line cannot be sufficiently captured. Further, even with a lattice point connection method (see reference [4]) in which the vertex positions of the triangular mesh can be freely arranged in the voxel, the acute angle ridge line of the convex portion can be reproduced, but the acute angle ridge line of the concave portion cannot be reproduced. Regarding the reproducibility of thin shapes and thin shapes, the marching cubes method has a case where the shape can be reproduced (b) and a case where the shape cannot be reproduced (a) depending on the set position of the lattice as shown in FIG. In particular, the reproducibility of thin and narrow shapes below the lattice spacing is not guaranteed.
[0003]
[Problems to be solved by the invention]
As described above, in the prior art, when generating a triangular mesh from a distance image obtained by measuring with a three-dimensional measuring instrument or the like, the acute-angle ridgeline having an angular shape, particularly the acute-angle ridgeline corresponding to the concave portion is lost. There is a problem that thin and narrow shapes less than the lattice spacing are lost.
An object of the present invention is to solve such a problem of the prior art, and when generating a triangular mesh from a distance image obtained by measuring with a three-dimensional measuring instrument or the like, an acute ridgeline having an angular shape, particularly To provide a method for generating a three-dimensional shape capable of solving the problem that a sharp ridge line corresponding to a concave portion is lost, the problem that a thin shape and a thin shape less than a lattice interval are lost, and the problem that the shape changes depending on the lattice position. It is in.
[0004]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, in the invention according to claim 1, a three-dimensional shape is generated by generating a triangular mesh from a distance image.3D shape generatorIn the three-dimensional shape generation method,The distance image volume generation meansGenerating a volume model composed of individual voxels having one of the three attribute values of contour, internal, and external from the distance image;The basic mesh generation means acquires triangle generation information and rotation information from adjacent 8 voxel attribute values, rotates and converts 8 voxels using the acquired rotation information, and uses the rotation converted 8 voxels and triangle generation information.Generating a basic triangular mesh;Vertex fitting means detects at least two types of vertices among thin plate boundary vertices, non-manifold edge connecting vertices, non-manifold vertices, and general vertices as vertices of the basic triangular mesh, and the types of detected vertices Different vertex movement methods are selected according toGenerate triangle mesh by moving the vertex of basic triangle meshDoProcess,Move the thin plate boundary vertices by cutting the basic triangular meshes around the thin plate boundary vertices along the thin plate boundary ridges and moving the resulting multiple vertices until they are on the distance image mesh. Generating a new triangular surface in the gap of the basic triangular mesh generated by movement;TheExecuteIt is characterized by that.
In the invention according to
In the invention according to
In the invention according to claim 4, the claim1In the three-dimensional shape generation method described inThe vertex fitting means isSelect two general ridge lines that are orthogonal to each other across the non-manifold ridge line connection vertices, cut a plurality of basic triangular meshes around the non-manifold ridge line connection vertices along the two selected general ridge lines, and As a result, the non-manifold ridge line connected vertices are moved by moving the plurality of vertices generated on the distance image mesh, and a new triangle is added to the gap of the basic triangular mesh generated by the movement. Process for generating facesRunIt is characterized by that.
[0005]
In the invention according to claim 5,Claim1In the three-dimensional shape generation method described inThe vertex fitting means isDetects a quadrangular surface consisting of a set of two basic triangular meshesAnd the processDetecting non-manifold vertices from combinations of detected quadrangular surfacesRunIt is characterized by that.
In the invention according to claim 6,Claim1In the described three-dimensional shape generation method,The vertex fitting means isA plurality of pairs of ridge lines with two ridge lines orthogonal to each other across the non-manifold vertices are selected, and a plurality of ridge lines around the non-manifold vertices are selected along each ridge line of the selected plurality of ridge lines. The non-manifold vertices are moved by separating the basic triangular mesh, and moving the non-manifold vertices by moving a plurality of vertices generated as a result on the distance image mesh, and the basic triangular mesh generated by the movement is moved. The process of creating a new triangular surface in the clearanceExecuteIt is characterized by that.
In the invention according to claim 7,Claim1In the three-dimensional shape generation method described inThe vertex fitting means isA step of detecting a quadrangular surface comprising a set of two basic triangular meshes, a step of selecting a surface configuration pattern from the combination of detected quadrangular surfaces, and a new vertex and ridge for each selected surface configuration pattern GeneratingRunThe general vertex is moved by moving the newly generated vertex until it falls on the distance image mesh.
In the invention according to claim 8,Claim1To claims7One of1 itemIn the three-dimensional shape generation method described inThe vertex fitting means isThe average normal vector of the basic triangular mesh adjacent to the vertex is calculated, the diagonal vector is obtained from the obtained average normal vector, and the vertex is moved by moving along the diagonal vector until it intersects the distance image mesh. Move until it is on the distance image meshExecute the processIt is characterized by that.
In the invention according to claim 9,A computer-readable storage medium storing a program for causing a computer to execute the process according to any one of claims 1 to 8.
In the invention according to claim 10,In a 3D shape generation device that generates a 3D shape by generating a triangular mesh from a distance image, a volume model consisting of individual voxels with one of the three attribute values of contour, inside, and outside is generated from the distance image. DoDistance image volume generation meansWhen,Triangle generation information and rotation information are acquired from adjacent 8 voxel attribute values, 8 voxels are rotated and converted using the acquired rotation information, and the 8 voxels and triangle generation information that have been converted to rotation are used.Generate a basic triangular meshBasic mesh generation meansWhen,As the vertices of the basic triangular mesh, at least two types of vertices are detected among thin plate boundary vertices, non-manifold ridge line connection vertices, non-manifold vertices, and general vertices, and differ according to the detected vertex type. Select the vertex movement methodMeans for generating a triangular mesh by moving the vertices of the basic triangular mesh;Move the thin plate boundary vertices by cutting the basic triangular meshes around the thin plate boundary vertices along the thin plate boundary ridges and moving the resulting multiple vertices until they are on the distance image mesh. Vertex fitting means comprising: means for newly generating a triangular surface in the gap of the basic triangular mesh generated by movement;It is provided with.
In the invention according to
In the invention according to
The vertex fitting means includes theMeans for detecting a quadrilateral surface comprising a set of two basic triangular meshes, means for detecting a non-manifold ridge line from the combination of detected quadrilateral surfaces, and means for detecting the non-manifold ridge line connection vertex , Provided.
In the invention according to claim 13,ClaimTo 10In the described three-dimensional shape generation apparatus,The vertex fitting means includesSelect two general ridge lines that are orthogonal to each other across the non-manifold ridge line connection vertices, cut a plurality of basic triangular meshes around the non-manifold ridge line connection vertices along the two selected general ridge lines, and As a result, the non-manifold ridge line connected vertices are moved by moving the plurality of vertices generated on the distance image mesh, and a new triangle is added to the gap of the basic triangular mesh generated by the movement. A means for generating a surface is provided.
In the invention according to claim 14,Claim10In the three-dimensional shape generation apparatus described inThe vertex fitting means includesThe present invention is characterized by comprising means for detecting a quadrangular surface comprising a set of two basic triangular meshes and means for detecting a non-manifold vertex from a combination of the detected quadrangular surfaces.
In the invention according to claim 15,Claim10In the three-dimensional shape generation apparatus described inThe vertex fitting means includesA plurality of pairs of ridge lines with two ridge lines orthogonal to each other across the non-manifold vertices are selected, and a plurality of ridge lines around the non-manifold vertices are selected along each ridge line of the selected plurality of ridge lines. The non-manifold vertices are moved by separating the basic triangular mesh, and moving the non-manifold vertices by moving a plurality of vertices generated as a result on the distance image mesh, and the basic triangular mesh generated by the movement is moved. A means for newly generating a triangular surface in the clearance is provided.
In the invention according to claim 16,Claim10In the three-dimensional shape generation apparatus described in
The vertex fitting means includesMeans for detecting a quadrangular surface consisting of a set of two basic triangular meshes, means for selecting a surface configuration pattern from the combination of detected quadrangular surfaces, and new vertices and ridge lines for each selected surface configuration pattern And generating the vertices by moving the newly generated vertices until they are on the distance image mesh.
In the invention according to claim 17,Claim10To claims16One of1 itemIn the three-dimensional shape generation apparatus described inThe vertex fitting means includesBy calculating the average normal vector of the basic triangular mesh adjacent to the vertex, obtaining the diagonal vector from the obtained average normal vector, and moving the vertex along the diagonal vector until it intersects the distance image mesh, the vertex Is moved until it falls on the distance image mesh.
[0006]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 31 is a hardware configuration block diagram of a three-dimensional shape processing apparatus showing an embodiment of the present invention. As shown in the figure, the three-dimensional shape processing apparatus of this embodiment temporarily stores a CPU 1 for controlling the entire apparatus according to a program or performing three-dimensional shape processing including processing according to the present invention, and programs and data.
In the 3D shape processing system of the present invention using such hardware and program, in the 3D shape generation method for generating a triangular mesh from a distance image, any one of the three attribute values of contour, inside, and outside is selected. A volume model consisting of individual voxels with a distance image is generated from a distance image, a basic triangular mesh is generated using a combination of the attribute values of adjacent voxels, and a manifold vertex is detected from the generated basic triangular mesh Then, the fitting process is performed. The distance image is an image obtained by perspective projection or parallel projection with the photographing position as the viewpoint, and each pixel constituting the distance image (minimum unit constituting an image portion distinguished from the background) Has distance information from the shooting position as an attribute value. Further, the fitting process is a process for bringing the shape close to the actual shape.
[0007]
In the following, preparation and prerequisites are shown prior to the operation flow shown in FIG.
(1) A pointer to information for generating a triangle based on a triangle surface generation pattern as shown in FIG. 2 and rotation information (described later) are stored in advance in a triangle generation lookup table. The look-up table is accessed by using as an address a combination of attribute values of eight adjacent voxels as shown in FIG. In the example of FIG. 3, in the lookup table, the address of 1 byte is “01011111” (V0 shown in FIG. 3 corresponds to bit 0, so the bit string is opposite to that in FIG. 3). To access. A voxel is an individual rectangular parallelepiped generated by subdividing the bounding box (bounding box) of the three-dimensional shape model in the x, y, and z directions, and each voxel has the three-dimensional shape. Information indicating one of the internal voxel, the contour voxel, and the external voxel is provided as an attribute value depending on whether the model is inside, at the contour position, or outside. 2 and 3, eight voxels are indicated by white circles or black circles indicating the respective center points (see FIG. 4). White circles are external voxels and black circles are internal or contour voxels. A rectangular parallelepiped formed by connecting eight center points is called a cube. Adjacent cubes are 8 voxels extracted by overlapping, for example, 4 voxels in any direction. In FIG. 2, there is no triangular surface generation pattern connected to the center point (external point) of the external voxel because the external point is outside the triangular surface forming the contour.
(2) In the lookup table used in the present invention, triangle generation information (surface generation information) as shown in FIG. 5 which is information indicating a place where a surface is generated is stored in advance (a pointer is stored). You can leave it). In FIG. 5, the triangle generation information is shown in 6 bits in association with 6 planes (F0 to F5), but in actuality, for example, it is expressed using 1 byte.
(3) The distance image used in the present invention is the distance information (indicating the distance from the shooting position) in the depth direction (direction from the shooting position to the subject), camera position, camera shooting direction, viewing angle, etc. for each pixel. Has shooting information. That is, it is assumed that each pixel can be easily converted into a coordinate value in a three-dimensional space using perspective transformation.
(4) In the volume model used in the present invention, the size in each direction (the number of voxels in each direction) Nx, Ny, Nz (all positive integers) is determined in advance. However, if necessary, the user can specify the size before use. If the size is increased, a triangular mesh with finer resolution can be obtained. However, a working memory space having a size proportional to Nx, × Ny, × Nz is required.
[0008]
The outline of the operation of this embodiment will be described below according to the operation flow shown in FIG.
First, a volume model composed of voxels having any one of three attribute values of outline, inside, and outside is generated from distance image data acquired using a three-dimensional measuring device (distance image volume generation step) (S1). .
Subsequently, while sequentially shifting the position of the voxel in the volume model, the combination value of the attribute values of the adjacent 8 voxels is acquired, and the basic triangle mesh is generated using the triangle generation information stored at the address of the value. (Basic mesh generation step) (S2).
Then, a corresponding surface configuration pattern is extracted from the basic triangular mesh, the vertex of the basic triangular mesh is moved using the surface configuration pattern, and fitting processing is performed to deform the basic triangular mesh according to the vertex movement (vertex) Fitting step) (S3).
Next, the distance image volume generation step (S1) will be described with reference to the operation flowchart shown in FIG.
First, a distance image mesh having the pixels of the distance image as vertices is generated (S11). Adjacent information is obtained when the pixels of the distance image are regularly arranged. Therefore, a distance image mesh is generated by generating a triangle having three adjacent pixels as vertices. If each pixel of the distance image is irregularly arranged, a distance image mesh is generated by using Delaunay triangulation (reference document [5]) for the coordinate value of each pixel of the distance image. If there are a plurality of distance image data taken from different directions, a distance image mesh is generated for each distance image data.
Subsequently, a bounding box is generated from the distance image mesh, and the bounding box is subdivided into a structure including a plurality of voxels. For the time being, an initial volume model is generated in which all the voxels are internal voxels (internal Voxel generation step) (initial volume generation) (S12).
Then, a contour voxel is detected from the volume model (described later), and attribute information indicating that it is a contour voxel is set in the voxel (contour voxel generation step) (S13).
Further, an external voxel is detected from the volume model (described later), and attribute information indicating that the voxel is an external voxel is set (external voxel generation step) (S14).
[0009]
Next, the internal voxel generation step (S12) will be described with reference to the operation flowchart shown in FIG.
First, a bounding box (bounding box) including all vertex coordinates of the distance image mesh is obtained (S121). The bounding box calculates the maximum value Xmin, Ymin, Zmin and the minimum value Xmax, Ymax, Zmax for each element X, Y, Z of the three-dimensional coordinates (X, Y, Z) of each vertex coordinate, It is obtained as a rectangular parallelepiped with the eight coordinates B1 to B8 combined with the minimum values as follows.
B1: (Xmin, Ymin, Zmin), B2: (Xmax, Ymin, Zmin), B3: (Xmin, Ymax, Zmin), B4: (Xmax, Ymax, Zmin), B5: (Xmin, Ymin, Zmax), B6: (Xmax, Ymin, Zmax), B7: (Xmin, Ymax, Zmax), B8: (Xmax, Ymax, Zmax)
Subsequently, the bounding box is enlarged by adding or subtracting a constant δ to each vertex of the bounding box as shown below (S122). δ is a small positive number so that each pixel is distributed on the surface of the bounding box and does not cause a subtle boundary judgment problem.
B1: (Xmin−δ, Ymin−δ, Zmin−δ), B2: (Xmax + δ, Ymin−δ, Zmin−δ), B3: (Xmin−δ, Ymax + δ, Zmin−δ), B4: (Xmax + δ, Ymax + δ, Zmin−δ), B5: (Xmin−δ, Ymin−δ, Zmax + δ), B6: (Xmax + δ, Ymin−δ, Zmax + δ), B7: (Xmin −δ, Ymax + δ, Zmax + δ), B8: (Xmax + δ, Ymax + δ, Zmax + δ)
Then, a volume model composed of voxels generated by dividing the bounding box by a predetermined size (number) Nx, Ny, Nz with the vertex B1 of the bounding box as the origin of the volume model is created (S123). .
Furthermore, all the initial attribute values of the voxels are set to internal voxels (S124).
[0010]
Next, the outline voxel generation step (S13) will be described with reference to the operation flowchart shown in FIG.
First, a contour voxel attribute is set to a voxel including the three-dimensional coordinates (X, Y, Z) of each vertex of the distance image mesh (S131). The voxel containing the coordinates (X, Y, Z) of each vertex is detected using the following equation (1), and the contour voxel attribute is set to the detected voxel.
(Xi, Yi, Zi) = ((X−Xmin) / Nx, (Y−Ymin) / Ny, (Z−Zmin) / Nz) (1)
Here, (Xi, Yi, Zi) is the address (number) of the voxel, and the decimal part of each element is rounded down and rounded to an integer.
Next, for each triangle of the distance image mesh, search for a maximum of three voxels containing the vertices by equation (1), and the voxel address defined as follows, corresponding to the bounding box containing the three voxels: A voxel space existing in the range of (X, Y, Z) is obtained (S132).
min (X1, X2, X3) ≦ X ≦ max (X1, X2, X3),
min (Y1, Y2, Y3) ≦ Y ≦ max (Y1, Y2, Y3),
min (Z1, Z2, Z3) ≤Z≤max (Z1, Z2, Z3).
Here, (X1, Y1, Z1), (X2, Y2, Z2), and (X3, Y3, Z3) are assumed to be three voxel addresses including triangle vertices.
Further, intersection check with each triangle of the distance image mesh is performed for each voxel included in each voxel space as described above, and the intersecting voxel is set as a contour voxel (S133). Note that, in order to save calculation cost, the intersection check is not performed for those that have already been determined as contour voxels in step S131.
[0011]
Next, the external voxel generation step (S14) will be described according to the operation flow chart shown in FIG.
First, a plurality of pyramid-shaped viewpoint volume spaces (prism-shaped volume spaces in the case of parallel projection) composed of spaces from the distance image capturing position to each triangular surface of the distance image mesh are created (S141).
Subsequently, an intersection check between each viewpoint volume space and the volume model is performed, and an external voxel attribute is set for the intersected voxel (S142). In order to save the calculation cost, those already determined as external voxels and those determined as contour voxels in step S131 and step S133 are left without being subjected to the intersection check.
Thus, a voxel that is neither a contour voxel nor an external voxel becomes the final internal voxel, and if there is a voxel outside the contour voxel that does not intersect the viewpoint volume space, that voxel is also included in the internal voxel. turn into. For this reason, the distance images are taken from all directions, and all the outside of the subject intersects the viewpoint volume space.
[0012]
Next, the basic mesh generation step (S2) will be described with reference to the operation flowchart shown in FIG.
First, rotation information and triangle generation information are acquired from an address formed by a combination of attribute values of adjacent 8 voxels in the lookup table (S21). Or the pointer memorize | stored in the lookup table may be acquired, and you may acquire them from the pointing destination. The triangle generation information is collected as shown in FIG. 2 by combining the rotation transformations according to the rotation information into one. As shown in Fig. 11, the rotation information is defined as (Rx, Ry, Rz), where the number of rotations is 90 ° around X, Y, and Z axes. It is. FIG. 11 shows an example in which the rotation of 90 degrees around the X axis is performed once. In FIG. 11, white and black circles shown below the cube have the same meaning as in FIG.
Subsequently, eight voxels (cube) are rotationally converted by the rotation information (Rx, Ry, Rz) (S22). An area storing an address of 8 voxels is prepared at the addressing destination, and rotation conversion is performed. For example, in the example shown in FIG. 11, in the lookup table, the rotation information (1,0,0) and (a) diagrams are associated with the address information “11111100” of the combination shown in FIG. The address “11001111” is stored, and the address “11001111” is obtained to obtain the triangle generation pattern of FIG. (A), rotate it 90 degrees around the X axis, and (b) the triangle of FIG. Get the generation pattern.
Further, a basic triangular mesh is generated using the rotationally converted 8 voxels and the triangular generation information (S23). The coordinates of the center point of the contour voxel are acquired, and a triangle having the center point as the vertex of the triangular mesh is created. For example, in the example of FIG. 11, four basic triangular meshes are created. Each thick line of the basic triangular mesh shown in FIG. 2 or FIG. 11 is a ridge line of the three-dimensional shape model.
Thus, when the basic triangular mesh is obtained for the entire volume model of interest, the vertex fitting (S3) shown in FIG. 1 shows the vertices of the basic triangular mesh as shown in FIG. To move the surface of the basic triangular mesh closer to the actual contour surface. The outline of the vertex fitting method for the basic triangular mesh in the vertex fitting step S3 shown in FIG. 1 will be described below based on the operation flow shown in FIG. As will be described later, this embodiment is characterized in that vertices are moved by different movement methods depending on the types of vertices of the basic triangular mesh. Thereby, even in the case of a thin plate whose actual three-dimensional shape is less than the size of, for example, one voxel, a three-dimensional shape close to the actual one can be generated.
[0013]
As shown in FIG. 13, first, thin plate boundary vertices are detected from the target volume model (S31). Then, the thin plate boundary vertex is moved in a direction close to an actual three-dimensional shape (S32). In addition, a thin plate refers to a case in which a quadrangular surface consisting of a set of two basic triangular meshes is back-to-back and in close contact with each other, and the actual three-dimensional shape has a thickness less than 1 voxel. To tell. An example of a thin plate is shown in FIG. In FIG. 15, the black circle is the thin plate boundary vertex. The thin plate boundary will be described later.
Next, the non-manifold ridge line connection vertex is detected (S33), and the non-manifold ridge line connection vertex is moved by a method different from the case of the thin plate boundary vertex (S34).
Subsequently, the non-manifold vertex is detected (S35), the non-manifold vertex is moved (S36), and the general vertex is further moved (S37).
[0014]
Next, the thin plate boundary vertex detection method shown in step S31 of FIG. 13 will be described according to the operation flow shown in FIG.
First, a quadrangular surface composed of a set of two basic triangular meshes adjacent to each vertex is detected, and a quadrangular surface arrangement flag which is the arrangement information of the quadrangular surface is acquired (S311). As shown in FIG. 16, since there are 24 types of quadrangular surfaces around each vertex, the arrangement information of the quadrangular surfaces is represented by a 24-bit quadrangular surface arrangement flag. R0 to R23 are sequentially set from the least significant bit to the most significant bit of the quadrangular surface arrangement flag. If Ri is 1, the i-th square surface exists, and if Ri is 0, the i-th square surface does not exist. Such a quadrangular surface arrangement flag is created when the basic triangular mesh is generated in step S2 shown in FIG.
Subsequently, the arrangement information of the thin plate, that is, the presence or absence of the thin plate is obtained from the combination of the presence or absence of the quadrangular surface (S312). As shown in FIG. 17, since there are 12 kinds of thin plates around each vertex, the thin plate arrangement information is represented by a 12-bit thin plate arrangement flag. L0 to L11 in order from the least significant bit to the most significant bit of the thin plate placement flag. If Li is 1, the i-th thin plate exists, and if Li is 0, the i-th thin plate does not exist. Each bit of such a thin plate arrangement flag is calculated using the logical product (&) of the bits of the quadrangular surface arrangement flag as follows. That is, if the quadrangular surface is on both sides, it is 1.
L0 = R0 & R5, L1 = R1 & R4, L2 = R2 & R7, L3 = R3 & R6,
L4 = R8 & R13, L5 = R9 & R12, L6 = R10 & R15, L7 = R11 & R14,
L8 = R17 & R20, L9 = R16 & R21, L10 = R19 & R22, L11 = R18 & R23
[0015]
Next, the presence / absence of a surface is obtained (S313). Using the same arrangement information as in the case of the thin plate shown in FIG. 17, it is represented by a 12-bit surface presence flag. Similarly to the thin plate arrangement flag, N0 to N11 are sequentially set from the least significant bit to the most significant bit. If Ni is 1, there is a surface at the i th location, and if Ni is 0, there is no surface at the i th location. Each bit of such a surface presence flag is calculated using the logical sum (|) of the bits of the quadrangular surface arrangement flag as follows. That is, if there is a quadrangular surface on at least one of both sides of the back-to-back, it is 1.
N0 = R0 | R5, N1 = R1 | R4, N2 = R2 | R7, N3 = R3 | R6,
N4 = R8 | R13, N5 = R9 | R12, N6 = R10 | R15, N7 = R11 | R14,
N8 = R17 | R20, N9 = R16 | R21, N10 = R19 | R22, N11 = R18 | R23
Further, a thin plate boundary ridge line is obtained by combining thin plates (S314). The thin plate boundary ridge line is a ridge line forming a thin plate boundary, that is, a ridge line shared only by two quadrangular surfaces forming a thin plate. Since there are a maximum of six ridge lines around the vertex, the arrangement information of the thin plate boundary ridge lines is represented by a 6-bit ridge line arrangement flag as shown in FIG. BE0 to BE5 in order from the least significant bit to the most significant bit of the flag. If BEi is 1, there is a ridgeline at that location, and if BEi is 0, there is no ridgeline at that location. Each bit of the ridge line placement flag of the thin plate boundary ridge line is calculated using the logical product (&), logical sum (|), negation (!) Of the thin plate placement flag and the surface presence flag as follows. If even one thin plate boundary ridge exists around the vertex, the vertex is determined to be a thin plate boundary vertex.
BE0 = (L0 & (! N1 &! N4 &! N6)) | (L1 & (! N0 &! N4 &! N6))
| (L4 & (! N0 &! N1 &! N6)) | (L6 & (! N0 &! N1 &! N4)),
BE1 = (L0 & (! N2 &! N8 &! N10)) | (L2 & (! N0 &! N8 &! N10))
| (L8 & (! N0 &! N2 &! N10)) | (L10 & (! N0 &! N2 &! N8)),
BE2 = (L0 & (! N1 &! N4 &! N6)) | (L1 & (! N0 &! N4 &! N6))
| (L4 & (! N0 &! N1 &! N6)) | (L6 & (! N0 &! N1 &! N4)),
BE3 = (L0 & (! N1 &! N4 &! N6)) | (L1 & (! N0 &! N4 &! N6))
| (L4 & (! N0 &! N1 &! N6)) | (L6 & (! N0 &! N1 &! N4)),
BE4 = (L0 & (! N1 &! N4 &! N6)) | (L1 & (! N0 &! N4 &! N6))
| (L4 & (! N0 &! N1 &! N6)) | (L6 & (! N0 &! N1 &! N4)),
BE5 = (L0 & (! N1 &! N4 &! N6)) | (L1 & (! N0 &! N4 &! N6))
| (L4 & (! N0 &! N1 &! N6)) | (L6 & (! N0 &! N1 &! N4))
[0016]
Next, according to the operation flow shown in FIG. 19, the thin plate boundary vertex moving method shown in step S32 of FIG. 13 will be described.
First, the basic triangular mesh around the thin plate boundary vertex is cut (cut) along the thin plate boundary ridge line (S321). As shown in FIGS. 21 (a) and 21 (b), the thin plate boundary vertex and the thin plate boundary ridge line are duplicated in phase and separated as separate elements.
Subsequently, the plurality of vertices generated by the separation are moved in the direction indicated by the arrow in FIG. 21A (details of this direction will be described later) until they are placed on the distance image mesh (S322). Then, a new triangular surface is generated in the gap of the basic triangular mesh generated by such vertex movement (S323). That is, first, a triangle with four sides of the copied thin plate boundary ridge line (four triangles surrounded by the thick line in FIG. 21 (c)) is generated, and there are three thin plate boundary ridge lines as shown in the figure. In many cases, the gap in the polygonal area still remains, so filling the polygonal area by dividing it into multiple triangles (two triangles surrounded by bold lines in Fig. 21 (d)) is there.
Thus, the surface of the basic triangular mesh is closer to the actual surface. The vertex position before the vertex movement was approximated to the center position of the voxel, but the vertex position after the movement is a point on the distance image mesh where the three vertices are the actual positions, so it is very close to the actual position. . In addition, increasing the number of faces and complementing between the basic triangular meshes also brings the effect of bringing them closer to the actual faces.
Next, according to the operation flow shown in FIG. 20, the non-manifold ridge line connection vertex detection shown in step S33 of FIG. 13 will be described.
First, a quadrangular surface composed of a set of two basic triangular meshes is detected, and a quadrangular surface arrangement flag, which is arrangement information of the quadrangular surface, is acquired (S331). Then, a non-manifold ridge line is detected from the combination of the quadrangular surfaces (S332). Note that the non-manifold ridge line is a ridge line shared by three or more faces, and except for those that become the same by rotation transformation, the combination of quadrangular faces including the non-manifold ridge line is shown in FIG. ) and (b). Prepare a table storing the quadrilateral plane placement flag for each vertex, search for such a table, and include the non-manifold ridgeline as shown in FIGS. 22 (a) and (b) for each vertex. If at least one non-manifold ridge line is detected, the vertex is set as a non-manifold ridge line connection vertex.
[0017]
Next, the non-manifold ridge line connection vertex moving method shown in step S34 of FIG. 13 will be described according to the operation flow shown in FIG.
First, two general ridge lines (thick lines in FIGS. 24A and 24D) orthogonal to each other across the non-manifold ridge line connection vertex are selected (S341). Then, the basic triangular mesh around the vertex is cut (cut) along the two general ridge lines (S342).
Subsequently, the plurality of vertices generated by this separation are moved in the direction of the arrow (details will be described later) until they lie on the distance image mesh (see FIGS. 24 (a), (b), (d), and (e). (S343). Then, a new triangular surface is generated in the gap of the basic triangular mesh generated by the movement of the vertex (a triangle surrounded by a thick line in FIGS. 24C and 24F) (S344).
Thus, the surface of the basic triangular mesh is closer to the actual surface. In addition, increasing the number of faces and complementing between the basic triangular meshes also brings the effect of bringing them closer to the actual faces.
Next, according to the operation flow shown in FIG. 25, the non-manifold vertex detection method shown in step S35 of FIG. 13 will be described. A non-manifold vertex is a vertex when only a vertex is shared by a plurality of faces.
First, a quadrangular surface composed of a set of two basic triangular meshes is detected, and a quadrangular surface arrangement flag is acquired (S351). Then, a non-manifold vertex is detected from the combination of the quadrangular surfaces (S352). Excluding those that become the same due to the rotation transformation, the combination of the quadrangular faces including the non-manifold vertices is one shown in FIG. 22 (c), so a table storing the quadrangular face arrangement flag for each vertex. Is prepared, and such a table is searched, and for each vertex, the presence or absence of a combination of quadrangular surfaces as shown in FIG. If there is such a combination, the vertex is set as a non-manifold vertex.
[0018]
Next, according to the operation flow shown in FIG. 26, the non-manifold vertex moving method shown in step S36 of FIG. 13 will be described.
First, three pairs of ridge lines (thick lines in FIG. 27 (a)) having two ridge lines orthogonal to each other across the non-manifold vertex are selected (two pairs may be used) (S361). Then, a plurality of basic triangular meshes around the non-manifold vertices are cut (cut) along the ridge lines of the three sets of ridge lines (S362).
Subsequently, the plurality of vertices generated by the separation are moved until they fall on the distance image mesh (see FIG. 27B) (S363). Then, a new triangular surface (triangle surrounded by a thick line in FIG. 27C) is generated in the gap of the basic triangular mesh generated by such vertex movement (S364).
Thus, the surface of the basic triangular mesh is closer to the actual surface. In addition, increasing the number of faces and complementing between the basic triangular meshes also brings the effect of bringing them closer to the actual faces.
Next, according to the operation flow shown in FIG. 28, the general vertex moving method shown in step S37 of FIG. 13 will be described.
First, for each vertex, a quadrangular surface composed of a set of two basic triangular meshes is detected, and a quadrangular surface arrangement flag, which is arrangement information of the quadrangular surface, is acquired (S371). Then, general vertices other than the various vertices described so far (such as vertices connecting edge lines shared by two faces) are extracted, and a surface configuration pattern is selected from a combination of quadrangular faces around the general vertices ( S372). Except for the ones that become the same due to the rotation transformation, there are 10 such combinations of quadrangular surfaces as shown in FIG. 12. Therefore, a table storing a quadrangular surface arrangement flag for each vertex is prepared. Such a table is searched to obtain a matching surface composition pattern as shown in FIG. 12 for each vertex.
Subsequently, a plurality of basic triangular meshes around the vertex are separated (cut), and a vertex and a ridge line are newly generated (duplicated) for each surface configuration pattern (S373). Since there may be a plurality of surface configuration patterns extracted in step S372 for one vertex, in that case, the vertex and the ridgeline connected to each other are duplicated in a topological manner.
Further, the original vertex and the newly generated vertex are moved until they fall on the distance image mesh (S374).
Thus, the surface of the basic triangular mesh is closer to the actual surface.
[0019]
Next, according to the operation flow shown in FIG. 29, the moving direction at the time of moving each vertex will be described.
First, the average normal vector of the basic triangular mesh around the vertex is calculated (S41). Then, a diagonal vector whose direction is closest to the opposite direction of the average normal vector is obtained (S42). Note that the diagonal vector is a value obtained by connecting the vertex to the vertex of the voxel at the diagonal position in the adjacent 8 voxels including the vertex (see FIG. 30 (a)), and any ridge line connected to the vertex. A connection between the midpoint and the midpoint of the diagonal ridgeline (see Fig. 30 (b)), and a midpoint of one of the faces including the vertex and the midpoint of the opposite face ( FIG. 30 (c)).
Subsequently, an intersection where the obtained diagonal vector intersects the distance image mesh is obtained, and the various vertices shown in each operation flow are moved to the intersection (S43).
At that time, if the intersection with the distance image mesh cannot be obtained, the diagonal vector whose direction is next to the opposite direction of the average normal vector is selected to obtain the intersection, and none of the diagonal vectors has an intersection. In this case, the vertex movement destination is a point on the distance image mesh that is the closest to the starting point of the diagonal vector. In the above, the original vertex is simply moved in the opposite direction of the average normal vector and the point on the distance image mesh is not the movement destination. This is because there is a high possibility that the vertex is shifted from the surface of the actual thin plate and not on the distance image mesh.
The three-dimensional shape generation method of the present invention has been described above. However, a program for executing the three-dimensional shape generation method as described above is stored in, for example, a removable storage medium, and the storage medium has been described so far. By attaching to an information processing apparatus such as a personal computer that could not generate the three-dimensional shape according to the information processing apparatus, the information processing apparatus can also generate the three-dimensional shape according to the present invention.
References
[1] William E. Lorensen and Harvey E. Cline: "Marching Cubes: A High Resolution 3D Surface Construction Algorithm", SIGGRAPH'87 Proceedings, pp.163-169, Jul 1987.
[2] Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald and Werner Stuetzle: "Surface reconstruction from unorganized points", SIGGRAPH '92 Proceedings, pp.71-78, Jul 1992.
[3] Brian Curless and Marc Levoy: "A Volumetric Method for Building Complex Models from Range Images", SIGGRAPH '96 Proceedings, pp.303-312, Aug 1996.
[4] Matsuoka, Ueda, Hayano: “Automatic reconstruction of solid model from point cloud data using grid connection method and local operation”, IPSJ Journal, vol.40, No.5, 1999.
[5] Jean-Daniel Boissonnat: "Geometric structures for three-dimentional shape representation", ACM Transactions on Graphics, Vol.3, No.4, Oct 1984, pp.266-286.
[0020]
【The invention's effect】
As explained above,According to the present invention described in claims 1 and 10,When generating a triangular mesh from a distance image obtained by measuring with a three-dimensional measuring instrument or the like, there is a problem that the sharp ridgeline of the angular shape, particularly the acute ridgeline of the concave portion is lost, and a thin shape less than the lattice spacing The problem that the thin shape is lost, the problem that the shape changes depending on the lattice position, and the like can be solved.In addition, the basic triangular mesh can be brought closer to the actual contour surface more appropriately.
Moreover, according to invention of
[0021]
According to the inventions of
According to the inventions of claims 4 and 13,Even if it is a three-dimensional shape with non-manifold ridge line connection vertices, the basic triangular mesh can be appropriately brought close to the actual contour surface. The problem that the shape is lost, the problem that the thin and narrow shapes less than the lattice interval are lost, the problem that the shape changes depending on the position of the lattice, and the like can be solved.
According to the inventions of claims 5 and 14,Non-manifold vertices can be easily detected.
According to the inventions of claims 6 and 15,Even in a three-dimensional shape having non-manifold vertices, the basic triangular mesh can be appropriately brought close to the actual contour surface, and therefore the sharp ridgeline of the angular shape, particularly the sharp ridgeline of the concave portion is lost. Problems such as loss of thin and thin shapes that are less than or equal to the lattice spacing, and changes in shape depending on the lattice position can be solved.
[0022]
Moreover, according to the invention of Claims 7 and 16,Even if it is a three-dimensional shape in which general vertices are mixed among various vertices, the basic triangular mesh can be appropriately brought close to the actual contour surface. Therefore, the sharp edge of the angular shape, particularly the acute angle of the concave portion The problem that the ridgeline is lost, the problem that the thin and narrow shapes less than the grid interval are lost, the problem that the shape changes depending on the grid position, and the like can be solved.
Moreover, according to the invention of Claims 8 and 17,For example, in the case of a thin plate or the like, it is possible to avoid a situation in which the vertex as the center of the voxel is shifted from the surface of the actual thin plate and does not fall on the distance image mesh when moving the vertex.
Also,According to the invention described in claim 9, the present inventionBy attaching a storage medium to an information processing apparatus such as a personal computer, the information processing apparatusAny one of claims 1 to 8The effects of the described invention can be realized.
[Brief description of the drawings]
FIG. 1 is an operation flow diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 2 is an explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 3 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 4 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 5 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 6 is another operation flow diagram of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 7 is another operation flow diagram of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 8 is another operation flow diagram of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 9 is another operation flow diagram of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 10 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 11 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 12 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 13 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 14 is another operation flow diagram of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 15 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 16 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 17 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 18 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 19 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 20 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 21 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 22 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 23 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 24 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 25 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 26 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 27 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 28 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 29 is another operation flowchart of the three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 30 is another explanatory diagram of a three-dimensional shape generation method showing an embodiment of the present invention.
FIG. 31 is a block diagram showing the hardware configuration of a three-dimensional shape processing apparatus according to an embodiment of the present invention.
FIG. 32 is an explanatory diagram of a three-dimensional shape generation method showing an example of a conventional technique.
[Explanation of symbols]
1 CPU
2 memory
3 External storage device
4 input devices
5 display devices
Claims (17)
距離画像ボリューム生成手段が、輪郭・内部・外部の3つの属性値のいずれかを持つ個々のボクセルから成るボリュームモデルを距離画像から生成する工程と、
基本メッシュ生成手段が、隣接する8ボクセル属性値から三角形生成情報と回転情報を取得し、取得した回転情報により8ボクセルを回転変換させ、回転変換させた8ボクセルと三角形生成情報とを用いて基本3角形メッシュを生成する工程と、
頂点フィッティング手段が、前記基本3角形メッシュの頂点として薄板境界頂点、非多様体稜線接続頂点、非多様体頂点、および一般頂点のうち、少なくとも2種類以上の頂点を検出し、検出した頂点の種類に応じて異なった頂点移動方法を選択し、前記基本3角形メッシュの頂点を移動させて3角形メッシュを生成する工程と、薄板境界頂点まわりの複数の基本3角形メッシュを薄板境界稜線に沿って切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより薄板境界頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する工程と、
を実行することを特徴とする3次元形状生成方法。In a 3D shape generation method of a 3D shape generation apparatus that generates a 3D shape by generating a triangular mesh from a distance image,
Distance image volume generation means, and generating a volume model of individual voxels with either of the three attribute values of the contour, internal and external from the distance image,
The basic mesh generation means acquires triangle generation information and rotation information from adjacent 8 voxel attribute values, rotates and converts 8 voxels based on the acquired rotation information, and uses the 8 voxels and triangle generation information that have been converted to rotation. Generating a triangular mesh;
Vertex fitting means detects at least two types of vertices among thin plate boundary vertices, non-manifold ridge line connection vertices, non-manifold vertices, and general vertices as vertices of the basic triangular mesh, and the types of detected vertices A different vertex moving method is selected according to the step, the vertex of the basic triangular mesh is moved to generate a triangular mesh, and a plurality of basic triangular meshes around the thin plate boundary vertex are moved along the thin plate boundary ridge line. The thin plate boundary vertices are moved by separating and moving the resulting plurality of vertices until they lie on the distance image mesh, and a new triangular surface is added to the gap of the basic triangular mesh generated by this movement. Generating
The three-dimensional shape generation method characterized by performing .
輪郭・内部・外部の3つの属性値のいずれかを持つ個々のボクセルから成るボリュームモデルを距離画像から生成する距離画像ボリューム生成手段と、
隣接する8ボクセル属性値から三角形生成情報と回転情報を取得し、取得した回転情報により8ボクセルを回転変換させ、回転変換させた8ボクセルと三角形生成情報とを用いて基本3角形メッシュを生成する基本メッシュ生成手段と、
前記基本3角形メッシュの頂点として、薄板境界頂点、非多様体稜線接続頂点、非多様体頂点、および一般頂点のうち、少なくとも2種類以上の頂点を検出し、検出した頂点の種類に応じて異なった頂点移動方法を選択し、前記基本3角形メッシュの頂点を移動させて3角形メッシュを生成する手段と、薄板境界頂点まわりの複数の基本3角形メッシュを薄板境界稜線に沿って切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより薄板境界頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段と、を有する頂点フィッティング手段と、
を備えたことを特徴とする3次元形状生成装置。In a three-dimensional shape generation apparatus that generates a three-dimensional shape by generating a triangular mesh from a distance image,
A distance image volume generation means for generating a volume model composed of individual voxels having any one of three attribute values of contour, inside, and outside from a distance image ;
Triangle generation information and rotation information are acquired from adjacent 8 voxel attribute values, 8 voxels are rotationally converted by the acquired rotation information, and a basic triangular mesh is generated using the 8 voxels and triangle generation information that have been rotationally converted. Basic mesh generation means ;
As the vertices of the basic triangular mesh, at least two types of vertices are detected among thin plate boundary vertices, non-manifold ridge line connection vertices, non-manifold vertices, and general vertices, and differ according to the detected vertex type. A method of moving the vertices of the basic triangular mesh to generate a triangular mesh, and separating a plurality of basic triangular meshes around the thin plate boundary vertex along the thin plate boundary ridge line, Means for moving the thin plate boundary vertices by moving a plurality of vertices generated on the distance image mesh and generating a new triangular surface in the gap of the basic triangular mesh generated by the movement And vertex fitting means comprising:
A three-dimensional shape generation apparatus comprising:
前記頂点フィッティング手段は、2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから薄板境界稜線を検出する手段と、検出された薄板境界稜線から前記薄板境界頂点を検出する手段と、を備えたことを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means includes means for detecting a quadrangular surface comprising a set of two basic triangular meshes, means for detecting a thin plate boundary ridge line from a combination of detected quadrangular surfaces, and a detected thin plate boundary ridge line. Means for detecting the thin plate boundary vertices.
前記頂点フィッティング手段は、前記2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから非多様体稜線を検出する手段と、前記非多様体稜線接続頂点を検出する手段と、を備えたことを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means includes means for detecting a quadrangular surface comprising a set of the two basic triangular meshes, means for detecting a non-manifold ridge line from the combination of detected quadrilateral surfaces, and the non-manifold ridge line. And a means for detecting a connection vertex.
前記頂点フィッティング手段は、非多様体稜線接続頂点を挟んで直交する2本の一般稜線を選択し、選択された2本の一般稜線に沿って前記非多様体稜線接続頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体稜線接続頂点を移動し、この移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段を備えたことを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means selects two general ridge lines orthogonal to each other across the non-manifold ridge line connection vertex, and a plurality of basic 3 around the non-manifold ridge line connection vertex along the selected two general ridge lines. The non-manifold ridge line connection vertex is moved by cutting the polygonal mesh and moving the resulting plurality of vertices until they lie on the distance image mesh, and the basic triangular mesh generated by this movement is moved. A three-dimensional shape generating apparatus comprising means for newly generating a triangular surface in the clearance.
前記頂点フィッティング手段は、2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから非多様体頂点を検出する手段を備えたことを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means includes means for detecting a quadrangular surface composed of a set of two basic triangular meshes, and means for detecting a non-manifold vertex from a combination of the detected quadrangular surfaces. 3D shape generator.
前記頂点フィッティング手段は、非多様体頂点を挟んで直交する稜線2本を1組とする稜線の組を複数組選択し、選択された複数組の稜線の各組の稜線に沿って前記非多様体頂点まわりの複数の基本3角形メッシュを切り離し、その結果として生成された複数の頂点を距離画像メッシュ上にのるまで移動することにより前記非多様体頂点を移動し、その移動により生成された前記基本3角形メッシュのすきまに新たに3角形面を生成する手段を備えたことを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means selects a plurality of pairs of ridge lines including two ridge lines orthogonal to each other across the non-manifold vertices, and the non-various along the ridge lines of each set of the selected plurality of ridge lines. The non-manifold vertices are moved by separating the plurality of basic triangular meshes around the body vertices and moving the resulting plurality of vertices until they are on the distance image mesh. A three-dimensional shape generating apparatus comprising means for newly generating a triangular surface in the gap of the basic triangular mesh.
前記頂点フィッティング手段は、
2つの基本3角形メッシュの組から成る4角形面を検出する手段と、検出された4角形面の組み合わせから面構成パターンを選択する手段と、選択された面構成パターン毎に新たに頂点と稜線を生成する手段と、を備え、新たに生成した頂点を距離画像メッシュ上にのるまで移動することにより、前記一般頂点を移動することを特徴とする3次元形状生成装置。The three-dimensional shape generation apparatus according to claim 10 ,
The vertex fitting means includes
Means for detecting a quadrangular surface consisting of a set of two basic triangular meshes, means for selecting a surface configuration pattern from the combination of detected quadrangular surfaces, and new vertices and ridge lines for each selected surface configuration pattern A three-dimensional shape generating apparatus, wherein the general vertex is moved by moving the newly generated vertex on the distance image mesh.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000261512A JP4061013B2 (en) | 2000-08-30 | 2000-08-30 | 3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000261512A JP4061013B2 (en) | 2000-08-30 | 2000-08-30 | 3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2002074386A JP2002074386A (en) | 2002-03-15 |
| JP2002074386A5 JP2002074386A5 (en) | 2005-07-07 |
| JP4061013B2 true JP4061013B2 (en) | 2008-03-12 |
Family
ID=18749341
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000261512A Expired - Fee Related JP4061013B2 (en) | 2000-08-30 | 2000-08-30 | 3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4061013B2 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5888681B2 (en) | 2011-07-06 | 2016-03-22 | 国立大学法人 東京大学 | Shape extraction method and shape extraction system |
| CN117115256B (en) * | 2017-08-14 | 2026-01-02 | 乐天集团股份有限公司 | Image processing system |
| JP7338322B2 (en) * | 2019-08-27 | 2023-09-05 | 富士フイルムビジネスイノベーション株式会社 | Three-dimensional shape data editing device and three-dimensional shape data editing program |
| JP7710885B2 (en) * | 2021-04-30 | 2025-07-22 | キヤノン株式会社 | DATA PROCESSING APPARATUS, DATA PROCESSING METHOD, AND PROGRAM |
| DE102022206782A1 (en) * | 2022-07-04 | 2024-01-04 | Continental Autonomous Mobility Germany GmbH | Method for generating a view with a camera system and camera system |
| CN116811251B (en) * | 2022-12-22 | 2025-08-26 | 杭州电子科技大学 | A variable thickness 3D printing model generation method based on feature-preserving offset calculation |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3514822B2 (en) * | 1994-06-29 | 2004-03-31 | 株式会社東芝 | Image processing device |
-
2000
- 2000-08-30 JP JP2000261512A patent/JP4061013B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002074386A (en) | 2002-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Porumbescu et al. | Shell maps | |
| Wong et al. | Structure and motion from silhouettes | |
| Franco et al. | Efficient polyhedral modeling from silhouettes | |
| US7532213B2 (en) | Bicubic surface real time tesselation unit | |
| GB2405776A (en) | 3D computer surface model generation | |
| GB2406252A (en) | Generation of texture maps for use in 3D computer graphics | |
| JP7614801B2 (en) | Image processing device, image processing method and program | |
| JP4061013B2 (en) | 3D shape generation method, storage medium storing program for executing the method, and 3D shape generation apparatus | |
| JP2004220312A (en) | Multi-view camera system | |
| Reinhard | Multiresolution representations for surfaces meshes based on the vertex decimation method | |
| US20060066613A1 (en) | Method and system for partitioning the surface of a three dimentional digital object model in order to map a texture | |
| CN104346822B (en) | texture mapping method and device | |
| JP2002342785A (en) | Triangle mesh simplification device and program | |
| El-Hakim et al. | An approach to creating virtual environments using range and texture | |
| Jin et al. | Implicit modeling from polygon soup using convolution | |
| JPH10283487A (en) | Multiple texture mapping apparatus and method, and storage medium storing program for multiple texture mapping | |
| JP2001351119A (en) | Triangle mesh generation method and recording medium for executing the method | |
| JP2002024855A (en) | Three-dimensional shape generation method and storage medium storing program for implementing the method | |
| USRE42534E1 (en) | Bicubic surface real-time tesselation unit | |
| Schilling et al. | Rendering of multiresolution models with texture | |
| Shujun et al. | DreamWorld: CUDA-accelerated real-time 3D modeling system | |
| Guthe | Efficient nurbs rendering using view-dependent lod and normal maps | |
| Park et al. | Geometric modeling from scattered 3-D range data | |
| Meseth et al. | Memory Efficient Billboard Clouds for BTF Textured Objects. | |
| JPH09231402A (en) | Bump mapping method and image generation device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041105 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20041105 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071022 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071211 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071221 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4061013 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131228 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |