5

私はいくつかの作業を行っています (複雑すぎて説明できません)。私が持っているタスクの 1 つは、平滑化されたポリゴンのラスター イメージをスケルトンに変換する必要があることです。だから私はこのようなことをする必要があります: 写真01

ラスター画像 (左側) があり、画像を表すポイントとエッジ (右側) で構成されるグラフが必要です。

アルゴリズムについて、特にスティーブン スキエナの本を読んだことがあります。彼は「ブラシ ファイア」アルゴリズムを使用するように指示しており、「各サイクル、エッジにあるすべてのポイントを通過し、衝突するエッジにポイントを追加する」と説明しています。スケルトンに残りのポイントを削除し、スケルトンだけが残るまで次のサイクルに進みます」しかし、このアルゴリズムでオンラインで見つけることができるすべての情報は、ロボットの経路探索アルゴリズムに関するものであり、ここでそれを適用する方法がわかりません (基本的には塗りつぶされた/空のピクセルの座標しかない場合、どうすれば「エッジ」を知ることができますか)。

私はCGALライブラリを調べましたが、それはスケルトンのデモンストレーションですが、ポリゴンに多くの頂点がある場合はうまく機能しないため、境界上の各頂点をポリゴンの頂点に変換してからアルゴリズムに渡すだけでは生成されません良い結果。

タスクは非常に基本的なように見えるため、これは一般的なアルゴリズムであるに違いないと思いますが、車輪を発明したくなく、トピックに関するものを見つけることができませんでした (おそらく正しいキーワードがわからないため)

4

2 に答える 2

3

検索のより適切な用語は、デジタル シンニング、内側軸のデジタル バージョンです。たとえば、この論文では 15 のそのようなアルゴリズムを引用しています。

「15 の 2D 並列細線化アルゴリズムに注意してください。」M. クープリ ( PDF ダウンロード リンク)

これは図 16 の一部で、2 つのアルゴリズムの結果を示しています。
図16

于 2013-08-05T15:48:01.340 に答える
0

これは私たちの学校のプロジェクトでした!これは、Schlesinger のコーナーとスケルトン化アルゴリズムに基づいています。コーナーは、圧縮された形式でバイナリ イメージを表す方法であり、ラスター イメージで可能な操作よりもはるかに高速な操作が可能です。詳細については、私たちの論文を参照してください。

バイナリ イメージを圧縮形式で処理できるコーナー ツールボックス

スケルトン化は実際には私の部分であり、詳細に説明しました :-) C++ のコードはまだ無料で、どこかで入手できると思います。

于 2013-08-05T19:46:31.370 に答える