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'to true, bins и binLocations возвращаются как массивы ячеек размера [numBinsX, numBinsY, numBinsZ].

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

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

Примеры

свернуть все

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

ptCloud = pcread('teapot.ply');

Пространственно интервал облако точек в сетку 32 на 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 на 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; Ymin, Ymax; Zmin, Zmax]. Пространственные пределы определяют границы, используемые, когда интервалы функций указывают. Точки, которые находятся вне заданных пределов, не включаются в выход.

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

свернуть все

Пространственные местоположения интервала, возвращенные как массив ячеек того же размера, что и входные 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'to trueфункция игнорирует недопустимые точки и не включает их в выход. Когда вы задаете 'BinOutput'to false, функция возвращается NaN значения для недопустимых точек.

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

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

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

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

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

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

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

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

.

См. также

Функции

Объекты

Введенный в R2020a