worldpointset

Справьтесь 3-D к 2D соответствиям точки

Описание

worldpointset соответствия объектно-ориентированной памяти между 3-D миром указывают и 2D точки изображений через поля зрения камеры. Можно использовать worldpointset объект с imageviewset объект управлять изображением и данными о карте для структуры от движения, визуальной одометрии и визуальной одновременной локализации и картографии (SLAM).

Создание

Синтаксис

Описание

пример

wpSet = worldpointset создает объект worldpointset со свойствами по умолчанию. Используйте объектные функции, чтобы выполнить действия, такие как добавление, изменение или удаление соответствий, нахождение точек в представлении и нахождении представлений точек.

Свойства

развернуть все

Это свойство доступно только для чтения.

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

Это свойство доступно только для чтения.

Идентификаторы для представлений, сопоставленных с мировыми точками в виде N - вектор-строка элемента из целых чисел.

Это свойство доступно только для чтения.

Количество 3-D мира указывает в виде скаляра.

Это свойство доступно только для чтения.

3-D к 2D соответствиям точки в виде таблицы с тремя столбцами.

СтолбецОписание
PointIndexКаждая строка содержит линейный индекс мировой точки.
ViewIdКаждая строка содержит 1 N вектором, задающим идентификаторы представлений, сопоставленных с соответствующими мировыми точками. N является количеством представлений, сопоставленных с мировой точкой.
FeatureIndexКаждая строка содержит 1 N вектором, задающим индексы характерных точек, которые соответствуют мировой точке. Каждым элементом является индекс характерной точки в представлении, заданном соответствующим элементом в ViewID ячейка.

Функции объекта

addWorldPointsДобавьте, что мир указывает на мировой набор точки
removeWorldPointsУдалите мировые точки из мирового набора точки
updateWorldPointsОбновите мировые точки в мировом наборе точки
addCorrespondencesОбновите мировые точки в мировом наборе точки
removeCorrespondencesУдалите 3-D к 2D соответствиям от мирового набора точки
updateCorrespondencesОбновитесь 3-D к 2D соответствиям в мировом наборе точки
findViewsOfWorldPointНайдите представления, которые наблюдают мировую точку
findWorldPointsInTracksНайдите мировые точки, которые соответствуют дорожкам точки
findWorldPointsInViewНайдите мировые точки наблюдаемыми в поле зрения

Примеры

свернуть все

Загрузите MAT-файл, содержащий параметры стерео в рабочую область.

load('webcamsSceneReconstruction.mat');

Считайте стереопару изображений в рабочую область.

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

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

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

Задайте прямоугольную видимую область (ROI) в формате [x y высота ширины].

roi = [30 30 size(I1,2)-30 size(I1,1)-30];

Обнаружьте и извлеките Ускоренные устойчивые функции (SURF) из обоих изображений с помощью ROI.

imagePoints1 = detectSURFFeatures(rgb2gray(I1),'ROI',roi);
imagePoints2 = detectSURFFeatures(rgb2gray(I2),'ROI',roi);
  
[feature1,validPoints1] = extractFeatures(rgb2gray(I1),imagePoints1,'Upright',true);
[feature2,validPoints2] = extractFeatures(rgb2gray(I2),imagePoints2,'Upright',true);

Совпадайте с извлеченными функциями друг другу.

indexPairs = matchFeatures(feature1,feature2);

Вычислите 3-D мировые точки.

matchedPoints1 = validPoints1(indexPairs(:,1));
matchedPoints2 = validPoints2(indexPairs(:,2));
worldPoints    = triangulate(matchedPoints1,matchedPoints2,stereoParams);

Создайте worldpointset объект управлять соответствиями.

wpSet = worldpointset;

Добавьте, что мир указывает на worldpointset.

[wpSet,newPointIndices] = addWorldPoints(wpSet,worldPoints);

Добавьте 3-D в 2D соответствия точки к worldpointset.

wpSet = addCorrespondences(wpSet,1,newPointIndices,indexPairs(:,1));
wpSet = addCorrespondences(wpSet,2,newPointIndices,indexPairs(:,2));

Отобразите мировые точки.

pcshow(wpSet.WorldPoints,'VerticalAxis','y','VerticalAxisDir','down','MarkerSize',45)

Введенный в R2020b