triangulate

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

Описание

пример

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

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

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

[worldPoints,reprojectionErrors,validIndex] = 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');

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

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

свернуть все

Координаты точек в изображении 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 функция.

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

Матрица проекции для камеры 2 в виде 4 3 матрицы. Матрица сопоставляет 3-D точку в однородных координатах на соответствующую точку в изображении от камеры. Этот вход описывает местоположение и ориентацию камеры 2 в системе мировой координаты. cameraMatrix2 должна быть действительная и неразреженная числовая матрица. Можно получить матрицу камеры использование 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 вектор содержит среднюю ошибку перепроекции для каждой мировой точки.

Валидность мировых точек, возвращенных как M-by-1 логический вектор. Актуальные вопросы, обозначенные как логический 1 TRUE), расположены перед камерами. Недопустимые точки, обозначенные как логический 0 ложь), расположены позади камер.

Валидность мировой точки относительно положения камеры определяется путем проектирования мировой точки на изображение с помощью матрицы камеры и однородных координат. Мировая точка допустима, если получившийся масштабный коэффициент положителен.

Советы

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

Ссылки

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

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

Введенный в R2014b