バイナリ イメージの輪郭の真直度のメトリックを取得したい (比較的高速)。画像は次のようになります。
ここで、赤いボックス内の輪郭は、できれば削除したいものです。彼らはまっすぐではないので。これらは私が試したことです。私は現在MATLABで実装しています。
1.各等高線の行と列の座標を収集し、導関数を取得します。まっすぐなオブジェクト (四角形など) の場合、導関数はほとんどが低く、(四角形の角に沿って) いくつかのスパイクがあります。
問題: 収集された座標が順不同です。つまり、輪郭をパスとしてイメージした場合に、輪郭が通過する順序が異なります。したがって、導関数はときどきとてつもなく高い値を示します。また、輪郭は完全にまっすぐではなく、エッジ検出アルゴリズムの出力であるため、不連続性がある可能性があると想像できます (下部の長方形を参照してください。完全にまっすぐではありませんが、人間の目はそれが長方形であることを理解できます)。 )。
2.polyfit について考えようとしましたが、この輪郭の問題がまた出てきます。長方形なので、そのポイントセットにポリフィットを適用する方法がわかりません。
また、縦横に分布する輪郭を削除したいと思います。基本的に、これは車線検出アルゴリズムです。したがって、レーンを完全に垂直/水平にすることはできません。
何か案は?