2011-07-14 12 views
1

ピクセル化されたバイナリ曲線がたくさんあります(つまり、カーブがその上にあればピクセルは1、それ以外の場合は0です)。そして、ポリゴンチェーンを返すアルゴリズムを探しています。曲線をよく近似します。ピクセル化された曲線は、通常、ピクセルが薄く、完全に接続されています。私はこれについていくつかの文献を見てきましたが、私の主な問題は、私の曲線の終点がどこにあるのかわからないということです。ピクセル化された2D曲線のポリゴン化

妥当な時間内にこれを行うことができるアルゴリズムを知っている人はいますか?違いがある場合、私はこれをMATLABで実装します。

+0

は、おそらく、画像処理技術に見て(拡張、浸食、...) – Amro

+0

あなたはサンプル画像を投稿してもらえますか?形状に応じて、 '[x、y] = find(BW);などの簡単な解法があります。 sp =スプライン(x、y); fnplt(sp); ' – Jonas

答えて

1

Active Contoursアルゴリズム(または必要に応じてSnakes)を見てみるとよいでしょう。 http://en.wikipedia.org/wiki/Active_contour_model

スコア画像に基づいて、ローカルに最適なポリゴンを見つけようとします。カーブが変化すると、線分の長さが自動的に処理されます。あなたは既にカーブでバイナリイメージを持っているので、その部分はうまくいくはずです。それはあなたの問題には必ずしも適していません。通常は閉じた輪郭で作業するように設計されています。しかし、私はそれがとにかく(曲線の端の間にポリゴンを閉じるだけで)うまくいくかもしれないと思います。あなたの曲線が非常に近くにある場合、それは地方の最小値を探し出し、簡単に立ち往生するので、おそらくうまくいかないでしょう。

それほど高速ではなく、適切な初期化が必要です。彼らは常に完全に接続されている場合は、あなた自身をステップ実行する方が良いかもしれませんが、それはおそらく最初から始めることを意味します。あなたが利用できるツールボックス(他の人の多くがある)で開始することができ

http://www.mathworks.com/matlabcentral/fileexchange/11643-active-contour-toolbox

関連する問題