おそらく簡単な質問ですが、今のところ簡単な解決策を見つけることができませんでした。私は非常に特殊なユースケースのための単純な画像認識ソフトウェアに取り組んでいます。
与えられているのは、おそらく直線上にある点の束です。ただし、一部のポイントが誤って配置され、線から離れています。特に線の端の近くでは、ポイントが多かれ少なかれ不正確になる可能性があります。
例:
X // this guy is off
X // this one even more
X // looks fine
X
X
X // a mistake in the middle
X
X // another mistake, not as bad as the previous
X
X
X
X
X // we're off the line again
線の一般的な方向は既知であり、この場合は垂直です。この例の実際の線は、実際には垂直で、わずかに斜めに傾斜しています。
無限の線(つまり、勾配とオフセット)にのみ関心があり、端点の位置は重要ではありません。
追加情報(重要かどうかはわかりません)として、2つのポイントを水平に並べることはできません。例:
X
X
X
X X // cannot happen
X
X
パフォーマンスは重要ではありません。私はC#で作業していますが、どの言語でも、一般的なアイデアでも問題ありません。