2012-01-22 25 views
10

OpenCV関数findhomography()は、2つの画像の一致点間で同型変換を検出します。 (Definitionを参照)OpenCV:ホモグラフィを見つけるためのRANSAC信頼パラメータ

ポイントの部分集合を見つけるために、RANSACを使用することができます。

はここでキャッチです:RANSACを使用OpenCVの中の他の機能とは対照的に(例えばfindfundamentalMatDefinitionを参照))信頼ためのRANSACパラメータがを変更することはできません。引数として再投影のしきい値のみを渡すことができます。

私はOpenCVソースを調べました。findhomography()については、信頼度は0.995にハードコードされています。

私の目的として、これを増やす必要があります。 OpenCVソース自体の値を変更せずにこれを行う方法はありますか?

これをハードコードする理由はありますか?

PS:私は次の転覆のために変更request under Ticket 1557を追加しました。

答えて

5

ハードコードされる理由は、大多数のユーザーにとって、これは非常に良い選択です。

多分、あなたはもっと何かの必要性を感じ始めたかもしれません。しかし、これがOpenCVがオープンしている理由です。あなたが好きなものをOpenCVの開発チームに提出して、コードを修正し、修正し、提案してください。

そして、これが必要なのですか?通常、より厳しい反復閾値がそのトリックを行います。問題がある場合は、他の場所にある可能性があります。悪い点、ポイントマッチングなどの誤差が大きすぎます。

+1

あなたは正しいです:私は自分でそれを変更し、開発に参加することができます。実際には、これは私の地下転覆でやったことであり、うまく機能します。 – user834985

5

OpenCVでハードコードされた変数や関数を変更する必要はありません。実際には、OpenCVの機能を携帯電話でより高速かつ効率的にするために、多くのOpenCV機能を変更しています。 あなたはRANSACを変更したい場合は、単に別の名前であなたのコードで

class CvModelEstimator2 
{ 

} 

をクラスのコピーを作成し、あなたが必要があるとして、それを自分で変更します。 RANSACの反復の最大数を変更することもできます。デフォルトは非常に高く、アプリケーションを実際に遅くします。

関連する問題