exponenta event banner

pcfitsphere

Вписать сферу 3-D облако точек

Описание

пример

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

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

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

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

[___] = 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 объект.

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Ссылки

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2015b