pcdenoise

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

Синтаксис

ptCloudOut = pcdenoise(ptCloudIn)
[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn)
[ptCloudOut,___] = pcdenoise(___Name,Value)

Описание

пример

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');

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

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

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

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

ptCloudB = pcdenoise(ptCloudA);

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Ссылки

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

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

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