pcfitsphere

Подходящая сфера к 3-D облаку точек

Синтаксис

model = pcfitsphere(ptCloudIn,maxDistance)
[model,inlierIndices,outlierIndices] = pcfitsphere(ptCloudIn,maxDistance)
[___,meanError] = pcfitsphere(ptCloudIn,maxDistance)
[___] = pcfitsphere(___,Name,Value)

Описание

пример

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

Эта функция использует Демонстрационное Согласие M-средства-оценки (MSAC) алгоритм, чтобы найти сферу. Алгоритм MSAC является вариантом Согласия Случайной выборки (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')

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

maxDistance = 0.01;

Установите короля ограничивать поиск.

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
pcshow(globe)
title('Globe Point Cloud')

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

свернуть все

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Ссылки

[1] Торр, P. H. S. и А. Зиссермен. “MLESAC: новое устойчивое средство оценки с приложением к оценке геометрии изображений”. Компьютерное зрение и распознавание изображений. 2000.

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

Введенный в R2015b