最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

reconstructScene

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

構文

xyzPoints = reconstructScene(disparityMap,stereoParams)

説明

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

すべて折りたたむ

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

load('webcamsSceneReconstruction.mat');

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

I1 = imread('sceneReconstructionLeft.jpg');
I2 = imread('sceneReconstructionRight.jpg');

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

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

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

figure 
imshow(cat(3,J1(:,:,1),J2(:,:,2:3)),'InitialMagnification',50);

視差を計算します。

disparityMap = disparity(rgb2gray(J1), rgb2gray(J2));
figure 
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]);
J1(~mask) = 0;
imshow(J1,'InitialMagnification',50);

入力引数

すべて折りたたむ

視差イメージ。ステレオ ペアのイメージ 1 でピクセルの視差値の 2 次元配列として指定します。関数 disparity は、入力視差マップを提供します。

このマップには、-realmax('single') によってマークされた無効な値が含まれる場合があります。これらの値は、関数 disparity がイメージ 2 で一致しなかったイメージ 1 のピクセルと一致します。無効な視差と一致するワールド座標が NaN に設定されます。

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

disparityMap 入力を double に指定すると、pointClouddouble として返されます。それ以外の値を指定すると、座標が single として返されます。

データ型: single | double

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

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

出力引数

すべて折りたたむ

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

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

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

データ型: single | double

参照

[1] G. Bradski and A. Kaehler, Learning OpenCV : Computer Vision with the OpenCV Library, Sebastopol, CA: O'Reilly, 2008.

拡張機能

R2014a で導入