Konolige のブロック マッチング アルゴリズムの適用については、OpenCV のドキュメントでは十分に説明されていません。CvStereoBMState のパラメーターは、cv::StereoBM によって計算される視差の精度に影響します。ただし、これらのパラメーターは文書化されていません。以下にこれらのパラメーターをリストし、私が理解していることを説明します。誰かが不明確なパラメータの説明を追加できるかもしれません。
- preFilterType: 視差が計算される前に画像に適用されるフィルターを決定します。CV_STEREO_BM_XSOBEL (ソーベル フィルター) または CV_STEREO_BM_NORMALIZED_RESPONSE (平均強度との違いは?)
- preFilterSize: プレフィルターのウィンドウサイズ (幅 = ウィンドウの高さ、負の値)
- preFilterCap: 出力を [-preFilterCap, preFilterCap] にクリップします。間隔外の値はどうなりますか?
- SADWindowSize: 左と右の画像で比較されたウィンドウのサイズ。ここでは、対応するピクセルを見つけるために絶対差の合計が計算されます。
- minDisparity: 考慮される最小視差。デフォルトは 0 です。負の視差が可能な場合は、負の値に設定する必要があります (カメラ ビュー間の角度と測定オブジェクトからカメラまでの距離によって異なります)。
- numberOfDisparities: 視差検索範囲 [minDisparity, minDisparity+numberOfDisparities]。
- textureThreshold: テクスチャがこのしきい値よりも大きい (または少なくとも等しい?) 位置でのみ視差を計算します。テクスチャはどのように定義されていますか??? 周囲のウィンドウの分散???
- uniquenessRatio: calib3d.hpp から引用: 「検索範囲内の任意の d != d +/-1 について、SAD(d) >= SAD(d*) (1 + uniquenessRatio/100.) の場合にのみ、計算された視差 d* を受け入れます。 "
- speckleRange: わかりません。
- trySmallerWindows: ???
- roi1, roi2: これらの領域のみで視差を計算する??? わからない。
- speckleWindowSize: わかりません。
- disp12MaxDiff: 不明ですが、calib3d.hpp のコメントによると、左右のチェックが実行されます。推測: ピクセルは、左の画像から右の画像へ、また右の画像から左の画像へと一致します。視差は、元の左ピクセルと後方一致ピクセルの間の距離が disp12MaxDiff より小さい場合にのみ有効です。