exponenta event banner

pcdownsample

Понизить оценку облака точек 3-D

Описание

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

пример

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. The axes 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. The axes 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' метод понижающей выборки, особенно когда он применяется до регистрации облака точек.

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

МетрикаМетод Downsample для движущейся облачной средыМетод понижающей выборки облака фиксированных точек
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

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

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

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

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

МетрикаМетод Downsample для движущейся облачной средыМетод понижающей выборки облака фиксированных точек
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

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

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

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

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

МетрикаМетод Downsample для движущейся облачной средыМетод понижающей выборки облака фиксированных точек
'pointToPoint''random''random'
'gridAverage''gridAverage'
'pointToPlane''gridAverage''gridAverage'
'random''nonuniformGridSample'

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

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

свернуть все

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

Ссылки

[1] Померло, Ф., Ф. Колас, Р. Зигварт и С. Магненат. «Сравнение вариантов ПМС с реальными наборами данных». Автономные роботы. Том 34, выпуск 3, апрель 2013 г., стр. 133-148.

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

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

..
Представлен в R2015a