これが一般的な考え方です。小さいセルでグリッドを作成します。空すぎないセルごとに最適な線を計算します (計算はすぐに行われます1、検索は含まれません)。標準偏差が改善している/あまり悪化していないことを確認しながら、隣接するセルを結合します。このようにして、4 つの辺と 4 つの角を検出し、点を 4 つのグループに分け、それぞれが 4 つの辺の 1 つに属します。
次に、角のセルを捨てて、4 本の近似直線の代わりに真の長方形を置き、ちょっとした山登り (または何でも) を行います。この場合、2 本の線が平行であり、点を 4 つのグループに分けているため、最適な線の計算を拡張することができます (特定の長方形の場合、2 つの反対側の間のデルタ y がわかっています (ちょっと水平っぽい辺を取ります) ので、このデルタ y をy
ポイントの下位グループの s に追加して計算を行います)。
最初の長方形のグリッドは、ストライプ (たとえば、垂直) による作業に置き換えることができます。次に、ストライプの少なくとも半分には、ポイントの2つの顕著なグループがあります(各ストライプを水平方向の分割線でセルに分割することでそれらを見つけます)。
1直線について、その直線に対するデータ点 {x i ,y i }Y = a*X+b
の垂直距離の二乗和を最小化します。これはとについて直接解けます。縦線を増やすには、X と Y を反転します。a
b
PS私は問題を、長方形のすべての辺ではなく、長方形の最も近い辺までの各点の垂直距離の二乗和を最小化するものとして解釈します。