5
直交特徴を持つ任意画像上の回転角度の自動検出
次のサンプル(マイクロチップ写真の一部)のように、画像の角度を検出する必要があるタスクがあります。画像には直交する特徴が含まれていますが、解像度やシャープネスが異なるため、サイズが異なる場合があります。一部の光学的な歪みと収差のため、画像はわずかに不完全になります。サブピクセル角度検出精度が必要です(つまり、誤差は0.1°未満である必要があり、0.01°程度が許容されます)。参考までに、この画像の最適な角度は約32.19°です。 現在、私は2つのアプローチを試しました。どちらも、2°ステップの極小値に対してブルートフォース検索を実行してから、勾配を0.0001°ステップサイズまで下げます。 メリット関数はsum(pow(img(x+1)-img(x-1), 2) + pow(img(y+1)-img(y-1))画像全体で計算されます。水平/垂直線が揃っている場合-水平/垂直方向の変化が少ない。精度は約0.2°でした。 メリット関数は、画像の一部のストライプ幅/高さにわたって(最大-最小)です。このストライプも画像全体にループされ、メリット関数が蓄積されます。このアプローチは、水平/垂直線が整列しているときの明るさの小さな変化にも焦点を当てますが、大きなベース(ストライプ幅-約100ピクセル幅になる可能性があります)全体で小さな変化を検出できます。これにより、最高0.01°までの精度が向上しますが、微調整するパラメータが多数あります(たとえば、ストライプの幅/高さは非常に敏感です)。これは、現実の世界では信頼できない場合があります。 エッジ検出フィルターはあまり役に立ちませんでした。 私の懸念は、ワーストアングルとベストアングルの間の両方のケースでメリット関数の非常に小さな変化(<2x差)です。 角度検出のためのメリット関数の記述について、何か良い提案はありますか? 更新:フルサイズのサンプル画像はここにアップロードされます(51 MiB) 結局のところ、このようになります。