pcfitsphere

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

Описание

пример

model = pcfitsphere(ptCloudIn,maxDistance) соответствует сфере к облаку точек, которое имеет максимальное допустимое расстояние от точки 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 имя аргумента и 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.

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

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

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте