問題タブ [disparity-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opencv - OpenCV StereoSGBM と gpu::StereoBM_GPU の大きな違い
OpenCV でステレオ画像の視差を生成し、GPU でパフォーマンスを最適化しようとしていますが、結果は異なります。
ステレオSGBMの初期化
結果: http://i.stack.imgur.com/eov4N.jpg
gpu::StereoBM_GPU 初期化
結果: http://i.stack.imgur.com/WVzrK.jpg
誰かが理由を知っていますか?
java - reprojectImageTo3D - Q はどこで入手できますか
NDK を使用せずに Android で OpenCV を使用すると、いくつかの問題が発生します。
現在、私は大学でプロジェクトを行っていますが、2D 画像から 3D オブジェクトを再構築する場合は、カメラのキャリブレーションを避けるべきだとシェフから言われています。
これまでのところ、2 つの 2D 画像があり、featurepoints、matches、good_matches、基本行列、同種行列がすべてあります。さらに、StereoBM を使用して視差マップを計算しました。次のステップは、これらすべての値から 3D 点群を取得することです。
インターネットを調べて見つけた
この方法を使用すると、3D 点群を再作成できるはずです...現在の問題は、Matrix Q がないことです。この方法からこれを取得できると思います
ただし、この特定のケースでは cameraCalibration を避ける必要があるため、この方法は使用できません。代替手段
Qを提供していません...
誰かが私を助けて、Qまたは点群をより簡単に取得する方法を教えてもらえますか? ありがとう
opencv - cv::StereoBM を使用した視差計算のための CvStereoBMState のドキュメント
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 より小さい場合にのみ有効です。
opencv - Opencv で視差マップを理解する
誰かが視差マップが返すものを正確に説明してもらえますか? ドキュメントにはあまり記載されていないため、関連する質問がいくつかあります。
- 両方の画像に関してピクセルの差分値を返しますか?
深度推定の式で視差値を使用する方法、つまり
Depth = focalLength*Baseline/Disparity
視差マップが深さ f(z) の関数を与えることをどこかで読んだことがあります
それが何を意味するのか説明してください。深さが純粋に絶対値である場合、どのように関数として生成できますか、それともピクセルに関する関数ですか?
matlab - 深度マップを計算するための matlab の視差関数の BlockSize および DisparityRange パラメーターを選択する方法
2 つのステレオ画像があり、深度マップの品質は、視差関数のBlockSizeおよびDisparityRangeパラメーターに依存します。現在、いくつかの異なる値を試して修正しています。
これらのパラメーターを修正するためのより良い方法 (コードまたは matlab 関数) はありますか?
matlab - matlab で深度マップを視覚化し、オブジェクトの深度を mm 単位で取得する
オブジェクトの深さをミリメートル単位で見つけるために、MATLAB で深さマップを視覚化する最良の方法は何ですか? ステレオ ビジョンで視野が深度推定を変更する方法の式を使用していますか? 視差から深度を計算します。今度は、深度マップでオブジェクトの深度を測定したいと考えています。すべての単位は mm です。私の視差マップは 786*1126 シングルです。私の深度マップは同じサイズです。MATLAB で imagesc を使用してプロットしています。しかし、それではオブジェクトの深さについて何の考えも得られません。どんな助けでも大歓迎です。
opencv - openCV C++ の視差マップ コード
Caltech のツールボックス ( http://www.vision.caltech.edu/bouguetj/calib_doc/ ) を使用して、MATLAB で画像を調整し、ステレオ修正しました。MATLAB で不一致を試しましたが、良い結果が返されませんでした。OPENCV で試してみたいと思います。彼らのウェブサイトから、視差のOPENCVサンプルコードを見つけることができませんでした。これは私がこれまでに見つけたコードです:( http://www.jayrambhia.com/blog/disparity-maps/からのコード)
}
これは私が得るエラーです:
OPEN_CV_TEST.exe の 0x000007FEFD4D940D で未処理の例外: Microsoft C++ 例外: cv::Exception at memory location 0x0000000000149260.
私は C++ が初めてで、コードを実行する手順についての説明はありません。そのため、これらの左右の画像をプロジェクトの\x64\Debugフォルダーに配置し、MS Visual Studio 2012 Windows 7 64 ビットでコードを実行しました。以前にプロジェクトを作成し、サンプル テストを実行したところ、うまくいきました。そのため、上記のコードをメインの C++ ソース ファイルにコピーするだけです。ライブラリ ファイルやヘッダー ファイルが欠落していてはいけないと思います。また、現在、画像を修正する必要はなく、ステレオ マッチングも必要ないことに注意してください。どんな助けでも大歓迎です。