reconstructScene

Восстановите 3-D сцену из карты расхождения

Описание

пример

xyzPoints = reconstructScene(disparityMap,stereoParams) возвращает массив координат точек 3-D мире, которые восстанавливают сцену из карты расхождения. The 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] G. Bradski and A. Kaehler, Learning OpenCV: Компьютерное зрение with the OpenCV Library, Sebastopol, CA: O'Reilly, 2008.

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

.
Введенный в R2014a