"グループ"とは、すべてのピクセルが少なくとも同じセット内の1つの隣接ピクセルを持つようなピクセルのセットを意味します。グループ。同じピクセルグループ内の他のピクセルから最も離れたピクセルを見つける方法
Iは、(例えば、緑色ピクセル)指定された画素からの最大直線距離を有する画素を見つけることを望みます。また、2つのピクセルを結んでいる直線(赤い線)は、グループを離れてはいけません。
私の解決策は、度合いをループして、度合いのある緑色ピクセルから始まる線の進行をシミュレートし、どの線が最も遠くに移動したかを見ています。
longestDist = 0
bestDegree = -1
farthestX = -1
farthestY = -1
FOR EACH degree from 0 to 360
dx=longestDist * cos(degree);
dy=longestDist * sin(degree);
IF Point(x+dx , y+dy) does not belong to the group
Continue with next degree
//Because it must not be the longest line, so skip it
END IF
(farthestX , farthestY) = simulate(x,y,degree)
d = findDistance(x , y , farthestX , farthestY)
IF d > longestDist
longestDist = d
bestDegree = degree
END IF
END FOR
明らかに最適なアルゴリズムではありません。私はここで助けを求めています。
ありがとう、貧しい私の英語のために申し訳ありません。
すべての内部ピクセルの計算を破棄できることに注意してください。 – dfens
そして、角度を使う必要はありません。あなたはピタゴラス定理を使う必要があります;) – dfens
@dfens: "interior pixels" - なぜですか?そのうちの1つが解決策になる可能性があります。 –