треугольный

3-D местоположения неискаженных соответствующих точек в стереоизображениях

Синтаксис

worldPoints = triangulate(matchedPoints1,matchedPoints2,stereoParams)
worldPoints = triangulate(matchedPoints1,matchedPoints2,cameraMatrix1,cameraMatrix2)
[worldPoints,reprojectionErrors] = triangulate(___)

Описание

пример

worldPoints = triangulate(matchedPoints1,matchedPoints2,stereoParams) возвращает 3-D местоположения соответствия с парами неискаженных точек изображений от двух стереоизображений.

worldPoints = triangulate(matchedPoints1,matchedPoints2,cameraMatrix1,cameraMatrix2) возвращает 3-D местоположения соответствующих пар в системе мировой координаты. Эти местоположения заданы матрицами проекции камеры.

[worldPoints,reprojectionErrors] = triangulate(___) дополнительно возвращает ошибки перепроекции для мировых точек с помощью любого из входных параметров от предыдущих синтаксисов.

Примеры

свернуть все

Загрузите параметры стерео.

load('webcamsSceneReconstruction.mat');

Читайте в стереопаре изображений.

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

Не исказите изображения.

I1 = undistortImage(I1,stereoParams.CameraParameters1);
I2 = undistortImage(I2,stereoParams.CameraParameters2);

Обнаружьте поверхность в обоих изображениях.

faceDetector = vision.CascadeObjectDetector;
face1 = faceDetector(I1);
face2 = faceDetector(I2);

Найдите центр поверхности.

center1 = face1(1:2) + face1(3:4)/2;
center2 = face2(1:2) + face2(3:4)/2;

Вычислите расстояние от камеры 1 к поверхности.

point3d = triangulate(center1, center2, stereoParams);
distanceInMeters = norm(point3d)/1000;

Отобразите обнаруженную поверхность и расстояние.

distanceAsString = sprintf('%0.2f meters', distanceInMeters);
I1 = insertObjectAnnotation(I1,'rectangle',face1,distanceAsString,'FontSize',18);
I2 = insertObjectAnnotation(I2,'rectangle',face2, distanceAsString,'FontSize',18);
I1 = insertShape(I1,'FilledRectangle',face1);
I2 = insertShape(I2,'FilledRectangle',face2);

imshowpair(I1, I2, 'montage');

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

свернуть все

Координаты точек в изображении 1, заданный как M-by-2 матрица количества M [x y] координаты, или как KAZEPoints, SURFPoints, MSERRegions, cornerPoints или объект BRISKPoints. matchedPoints1 и входные параметры matchedPoints2 должны содержать точки, которые являются соответствующими с помощью функции, такой как matchFeatures.

Координаты точек в изображении 2, заданный как M-by-2 матрица количества M [x y] координаты, или как KAZEPoints, SURFPoints, MSERRegions, cornerPoints или объект BRISKPoints. matchedPoints1 и входные параметры matchedPoints2 должны содержать точки, которые являются соответствующими с помощью функции, такой как matchFeatures.

Параметры камеры для системы стерео, заданной как объект stereoParameters. Объект содержит внутреннее, внешнее, и параметры искажения объектива системы стереофотоаппарата. Можно использовать функцию estimateCameraParameters, чтобы оценить параметры камеры и возвратить объект stereoParameters.

Когда вы передаете объект stereoParameters функции, источник системы мировой координаты расположен в оптическом центре камеры 1. x - ось указывает направо, y - точки оси вниз и z - точки оси далеко от камеры.

Матрица проекции для камеры 1, заданный как 4 3 матрица. Матрица сопоставляет 3-D точку в однородных координатах на соответствующую точку в изображении камеры. Этот вход описывает местоположение и ориентацию камеры 1 в системе мировой координаты. cameraMatrix1 должен быть действительной и неразреженной числовой матрицей. Можно получить матрицу камеры использование функции cameraMatrix.

Матрицы камеры передали функции, задайте систему мировой координаты.

Матрица проекции для камеры 1, заданный как 4 3 матрица. Матрица сопоставляет 3-D точку в однородных координатах на соответствующую точку в изображении камеры. Этот вход описывает местоположение и ориентацию камеры 1 в системе мировой координаты. cameraMatrix1 должен быть действительной и неразреженной числовой матрицей. Можно получить матрицу камеры использование функции cameraMatrix.

Матрицы камеры передали функции, задайте систему мировой координаты.

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

свернуть все

3-D местоположения соответствия с парами неискаженных точек изображений, заданных как M-by-3 матрица. Матрица содержит количество M [x, y, z] местоположения соответствия с парами неискаженных точек изображений от двух стереоизображений.

Когда вы задаете геометрию камеры с помощью stereoParams, мировые координаты точки относительно оптического центра камеры 1.

Когда вы задаете геометрию камеры с помощью cameraMatrix1 и cameraMatrix2, мировые координаты точки заданы матрицами камеры.

Функция возвращает worldPoints как double, если matchedPoints1 и matchedPoints2 является double. В противном случае функция возвращает worldPoints как single.

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

Ошибки перепроекции, возвращенные как M-by-1 вектор. Функциональные проекты каждая мировая точка назад в оба изображения. Затем в каждом изображении, функция вычисляет ошибку перепроекции как расстояние между обнаруженным и повторно спроектированной точкой. Вектор reprojectionErrors содержит среднюю ошибку перепроекции для каждой мировой точки.

Советы

Функция triangulate не составляет искажение объектива. Можно не исказить изображения с помощью функции undistortImage прежде, чем обнаружить точки. Также можно не исказить сами точки с помощью функции undistortPoints.

Ссылки

[1] Хартли, R. и А. Зиссермен. "Несколько Геометрия Представления в Компьютерном зрении". Издательство Кембриджского университета, p. 312, 2003.

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

Введенный в R2014b

Для просмотра документации необходимо авторизоваться на сайте