pcfitsphere

Подбор сферы к 3-D облака точек

Описание

пример

model = pcfitsphere(ptCloudIn,maxDistance) подходит для сферы к облаку точек, которое имеет максимально допустимое расстояние от точки inlier до сферы. Функция возвращает геометрическую модель, которая описывает сферу.

Эта функция использует алгоритм M-estimator SAmple Consensus (MSAC), чтобы найти сферу. Алгоритм MSAC является вариантом алгоритма RANdom SAmple Consensus (RANSAC).

[model,inlierIndices,outlierIndices] = pcfitsphere(ptCloudIn,maxDistance) дополнительно возвращает линейные индексы в точки inlier и выбросы во входе облака точек.

[___,meanError] = pcfitsphere(ptCloudIn,maxDistance) дополнительно возвращает среднюю ошибку расстояния точек inlier к модели, используя любой из предыдущих синтаксисов.

[___] = pcfitsphere(___,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

Примеры

свернуть все

Загрузка файла данных.

load('object3d.mat');

Отображение исходного облака точек.

figure
pcshow(ptCloud)
xlabel('X(m)')
ylabel('Y(m)')
zlabel('Z(m)')
title('Original Point Cloud')

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

Установите максимальное расстояние «точка-сфера» 1 см для сферического подбора кривой.

maxDistance = 0.01;

Установите roi, чтобы ограничить поиск.

roi = [-inf,0.5,0.2,0.4,0.1,inf];
sampleIndices = findPointsInROI(ptCloud,roi);

Обнаружите сферу, глобус и извлеките его из облака точек.

[model,inlierIndices] = pcfitsphere(ptCloud,maxDistance,...
            'SampleIndices',sampleIndices);
globe = select(ptCloud,inlierIndices);

Постройте график земного шара.

hold on
plot(model)

Figure contains an axes. The axes with title Original Point Cloud contains 2 objects of type scatter, surface.

figure
pcshow(globe)
title('Globe Point Cloud')

Figure contains an axes. The axes with title Globe Point Cloud contains an object of type scatter.

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

свернуть все

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

Максимальное расстояние от точки inlier до сферы, заданное в виде скалярного значения. Задайте расстояние в модулях, которые соответствуют модулям, которые вы используете для облака точек.

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

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

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

Пример: 'SampleIndices',[].

Линейные индексы точек для выборки во входном облаке точек, заданные как разделенная разделенными запятой парами, состоящая из 'SampleIndices'и вектор-столбец. Пустой вектор означает, что все точки являются кандидатами для выборки в итерации RANSAC, чтобы соответствовать сфере. Когда вы задаете подмножество, только точки в подмножестве дискретизируются, чтобы соответствовать модели. Предоставление подмножества точек может значительно ускорить процесс и уменьшить количество испытаний. Вектор индексов можно сгенерировать с помощью findPointsInROI метод pointCloud объект.

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

Доверительный процент для нахождения максимального количества инкрустаторов, заданный как разделенная разделенными запятой парами, состоящая из 'Confidence'и числовой скаляр, представляющий процент, в области значений [0,100]. Увеличение этого значения делает выход более устойчивым, но добавляет дополнительные расчеты.

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

свернуть все

Геометрическая модель сферы, возвращенная как sphereModel объект.

Когда вход облака точек не содержит достаточного количества допустимых точек или когда функция не может найти достаточное количество inlier точек, коэффициенты для модели выхода устанавливаются равными нулями.

Линейные индексы inlier точек в входы облаке точек, возвращенные как вектор-столбец.

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

Средняя ошибка расстояния точек inlier до модели, возвращенная в виде скалярного значения.

Ссылки

[1] Торр, П. Х. С. и А. Циссерман. MLESAC: новый робастный оценщик с приложением для оценки геометрии изображения. Компьютерное зрение и понимание изображений. 2000.

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

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

.
Введенный в R2015b