画像から凹多角形(N> 3-ユーザーがこの値を入力するN点)を生成するアルゴリズムを探しています。
アルゴリズムに関する私の考え:
// Every pixel in image is checked and a minimal orientated bounding box is generated (transparent pixels are ignored)
boundingBox = createImageBoundingBox(image);
curpoints = 4, A = 0, B = 1, tmppoints = curpoints;
while(curpoints < maxNumberOfPoints)
{
add a new point between point A and point B (A and B are points from the boundingBox)
reposition points so that it will contain the minimal surface
A++; B++;
curpoints++;
if(A == tmppoints)
{ A = 0; B = 1; tmppoints=curpoints; }
}
私が直面している問題は、ポイントを最適に再配置する方法がわからないことです。これは他の方法で行うことができますか(より良い/より速い方法)。どんな考えでもいただければ幸いです。
ありがとう
編集:
画像は少なくとも10x10である必要があります。ユーザーが(最適化のために)使用されるポイントの数を調整できるように、Nポイントパラメーターが必要です。別の方法として、ポリゴンに必要な詳細(ポイント数)を示す係数(0-1)を設定します(0は4ポイント、> 0 5ポイント以上)。しかし、それを実装する方法がわかりません。