pcdownsample

Downsample 3-D облако точек

Описание

ptCloudOut = pcdownsample(ptCloudIn,'random',percentage) возвращает прореженное облако точек со случайной выборкой и без замены. percentage введите задает фрагмент входа, чтобы возвратиться к выходу.

пример

ptCloudOut = pcdownsample(ptCloudIn,'gridAverage',gridStep) возвращает прореженное облако точек с помощью сеточного фильтра поля. gridStep введите задает размер 3-D поля.

ptCloudOut = pcdownsample(ptCloudIn,'nonuniformGridSample',maxNumPoints) возвращает прореженное облако точек с помощью неоднородного сеточного фильтра поля. Необходимо определить максимальный номер точек в поле сетки, maxNumPoints, по крайней мере, к 6.

Примеры

свернуть все

Считайте облако точек.

ptCloud = pcread('teapot.ply');

Установите 3-D разрешение быть (0.1 x 0.1 x 0.1).

gridStep = 0.1;
ptCloudA = pcdownsample(ptCloud,'gridAverage',gridStep);

Визуализируйте прореженные данные.

figure;
pcshow(ptCloudA);

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

Сравните облако точек с данными, которые прорежены с помощью фиксированного размера шага.

stepSize = floor(ptCloud.Count/ptCloudA.Count);
indices = 1:stepSize:ptCloud.Count;
ptCloudB = select(ptCloud, indices);

figure;
pcshow(ptCloudB);

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

Создайте облако точек со всеми точками, совместно использующими те же координаты.

ptCloud = pointCloud(ones(100,3));

Установите 3-D разрешение маленького значения.

gridStep = 0.01;

Выход теперь содержит только одну уникальную точку.

ptCloudOut = pcdownsample(ptCloud,'gridAverage',gridStep)
ptCloudOut = 
  pointCloud with properties:

     Location: [1 1 1]
        Count: 1
      XLimits: [1 1]
      YLimits: [1 1]
      ZLimits: [1 1]
        Color: [0x3 uint8]
       Normal: [0x3 double]
    Intensity: [0x1 double]

Входные параметры

свернуть все

Облако точек в виде pointCloud объект.

Случайный прореживают метод в виде 'random'. 'random' метод более эффективен, чем 'gridAverage' проредите метод, особенно когда он будет применен перед регистрацией облака точек.

Downsample облако точек с помощью 'random', 'gridAverage', или 'nonuniformGridSample' входные параметры, согласно Metric вы используете в pcregistericp функция для регистрации.

МетрикаПеремещение метода PointCloud DownsampleМетод Downsample облака фиксированной точки
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

Процент входа в виде положительной скалярной величины в области значений [0, 1]. percentage введите задает фрагмент входа для функции, чтобы возвратиться.

Среднее значение сетки прореживает метод в виде 'gridAverage'. Точки в том же поле объединены к одной точке в выходе. Их цветные и нормальные свойства усреднены соответственно. Этот метод сохраняет форму облака точек лучше, чем 'random' проредите метод.

Функция вычисляет выровненную осью ограничительную рамку для облака всего смысла. Ограничительная рамка разделена на поля сетки размера, заданного gridStep. Точки в каждом поле сетки объединены путем усреднения их местоположений, цветов и нормалей.

Downsample облако точек с помощью 'random', 'gridAverage', или 'nonuniformGridSample' входные параметры, согласно Metric вы используете в pcregistericp функция для регистрации.

МетрикаПеремещение метода PointCloud DownsampleМетод Downsample облака фиксированной точки
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

Размер 3-D поля для сеточного фильтра в виде числового значения. Увеличьте размер gridStep когда существует недостаточно ресурсов, чтобы создать большую мелкомодульную сетку.

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

Выборочный метод нерегулярной координатной сетки в виде 'nonuniformGridSample'. Лучшее использование этого метода должно применить его как шаг предварительной обработки к pcregistericp функция для регистрации облака точек, когда вы используете 'pointToPlane' метрика. Когда вы используете 'nonuniformGridSample' алгоритм, нормали вычисляются на исходных данных до субдискретизации. Прореженный выход сохраняет более точные нормали.

Downsample облако точек с помощью 'random', 'gridAverage', или 'nonuniformGridSample' входные параметры, согласно Metric вы используете в pcregistericp функция для регистрации.

МетрикаПеремещение метода PointCloud DownsampleМетод Downsample облака фиксированной точки
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

Максимальное количество точек в поле сетки в виде целого числа, больше, чем 6. Метод случайным образом выбирает одну точку из каждого поля. Если нормальное не было обеспечено в облаке точки ввода, этот метод автоматически заполняет нормальное свойство в ptCloudOut вывод .

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

свернуть все

Прореженное облако точек, возвращенное как pointCloud объект.

Ссылки

[1] Pomerleau, F. F. Кола, Р. Сигварт и С. Мэгненэт. “Варианты Comparing ICP на реальных наборах данных”. Автономные Роботы. Издание 34, Выпуск 3, апрель 2013, стр 133–148.

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

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

Представленный в R2015a
Для просмотра документации необходимо авторизоваться на сайте