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

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

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