exponenta event banner

pcbin

Точки облака пространственной ячейки

Описание

пример

bins = pcbin(ptCloud,numBins) пространственно сетка точек в облаке точек, ptCloud. Продукция bins сохраняет пространственные местоположения ячеек, которые являются индексами для точек. Функция находит расположения ячеек путем выборки облака точек в каждом измерении по количеству ячеек, указанному в numBins.

bins = pcbin(ptCloud,numBins,spatialLimits) задает пространственные пределы, используемые при размещении точек в ячейках.

[bins,binLocations] = pcbin(___) также возвращает binLocations, пространственные границы каждого ячейки в bins. binLocations имеет тот же размер, что и bins.

[___] = pcbin(___,'BinOutput',true) также задает формат bins и binLocations выход.

Когда вы устанавливаете 'BinOutputКому true, bins и binLocations возвращаются в виде массивов ячеек размером [numBinsX, numBinsY, numBinsZ].

Когда вы устанавливаете 'BinOutputКому false и ptCloud неорганизованные облака точек, bins возвращается в виде M-by-1 числового вектора. binLocations возвращается в виде матрицы M-by-6.

Когда вы устанавливаете 'BinOutputКому false и ptCloud представляют собой организованные точечные облака, bins возвращает матрицу M-by-N. binLocations возвращается в виде матрицы M-by-N-by-6.

Примеры

свернуть все

Считывание данных облака точек в рабочее пространство.

ptCloud = pcread('teapot.ply');

Пространственное складирование облака точек в сетку 32 на 32.

indices = pcbin(ptCloud,[32 32 32]);

Постройте сетку оккупантов.

occupancyGrid = cellfun(@(c) ~isempty(c), indices);

Просмотрите сетку занятой позиции.

ViewPnl = uipanel(figure);
volshow(occupancyGrid,'Parent',ViewPnl);

Считывание данных облака точек в рабочее пространство.

ptCloud = pcread('teapot.ply');

Пространственное складирование облака точек в сетку 32 на 1.

indices = pcbin(ptCloud,[32 32 1]);

Создайте сетку плотности.

densityGrid = cellfun(@(c) ~isempty(c),indices);

Отображение сетки плотности.

figure;
imagesc(densityGrid);

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

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

свернуть все

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

Число ячеек, указанное как трехэлементный вектор вида [numBinsX, numBinsY, numBinsZ]. Векторные элементы указывают количество ячеек для использования в каждом измерении соответственно.

Пространственные пределы, определяемые как числовая матрица 3 на 2 вида [Xmin, Xmax; Имин, Имакс; Змин, Змакс]. Пространственные пределы определяют границы, используемые, когда функция складывает точки. Точки, находящиеся за пределами указанных пределов, не включаются в выходные данные.

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

свернуть все

Пространственные ячейки, возвращаемые в виде массива ячеек того же размера, что и входные данные numBins, M-by-1 числовой вектор или матрица M-by-N. Функция возвращает массив ячеек, если вы не используете 'BinOutput"аргумент. Каждая ячейка массива содержит индексы для расположения точек во входном облаке точек, которые определяют ячейки. Каждая ячейка включает левую кромку ячейки, за исключением последней ячейки, которая включает обе кромки ячейки.

В таблице описывается размер bins на основе того, как вы указываете 'BinOutputаргумент ', и ptCloud является неорганизованным или организованным.

'BinOutput'bins
trueмассивы ячеек размером [numBinsX, numBinsY, numBinsZ]
false

Неорганизованные облака точек

M-by-1 числовой вектор

, где M представляет количество точек.

Организованные облака точек

Матрица M-by-N, где M и N представляют общее количество точек, настроенных как организованное облако точек.

Функция обрабатывает недопустимые точки по-разному, в зависимости от способа указания 'BinOutput"аргумент. Недопустимые точки - это точки с координатами, которые содержат Inf или NaN . Когда вы устанавливаете 'BinOutputКому true, функция игнорирует недопустимые точки и не включает их в выходные данные. Когда вы устанавливаете 'BinOutputКому false, функция возвращает NaN значения для недопустимых точек.

Пространственные границы ячейки, возвращаемые в виде массива ячеек того же размера, что и выходные данные binsмассивы ячеек размером [numBinsX, numBinsY, numBinsZ], матрица M-by-6 или матрица M-by-N-by-6. Функция возвращает массив ячеек, если вы не используете 'BinOutput"аргумент. Каждая ячейка в массиве содержит пространственные границы ячеек в bins. Границы для бункера имеют вид [Xmin, Xmax; Имин, Имакс; Змин, Змакс].

В таблице описывается размер binLocations на основе того, как вы указываете 'BinOutputаргумент ', и ptCloud является неорганизованным или организованным.

'BinOutput'binLocations
trueмассивы ячеек размером [numBinsX, numBinsY, numBinsZ]
false

Неорганизованные облака точек:

Матрица M-by-6, где М представляет количество точек, расположенных в ячейке, указанной [Xmin, Xmax; Имин, Имакс; Zmin, Zmax] пространственная граница.

Организованные облака точек:

M-by-N-by-6 матрица, где M и N представляют количество точек в организованном облаке точек, причем каждая точка расположена в ячейке, указанной [Xmin, Xmax; Имин, Имакс; Zmin, Zmax] пространственная граница.

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

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

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.

См. также

Функции

Объекты

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