問題:
グーグルの静的マップAPIからダウンロードした画像があります。この画像を使用して、基本的にユーザーがクリックする「魔法の杖」タイプの機能を作成します。興味のある方のために、私はグラフカットアルゴリズムを使用して、ユーザーがクリックした形状を見つけています。次に、輪郭トレースを使用して、この形状の境界を表すすべてのポイント(borderPoints)を見つけます。
私の目標:
線をまっすぐにし(可能な場合)、borderPointsの量を最小限に抑えます(可能な限り)。私の現在のユースケースは家の屋根なので、ほとんどの場合、コーナーを見つけて、その間のすべての変化するポイントではなく、それらをborderPointsとして使用できることを望んでいます。しかし、でこぼこのピクセルラインのために、それらのコーナーを見つける方法を理解するのに苦労しています。
解決策の私の試み:
簡単な方法の1つは、前のポイント、現在のポイント、および後のポイントをチェックするポイントをループすることです。前のポイントと後のポイントのxまたはyが同じである場合、現在のポイントを削除できます。これにより、ポイント数が少し減りますが、私が望むほどではありません。
また、前後のポイントを見て、特定の勾配範囲内にない場合に現在のポイントを削除できるかどうかを確認しましたが、画像がぼやけていて、角は少し丸みを帯びていました。
私の質問:
この種のことを行うためのアルゴリズムはありますか?もしそうなら、それは(彼らは)何と呼ばれていますか?そうでない場合、この問題にプログラム的にアプローチする方法について何か考えはありますか?