pcdenoise

Удалите шум из 3-D облака точек

Описание

пример

ptCloudOut = pcdenoise(ptCloudIn) возвращает отфильтрованное облако точек, которое удаляет выбросы.

[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn) дополнительно возвращает линейные индексы в точки, которые идентифицированы как inliers и выбросы.

[ptCloudOut,___] = pcdenoise(___Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы, с помощью любого из предыдущих синтаксисов.

Примеры

свернуть все

Создайте плоское облако точек.

gv = 0:0.01:1;
[X,Y] = meshgrid(gv,gv);
ptCloud = pointCloud([X(:),Y(:),0.5*ones(numel(X),1)]);

figure
pcshow(ptCloud);
title('Original Data');

Figure contains an axes. The axes with title Original Data contains an object of type scatter.

Добавьте равномерно распределенный случайный шум.

noise = rand(500, 3);
ptCloudA = pointCloud([ptCloud.Location; noise]);

figure
pcshow(ptCloudA);
title('Noisy Data');

Figure contains an axes. The axes with title Noisy Data contains an object of type scatter.

Удалите выбросы.

ptCloudB = pcdenoise(ptCloudA);

figure;
pcshow(ptCloudB);
title('Denoised Data');

Figure contains an axes. The axes with title Denoised Data contains an object of type scatter.

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

свернуть все

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

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

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

Пример: 'Threshold',1.0 устанавливает порог к 1.0.

Количество самого близкого соседа указывает в виде разделенной запятой пары, состоящей из 'NumNeighbors'и положительное целое число в пикселях. Значение используется, чтобы оценить среднее значение среднего расстояния до соседей всех точек. Уменьшение этого значения делает фильтр более чувствительным к шуму. Увеличение этого повышения стоимости количество расчетов.

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

Порог выброса в виде разделенной запятой пары, состоящей из 'Threshold'и скаляр. По умолчанию порог является одним стандартным отклонением от среднего значения среднего расстояния до соседей всех точек. Точка считается выбросом, если среднее расстояние до его k - самые близкие соседи выше заданного порога.

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

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

свернуть все

Фильтрованное облако точек, возвращенное как pointCloud объект.

Линейный индекс точек inlier, возвращенных как 1 N вектором.

Типы данных: uint32

Линейный индекс точек выброса, возвращенных как 1 N вектором из линейных индексов.

Типы данных: uint32

Ссылки

[1] Rusu, R. B. З. К. Мартон, Н. Блодоу, М. Долха и М. Биц. “К 3D основанным на облаке точек объектным картам для домашних сред”. Робототехника и журнал автономных систем. 2008.

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

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

Представленный в R2015a