exponenta event banner

reconstructScene

Реконструировать 3-D сцену из карты несоответствий

Описание

пример

xyzPoints = reconstructScene(disparityMap,stereoParams) возвращает массив координат точек мира 3-D которые восстанавливают сцену из карты различий. 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);

Figure contains an axes. The axes contains an object of type image.

Вычислите несоответствие.

disparityMap = disparitySGM(im2gray(J1),im2gray(J2));
figure 
imshow(disparityMap,[0,64],'InitialMagnification',50);

Figure contains an axes. The axes contains an object of type image.

Реконструируйте координаты 3-D мира точек, соответствующих каждому пикселю, из карты различий.

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);

Figure contains an axes. The axes contains an object of type image.

Входные аргументы

свернуть все

Несопоставимое изображение, указанное как 2-D массив значений несопоставимости для пикселей в изображении 1 стереопары. Вы можете использовать либо disparityBM или disparitySGM для создания изображения несоответствия.

Изображение несоответствия может содержать недопустимые значения, помеченные как NaN. Эти значения соответствуют пикселям в изображении 1, которые не соответствуют изображению 2. Функция устанавливает мировые координаты, соответствующие недопустимому значению несоответствия, равным NaN.

Пикселы с нулевой разницей соответствуют точкам мира, которые слишком далеки для измерения, учитывая разрешение камеры. Функция устанавливает мировые координаты, соответствующие нулевому неравенству, равным Inf.

При указании disparityMap ввод в качестве double, функция возвращает координаты как double. В противном случае функция возвращает координаты как single.

Типы данных: single | double

Системные параметры стереокамеры, указанные как stereoParameters объект.

Типы данных: uint8 | uint16 | int16 | single | double

Выходные аргументы

свернуть все

Координаты мировых точек, возвращаемые в виде массива M-by-N-by-3. Координаты 3-D мира относительно оптического центра камеры 1 в стереосистеме, представленной stereoParams.

Выходной массив содержит координаты [x, y, z] мировых точек, которые соответствуют пикселям в disparityMap вход. xyzPoints(:,:, 1) содержит координаты x мира точек, соответствующих пикселям на карте несоответствия. xyzPoints(:,:, 2) содержит координаты мира y, и xyzPoints(:,:, 3) содержит координаты z мира. Координаты 3-D мира находятся относительно оптического центра камеры 1 в стереосистеме.

При указании disparityMap ввод в качестве double, функция возвращает xyzPoints вывод в виде double. В противном случае функция возвращает его как single.

Типы данных: single | double

Ссылки

[1] Г. Брадски и А. Келер, обучение OpenCV: компьютерное видение с библиотекой OpenCV, Себастополь, Калифорния: O'Reilly, 2008.

Расширенные возможности

.
Представлен в R2014a