ポイントのリストがあります。各点はx
とy
座標です(どちらも整数です)。今、私は、点がパターン上に完全にないことを知って、線、円弧、円などの既知のパターンを見つけようとしています。
それを行うための最良の方法は何ですか?始めるための手がかりはあまりありません。
編集:ポイントは並べ替えられます。ユーザーは何かを描いているので、プログラムは最良のパターンを検出する必要があります。たとえば、三角形が描かれている場合、3本の線を検出する必要があります。
ポイントのリストがあります。各点はx
とy
座標です(どちらも整数です)。今、私は、点がパターン上に完全にないことを知って、線、円弧、円などの既知のパターンを見つけようとしています。
それを行うための最良の方法は何ですか?始めるための手がかりはあまりありません。
編集:ポイントは並べ替えられます。ユーザーは何かを描いているので、プログラムは最良のパターンを検出する必要があります。たとえば、三角形が描かれている場合、3本の線を検出する必要があります。
ハフ変換を見てください。あなたがすることは:あなたはあなたの画像を「円」空間に変換し、そしてあなたは明るいピクセルを見つけることだけを必要とします。
画像内の明るいピクセルを見つけるのは非常に簡単です。カットオフを適用するだけです。
明るいピクセル領域の数は円の数です。逆関数を適用することにより、画像上の元の位置を再構築できます。
古典的な認識装置はニューラルネットワークです。ニューラルネットは「大丈夫」に機能し、何らかの方法でトレーニングが必要です。
ニューラルネットの基礎となる数学的手法と原理は、私が読んだ他のほとんどの認識機能に(適切な修正を加えて)転送できます。たとえば、マルコフ連鎖、ベイズモデル。
基本的な形状に制限する限り、現在のストロークの平均化された「方向」を計算し、これらから一連の「ストローク」を作成できます。
その情報に基づいて形状を認識する方がおそらく簡単です。
P
ある点から他の各点までの距離を見るとP
、円の中心である場合よりも、非常に明確な統計効果が得られます。
これを逆にして、これらのプロパティを持つポイントを見つけることができる場合があります。最初のパスとして、距離の標準偏差のようなものが機能する可能性があり、場所を見つけるために、場所に関するその導関数を取り、それを最小化しようとすることができます。最小値を見つけたら、それから等距離にある3点以上のセットを見つけてみてください。
標準偏差以外の何か、外れ値にはあまり関心がなく、凝集にもっと関心があるものが必要になると思います。
また、これはラインにはあまり効果がありません。
ピクセルを取得していて、それらが順番に来ているので、たとえば、描画された 10 番目のピクセルごとに勾配を確認し、勾配がどのように変化しているかを確認することから始めることができます。不連続性は、いくつかの情報を提供します。