7

私がこのような形をしているとしましょう:

ここに画像の説明を入力

豆を描きたいという冗談が尽きた後は、図形の境界線上の点を見つけたいと思います。たくさんいる可能性があることはわかっているので、それらの間のかなりの距離が受け入れられます。

そのような必要性のためのアルゴリズムはありますか? それともソフトウェア?私が思いついたすべての解決策には、特にわずかに異なる形状を描きたい場合に、多くの手作業が必要です。

Stackoverflowの知恵、助けてください。

4

2 に答える 2

8

単純にピクセルを水平方向および垂直方向にスキャンしてカラー フロンティアを見つけることができます。または、より洗練された一般的なソリューションが必要な場合は、たとえば を使用しgradient methodてエッジを検出する こともできます。

ここに画像の説明を入力

編集

あなたのコメントに答えると、画像はピクセル値を含む単なる二次元配列です。各ピクセルをテストして、特定の色を持つピクセルを選択できます。このような:

ここに画像の説明を入力

そして結果はあなたのエッジピクセルです:

{{35, 107}, {35, 108}, {35, 109}, {35, 110}, {35, 111},
 {35, 112}, {35, 113}, {35, 114}, {35, 115}, {35, 116},
 {35, 117}, {35, 118}, {35, 119}, {35, 120}, {35, 121},
 {36, 103}, {36, 104}, {36, 105}, {36, 106}, {36, 107}, etc....
于 2011-02-07T21:10:36.193 に答える
2

「ベクトル化」、より正確には「ビットマップのベクトル化」を探しているようです。ビットマップをベクトル化すると、形状のベクトル バージョンが得られ、すべての境界座標が得られます。

その場合、AutoTrace を含む多くのソリューションが利用可能です: http://autotrace.sourceforge.net/

于 2011-02-07T21:11:17.257 に答える