reconstructScene

Восстановите 3-D сцену из карты несоизмеримости

Синтаксис

xyzPoints = reconstructScene(disparityMap,stereoParams)

Описание

пример

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

Вычислите несоизмеримость.

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

Восстановите 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);

Входные параметры

свернуть все

Изображение несоизмеримости, заданное как 2D массив значений несоизмеримости для пикселей в изображении 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, Севастополь, CA: О'Райли, 2008.

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

Введенный в R2014a