exponenta event banner

pcfitcuboid

Вписать кубоид над облаком точек

Описание

model = pcfitcuboid(ptCloudIn) соответствует кубоиду над входными данными облака точек. Функция сохраняет свойства кубоида в cuboidModel объект, model.

пример

model = pcfitcuboid(ptCloudIn,indices) соответствует кубоиду над выбранным набором точек, indices, в облаке входных точек.

model = pcfitcuboid(___,Name,Value) указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, 'AzimuthRange',[25 75] задает угловой диапазон для азимутальных углов функции.

Примеры

свернуть все

Поместите кубовидные ограничивающие рамки вокруг кластеров в облаке точек.

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

data = load('drivingLidarPoints.mat');

Определение и обрезка представляющей интерес области (ROI) из облака точек. Визуализация выбранной окупаемости инвестиций облака точек.

roi = [-40 40 -6 9 -2 1];
in = findPointsInROI(data.ptCloud,roi);
ptCloudIn = select(data.ptCloud,in);
hcluster = figure;
panel = uipanel('Parent',hcluster,'BackgroundColor',[0 0 0]);
ax = axes('Parent',panel,'Color',[0 0 0]); 
pcshow(ptCloudIn,'MarkerSize',30,'Parent',ax)
title('Input Point Cloud')

Figure contains an axes and an object of type uipanel. The axes with title Input Point Cloud contains an object of type scatter.

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

maxDistance = 0.3;
referenceVector = [0 0 1];
[~,inliers,outliers] = pcfitplane(ptCloudIn,maxDistance,referenceVector);
ptCloudWithoutGround = select(ptCloudIn,outliers,'OutputSize','full');
hSegment = figure;
panel = uipanel('Parent',hSegment,'BackgroundColor',[0 0 0]);
ax = axes('Parent',panel,'Color',[0 0 0]); 
pcshowpair(ptCloudIn,ptCloudWithoutGround,'Parent',ax)
legend('Ground Region','Non-Ground Region','TextColor', [1 1 1])
title('Segmented Ground Plane')

Figure contains an axes and an object of type uipanel. The axes with title Segmented Ground Plane contains 2 objects of type scatter. These objects represent Ground Region, Non-Ground Region.

Сегментируйте неназначенную область облака точек на кластеры. Визуализация сегментированного облака точек.

distThreshold = 1;
[labels,numClusters] = pcsegdist(ptCloudWithoutGround,distThreshold);
labelColorIndex = labels;
hCuboid = figure;
panel = uipanel('Parent',hCuboid,'BackgroundColor',[0 0 0]);
ax = axes('Parent',panel,'Color',[0 0 0]); 
pcshow(ptCloudIn.Location,labelColorIndex,'Parent',ax)
title('Fitting Bounding Boxes')
hold on

Поместите ограничительную рамку на каждый кластер, отображаемую оранжевым цветом.

for i = 1:numClusters
    idx = find(labels == i);
    model = pcfitcuboid(ptCloudWithoutGround,idx);
    plot(model)
end

Figure contains an axes and an object of type uipanel. The axes with title Fitting Bounding Boxes contains 4 objects of type scatter, patch.

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

свернуть все

Облако точек, указанное как pointCloud объект.

Индексы выбранных допустимых точек, указанные как вектор положительных целых чисел.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'AzimuthRange',[25 75] задает угловой диапазон для азимутальных углов функции.

Диапазон азимутальных углов для определения ориентации кубоида, определяемый как разделенная запятыми пара, состоящая из 'AzimuthRange' и двухэлементный вектор строк вещественных значений в диапазоне [0, 90].

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

Размер шага окна поиска, указанный как разделенная запятыми пара, состоящая из 'Resolution' и положительный скаляр. Указанное значение должно быть меньше или равно расстоянию между верхним и нижним границами диапазона азимутальных углов. Например, если диапазон азимутальных углов равен [0, 90], указанное значение должно быть меньше или равно 90.

Примечание

Уменьшение разрешения увеличит время вычислений и объем памяти.

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

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

свернуть все

Кубоидная модель, возвращенная как cuboidModel объект.

Ссылки

[1] Сяо Чжан, Венда Сюй, Чию Дун и Джон М. Долан, «Эффективный L-образный фитинг для обнаружения транспортных средств с помощью лазерных сканеров», Симпозиум интеллектуальных транспортных средств IEEE, июнь 2018 года

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

Функции

Объекты

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