私は、Matlab で使用している 2 つの Web カメラで立体視カメラをセットアップしています。カメラを調整し、stereoParams を取得します。
次に、ユーザーが画像内のポイントを選択して、画像内の実際のポイントの位置を取得できるようにします。これには、ベースライン、焦点距離、およびピクセル視差が必要であることを知っています。ピクセルの視差がありますが、ベースラインと焦点距離を取得するにはどうすればよいですか? ベースラインは stereoParams から計算できますか?
私は、Matlab で使用している 2 つの Web カメラで立体視カメラをセットアップしています。カメラを調整し、stereoParams を取得します。
次に、ユーザーが画像内のポイントを選択して、画像内の実際のポイントの位置を取得できるようにします。これには、ベースライン、焦点距離、およびピクセル視差が必要であることを知っています。ピクセルの視差がありますが、ベースラインと焦点距離を取得するにはどうすればよいですか? ベースラインは stereoParams から計算できますか?
「ピクセル」視差は、修正された画像座標で定義されます。ただし、実際のカメラは通常、正確に平行で行が揃っているわけではないため、入力カメラ画像を調整する非恒等変換があります。したがって、特定の画像に対応する他の画像のピクセルを見つけるには、修正を「元に戻す」必要があります。手順は次のとおりです。
これらの操作はすべて、各ピクセルに対して 1 回だけ実行する必要があり、キャッシュできることに注意してください。つまり、ピクセルごとに、一方の画像の座標から他方の画像の対応するピクセルまでのオフセットを生成する、「調整された」2 チャンネルの視差マップを事前に計算できます。マップ自体は画像として保存でき、そのチャネル タイプは視差の範囲に依存します。通常は、+- 32K ピクセルのオフセットを表すことができるため、短い整数で十分です。
有効な視差を持つすべてのピクセルの 3D ワールド座標を提供する、 reconstructScene関数を使用できます。この例では、検出された人物の重心の 3D 座標を調べます。