主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

reconstructScene

視差マップからの3次元シーンの再構成

説明

xyzPoints= reconstructScene (disparityMapstereoParamsは,視差マップからシーンを再構成する3次元ワールド座標点の配列を返します。stereoParams入力は,視差マップに対応するステレオイメージを平行化するために使用する同じ入力でなければなりません。

すべて折りたたむ

ステレオパラメーターを読み込みます。

负载(“webcamsSceneReconstruction.mat”);

イメージのステレオペアを読み取ります。

I1 = imread (“sceneReconstructionLeft.jpg”);I2 = imread (“sceneReconstructionRight.jpg”);

イメージを平行化します。

[J1, J2] = rectifyStereoImages(I1,I2,stereoParams);

平行化した後のイメージを表示します。

图imshow(猫(j - 1 (:,: 1), J2 (:,: 2:3)),“InitialMagnification”, 50);

視差を計算します。

disparityMap = disparitySGM (rgb2gray (j - 1), rgb2gray (J2));图imshow (disparityMap [0, 64),“InitialMagnification”, 50);

視差マップからの各ピクセルに対応する点の3次元ワールド座標を再構成します。

xyzPoints = reconstructScene (disparityMap stereoParams);

カメラから3.2 ~ 3.7メートルの範囲の距離にいる人物を切り出します。

Z = xyzPoints (:,:, 3);mask = repmat(Z > 3200 & Z < 3700,[1,1,3]);j - 1(~面具)= 0;imshow (j - 1,“InitialMagnification”, 50);

入力引数

すべて折りたたむ

視差イメージ。ステレオペアのイメージ1でピクセルの視差値の2次元配列として指定します。関数disparityBMまたは関数disparitySGMのいずれかを使用して,視差イメージを生成できます。

視差イメージには,とマークされた無効な値が含まれる場合があります。これらの値は,イメージ2と一致しなかったイメージ1のピクセルと一致します。関数は,無効な視差値に対応するワールド座標をに設定します。

視差がゼロのピクセルは,指定のカメラ解像度では,測定するには遠すぎるワールド座標点と一致します。この関数は,ゼロの視差に対応するワールド座標をに設定します。

disparityMapの入力をとして指定すると,関数は座標をとして返します。それ以外の値を指定すると,座標がとして返されます。

データ型:|

ステレオカメラシステムのパラメーター。stereoParametersオブジェクトとして指定します。

データ型:uint8|uint16|int16||

出力引数

すべて折りたたむ

ワールド座標点の座標。M x N x 3の配列として返されます。3次元ワールド座標は,stereoParamsで表されるステレオシステムのカメラ1の光学中心に相対的です。

出力配列には,disparityMap入力のピクセルと一致するワールド座標点の[x, y, z]座標が含まれます。xyzPoints(:: 1)には,視差マップのピクセルと一致する座標点のxワールド座標が含まれます。xyzPoints(:: 2)にはyワールド座標が含まれ,xyzPoints(:: 3)にはzワールド座標が含まれます。3次元ワールド座標は,ステレオ システムのカメラ 1 の光学中心に相対的です。

disparityMap入力をに指定すると,xyzPoints出力がとして返されます。それ以外の場合はとして返します。

データ型:|

参照

[1] G. Bradski和A. Kaehler,学习OpenCV:计算机视觉与OpenCV库,塞瓦斯托波尔,CA: O'Reilly, 2008。

拡張機能

R2014aで導入