2016-09-21 14 views
0

点の境界を見つけることは、コンピュータサイエンスの多くの分野で役立ちます。現在、私は2Dを投影した3Dメッシュの可視頂点を持っています。 2D点は、境界線とさまざまな種類のエッジを取得するために使用されます。2D点の境界

matlabリンクon a function obtaining the boundary of pointsから得られた例示的な画像は、2D点の集合の境界(橙色および赤色)を示す。オレンジ色の境界線は縮小係数を使用し、convex hull functionによって作成された境界線に似ています。私たちの場合、赤い境界線(凸包関数によって達成されたものではない)のような点のより自然な境界が必要です。 matlabによる境界関数は、私が2014年の古いバージョンを使用しているので定義されていません(これが理由だと仮定します)。

2Dポイントの自然境界線を達成するための別のテクニック/機能はありますか?私は画像上の凸包関数をテストしており、多くの境界点がありません。

Boundary of Points `

+4

より自然な境界を正確にはどういう意味ですか? matlab関数はシュリンクファクターを使用します。異なるシュリンクでこれをやりたいのですか、それとも別の基準がありますか? –

+2

それに追加するには:なぜ私はいくつかのポイントが含まれていない赤い線と他のものが不明です。 – Bernhard

+0

オブジェクトの形状に関して自然境界が意味することを明確にするだけです。たとえば車に乗ることができます。もともと3D空間内の点群によって表現されているとします。私は点群の方向から点群を2D空間に投影します。視覚的に外側の2D点は、車の境界またはエッジを表します。輪郭またはエッジがカーブし、凸包を使用して現実的に車の等高線を表現できないことがあります。私は定義されていないと述べているようにmatlabの境界関数を使用するように思えない。一方、私は凸包を試しました – Sade

答えて

1

matlabs境界機能は、単にあなたのpointsetsの境界にアルファ形状を返すように見えます:https://en.wikipedia.org/wiki/Alpha_shape

CGALのC++の実装があります:http://doc.cgal.org/latest/Alpha_shapes_2/index.html我々が持っているドキュメントから:

Edelsbrunnerので述べたように

enter image description here

とMückeの論文[2]では、直感的にα型を以下のように考えることができる。想像してみれば、巨大な大量のアイスクリームが空間を構成し、ポイントを「ハード」チョコレートピースとして含んでいます。これらの球形のアイスクリームスプーンの1つを使用して、私たちはチョコレート片に突き当たることなく到達できるアイスクリームブロックのすべての部分を切り出し、それによって内部に穴を開けることさえできる(例えば、単にスプーンを外側)。最終的には、キャップ、アーク、ポイントで囲まれた(必ずしも凸面ではない)オブジェクトになります。すべての「丸い」面を三角形と線分にまっすぐにすると、Sのα形と呼ばれるものの直感的な説明があります。ここでは2Dでのこのプロセスの例があります(アイスクリームのスプーンは単なる円です) ):

+0

これは本当に便利です。だから私はアルファの形が必要です。以来、私はMATLABでこれを達成するために境界関数を使用することはできません。アルファ形状を得るためにmatlabに他の方法がありますか? – Sade

+0

https://www.mathworks.com/matlabcentral/fileexchange/28851-alpha-shapes http://www.mathworks.com/examples/matlab/mw/matlab-ex67295599-alpha-shapes私はそれをテストしてそれが私が探しているものならば。 – Sade

+0

@sadeのアルファシェイプとその友人は2014bに導入されていますが、matlab centralにこのバージョンがあります(私によってテストされていません):https://nl.mathworks.com/matlabcentral/fileexchange/28851-alpha-shapes – Lanting

関連する問題