exponenta event banner

addView

Добавить представление на карту

Описание

пример

sMapOut = addView(sMapIn,viewId,features) добавляет вид, viewId, который содержит указанные элементы features на карту sMapIn.

sMapOut = addView(sMapIn,viewId,features,segments) добавляет сегменты segments которые соответствуют каждой функции.

Примеры

свернуть все

Создание представления карты для хранения сегментов и элементов облака точек.

sMap = pcmapsegmatch('CentroidDistance',1);

Загрузка сканирования облака точек.

data = load('fullParkingLotData.mat');
ptCloudScans = data.fullParkingLotData;

Задайте радиус для выбора цилиндрической окрестности.

outerCylinderRadius = 30;
innerCylinderRadius = 3;

Задайте пороговые параметры сегментации.

distThreshold = 0.5;
angleThreshold = 180;

Сегментируйте каждое облако точек и добавьте к карте элементы и сегменты облака точек.

for n = 1:numel(ptCloudScans);
    ptCloud = ptCloudScans(n);

    % Segment and remove the ground plane.
    groundPtsIdx = segmentGroundFromLidarData(ptCloud,'ElevationAngleDelta',11);
    ptCloud = select(ptCloud,~groundPtsIdx,'OutputSize','full');

    % Select cylindrical neighborhood.
    dists = sqrt(ptCloud.Location(:,:,1).^2 + ptCloud.Location(:,:,2).^2);
    cylinderIdx = dists <= outerCylinderRadius ...
        & dists > innerCylinderRadius;
    ptCloud = select(ptCloud,cylinderIdx,'OutputSize','full');

    % Segment the point cloud.
    [labels, numClusters] = segmentLidarData(ptCloud,distThreshold,angleThreshold,'NumClusterPoints',[50 5000]);

    % Extract features from the point cloud.
    [features,segments] = extractEigenFeatures(ptCloud,labels);

    % Add the features and segments to the map.
    sMap = addView(sMap,n,features,segments);
end

Отображение карты сегментов.

figure; show(sMap);

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

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

свернуть все

Исходная карта сегментов и элементов, заданная как pcmapsegmatch объект.

Идентификатор представления, указанный как целое число. Каждый идентификатор представления уникален для конкретного представления.

Элементы на основе собственных значений, указанные как вектор eigenFeature объекты. Функция отфильтровывает элементы, которые уже существуют на карте, как дубликаты на основе их местоположения центроида и расстояния, заданного CentroidDistance свойства карты.

Следует извлекать новые элементы только из облака точек, зарегистрированного в облаках точек существующих элементов

Сегменты облака точек, заданные как вектор pointCloud объекты. Для использования show для визуализации необходимо указать этот аргумент.

Для повышения производительности не включайте segments на карте с findPose и updateMap функции объекта. Кроме того, можно использовать deleteSegment функция объекта для удаления существующих сегментов перед использованием findPose или updateMap.

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

свернуть все

Обновленная карта сегментов и элементов, возвращенная в виде pcmapsegmatch объект.

См. также

Функции

Объекты

Представлен в R2021a