問題タブ [stereo-3d]
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.
matlab - 基本行列を考慮して、3D ポイントがステレオ カメラのペアの前にあるかどうかを判断する
iPhone 4S (基本的なステレオ システム) のペアを使用して、シーンの 2 つの異なるビューにあるポイントの 3D メトリック再構成を取得しようとしています。
そのために、カメラを調整し、基本行列を推定し、基本行列の推定値を取得しました。現在、Hartley&Zisserman の「Multiple View Geometry in CV」という本では、任意の E に対して、それらが 4 つの正規カメラ ペアに対応し、そのうちの 1 つだけが「実際の」ステレオ構成として再構築されることがわかります。
問題は、[cit.]"...再構成されたポイントは、これら 4 つのソリューションの 1 つだけで両方のカメラの前にあるということです。したがって、単一のポイントでテストして、両方のカメラの前にあるかどうかを判断することは、カメラ行列 P' の 4 つの異なる解を決定するのに十分です。 ..."
F、K_left、および K_right がわかっている場合、3D ポイントが両方のカメラの前にあるかどうかをどのように確認できますか?
ありがとう、
リカルド
macos - Macでクアッドバッファステレオ機能を検出するにはどうすればよいですか?
アプリケーションでクアッドバッファビデオカードの存在を正しく検出して、3D表示が可能な場合にのみステレオ表示を有効にできるようにしたい。
私はここに2台のMacコンピュータを持っています:1)nvidiaQuadro4000ビデオカードを搭載したMacProMac OS10.6.8デスクトップ; 2)2つのビデオボードを備えたMacBookProラップトップMacOS 10.6.8 a:組み込みのIntel HDグラフィックスとb:nvidiaGeForce330M。
最初のコンピューターには、カードに3Dメガネ用のコネクタがあります。それは私がステレオ3Dを表示したいものです。2台目のラップトップコンピューターでハードウェアステレオを表示することはできないと思います。そのため、アプリケーションがどの種類のコンピューターを使用しているかを検出し、適切に反応するようにします。私はそれを行う方法を知っていると思いました。しかし、それは機能していません。私のアプリケーションは、クアッドバッファステレオが両方のコンピュータで機能すると考えています。
簡単なテストプログラムを目撃してください。
両方のコンピューターで、3つすべての「クアッドバッファーステレオが機能しているようです」というメッセージが出力されます。
120Hzステレオモニターを備えたステレオ対応ワークステーションでは、120 Hzで黄色とシアンの色が切り替わるため、ウィンドウの背景は淡いライムグリーンに見えます。60Hzのモニターでは、発作を誘発する2つの色の間のちらつきを知覚することができます。このちらつきはラップトップにも表示されます。これは、クアッドバッファステレオを実際にサポートしている可能性があることを示しています。
最後の問題点:ラップトップを外部モニターに接続すると、外部モニターにちらつきが重なって表示されますが、ラップトップの画面ではウィンドウが黄色、つまりBACK_LEFTバッファーの色のみです。ノートパソコンの画面だけ、または外部モニターだけで、ちらつきの表現型を観察します。
GeForce 330Mビデオボードは本当にMacでクワッドバッファステレオをサポートしていますか?私のプログラムから実際のクアドロボードを検出するためのより良い方法はありますか?
opencv - ステレオ ペアから深度マップを取得しますか?
ステレオペアから深度マップを取得した経験のある人はいますか? カメラのパラメーターなしで深度情報を取得する方法はあるのでしょうか。ステレオペアから深度マップを取得しようとしています
c++ - カメラのセンサーサイズ
リグ構成として接続された 2 台のカメラ (640X360 画像を取得する Microsoft HD3000 CMOS カメラ) を使用して、ステレオ再構成を試みています。ステレオ マッチング アルゴリズムのある時点で、「個々のセンサー要素のサイズ」などを指定して、ビュー シーンと一致する距離測定値を取得できるようにする必要があります。センサーサイズを調べるにはどうすればよいですか?カメラのデータシートには、この情報は存在せず、正確な測定に不可欠な焦点距離も含まれていないことに注意してください。
opengl - 座標系の回転行列 (オイラー角、利き手)
カメラの向きが R=Rz(k) * Ry(p) * Rx(o) として表される座標系があります。ここで、R は、X、Y のそれぞれの周りの 3x3 回転行列の構成の 3x3 行列です。 、Z軸。さらに、Z軸がカメラの視線方向にあるという慣習があります。X 軸は左右で、Y 軸は下から上です。
この R 行列は、マルチビュー ステレオ再構成アルゴリズムで使用されます。事前にキャリブレーションされたカメラ情報が付属するデータ テスト セットがあります。このデータセットに付属の R 行列を使用したいと考えています。しかし、彼らがどのような回転順序を想定しているのか、あるいは利き手であるかさえもわかりません。
どうすればこれを理解できるでしょうか?何か案は?
c++ - Triclops Stereo APIを使用してオフライン画像を処理できますか?
それとも、バンブルビー(またはその他のポイントグレイイメージングセンサー)に完全に依存していますか?いくつかのオフライン画像を処理するために、bumblebee2ステレオリグに付属しているステレオ処理APIをリンクしようとしています。triclopsステレオ関数には、input.calおよびinput.ppmの形式のコンテキストフラグとキャリブレーションファイルが必要なようです(つまり、2つのステレオ補正画像を含む1つの画像が、ぼやけてオーバーレイされています)。他のオフライン画像からこのinput.ppmファイルを取得して、triclopsステレオAPIを引き続き使用できるようにするにはどうすればよいですか。そして、キャリブレーションファイルinput.calはどうですか、オフライン画像と一致するように取得できますか?
computer-vision - キャリブレーションされたステレオビジョンリグでは、3D三角測量アルゴリズムを実装するために必要な「カメラマトリックス」をどのように取得しますか?
私は、将来、完全な「最適なアルゴリズム」を実装することを目的として、Hartley&Zissermanの「MultipleView Geometry」(12.2秒)から(比較的単純な)線形同次(DLT)3D三角測量法を実装しようとしています。現在、この質問に基づいて、Matlabで動作させようとしています。後で、C ++とOpenCVに移植して、適合性をテストします。
問題は、自分が持っているデータの使い方がわからないことです。ステレオリグを調整し、2つの固有のカメラ行列、歪み係数の2つのベクトル、2つのカメラに関連する回転行列と平行移動ベクトル、および基本行列と基本行列を取得しました。また、2つの画像の座標系(それぞれ1番目と2番目のカメラで撮影)の単一の3Dポイントの対応であると想定される2つのポイントの2D座標もあります。
このアルゴリズムは、2つの点座標と2つの4x3「カメラ行列」PおよびP'を入力として受け取ります。これらは明らかに、キャリブレーションから得られた固有のカメラ行列(M、M')ではありません。1つは3x3であり、それらを単独で使用した投影では3Dポイントが2つの異なる座標系に配置されるためです。回転/平行移動)データがありません。
H&Zブックには、SVD分解を使用して基本行列または必須行列のいずれかから必要な行列を復元するための情報(第9章)が含まれていますが、それ自体に追加の問題(スケールのあいまいさなど)があります。回転と平行移動が明示的に定義されているので、それは必要ないと思います。
問題は次のとおりです。最初の「カメラ行列」(P = [M | 0])としてゼロの余分な列を持つ最初の固有行列を使用し、次に2番目の固有行列に外部行列を乗算するのは正しいでしょうか。 2番目に必要な「カメラ行列」(P'= M'* [R | t])を取得するための追加の列として、回転行列と変換ベクトルから構成されますか?それとも別の方法で行う必要がありますか?
ありがとう!
c++ - 視差マッピングにおけるステレオビジョン
O'reillyの本のopencvテキストブックの例にあるように、ステレオビジョン深度マッピングを実装しています。
このコードを実装している間、私のカメラは両方とも水平であり、両方とも同じではありません。コードを実行した後、非常に奇妙な結果が得られます。これらの奇妙な結果がカメラの見当識障害だけによるものなのか、コード内に問題があるのか を確認したいのですが、助けてください。
視差マップの写真は、このリンクに記載されています 。1つはウェブカメラ、もう1つはUSBカムです。
opencv - cvuncompresspointsの新しいカメラマトリックスとは何ですか。
の新しいカメラマトリックスを理解する上で問題に直面していcvUndistortpoints
ます。ステレオキャリブレーション自体でカメラのカメラマトリックスを取得し、cvuncompresspointsから取得したcvstereorectifyで新しいカメラマトリックスを渡さなければならない理由。の出力後のカメラマトリックスとどの程度正確に新しいカメラマトリックスが異なりcvUndistortPoints
ますか?
opencv - cvReprojectImageTo3D および CV_32FC3 に関する問題
あなたの助けが必要です。ステレオペアを使用して、ステレオキャリブレーション、整流を実装しました。私はかなり合理的な視差画像を持っています。私が直面している問題は cvReprojectImageTo3D にあります。そして、正しい方法で修正しました。宣言は以下の通り
disp は、ステレオ ペアに対して取得された視差画像です。そして、Image3D の showimage コマンドを実行すると、カラフルな分割が取得されます。私の疑問は、なぜそうなのかということです。
結果写真のリンクを以下に添付します
https://plus.google.com/photos/110965556771924534380/albums/5745356738809417329/5748680803335389906
私が持っているもう1つの疑問は、このimage3Dがどのように保存されているかです。CV_32FC3 は、最初のチャネルが x 値を与え、2 番目が y を与え、3 番目が z を与えることを意味しますか?