可能な限り最高の精度でグレースケール イメージのコーナーを検出する必要があります。現在、OpenCV 関数 cvFindCornerSubPix() を使用しています。
簡単なテストを用意しました: 黒/白のエッジのコーナーを持つ画像を取得しました:
次に、一連の同じオブジェクトがそれぞれ 1/16 ピクセルずつ移動します。ピクセル値を手動で確認しましたが、テスト画像は問題ありません。
検出結果は期待外れでした: TermCrit で条件が 100 回の反復または 0.005 しきい値に設定されているにもかかわらず、検出エラーは 0.08 ピクセルまで大きくなります。
グラフは、ピクセル内の位置の関数としてエラーを示します。まったくランダムに見えません。注目に値するもう 1 つのこと: コーナーの他の環状位置 (エッジが水平/垂直でない場合) では、結果は良くなりますが、それでも完全ではありません。
この機能を適切に機能させる方法、機能しない理由、または代わりに何を使用するかについてのアイデアはありますか?
アドバイスをいただければ幸いです