私がこのような形をしているとしましょう:
豆を描きたいという冗談が尽きた後は、図形の境界線上の点を見つけたいと思います。たくさんいる可能性があることはわかっているので、それらの間のかなりの距離が受け入れられます。
そのような必要性のためのアルゴリズムはありますか? それともソフトウェア?私が思いついたすべての解決策には、特にわずかに異なる形状を描きたい場合に、多くの手作業が必要です。
Stackoverflowの知恵、助けてください。
私がこのような形をしているとしましょう:
豆を描きたいという冗談が尽きた後は、図形の境界線上の点を見つけたいと思います。たくさんいる可能性があることはわかっているので、それらの間のかなりの距離が受け入れられます。
そのような必要性のためのアルゴリズムはありますか? それともソフトウェア?私が思いついたすべての解決策には、特にわずかに異なる形状を描きたい場合に、多くの手作業が必要です。
Stackoverflowの知恵、助けてください。
単純にピクセルを水平方向および垂直方向にスキャンしてカラー フロンティアを見つけることができます。または、より洗練された一般的なソリューションが必要な場合は、たとえば を使用し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....
「ベクトル化」、より正確には「ビットマップのベクトル化」を探しているようです。ビットマップをベクトル化すると、形状のベクトル バージョンが得られ、すべての境界座標が得られます。
その場合、AutoTrace を含む多くのソリューションが利用可能です: http://autotrace.sourceforge.net/