exponenta event banner

planeModel

Объект для хранения параметрической модели плоскости

Описание

Создание и сохранение параметрической модели плоскости на основе параметров, описывающих плоскость.

Создание

Описание

пример

model = planeModel(Parameters) создает параметрическую модель плоскости из 1 на 4 Parameters входной вектор, описывающий плоскость.

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

развернуть все

Параметры плоскости, заданные как вектор 1 на 4. Этот ввод определяет Parameters собственность. Четыре параметра [a, b, c, d] описывают уравнение для плоскости:

ax + by + cz + d = 0

Свойства

развернуть все

Эти свойства доступны только для чтения.

Параметры модели плоскости, хранящиеся в виде вектора 1 на 4. Эти параметры определяются Parameters входной аргумент.

Нормальный вектор плоскости, сохраненный как вектор 1 на 3. Вектор [a, b, c] определяет ненормализованный вектор нормали плоскости.

Функции объекта

plotПечать плоскости в окне фигуры
normalRotationВычислить преобразование для поворота нормали к плоскости

Примеры

свернуть все

Загрузите облако точек.

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.

Задайте максимальное расстояние от точки до плоскости (2 см) для фитинга плоскости.

maxDistance = 0.02;

Задайте вектор нормали плоскости.

referenceVector = [0,0,1];

Установите максимальное угловое расстояние равным 5 градусам.

maxAngularDistance = 5;

Определите первую плоскость, таблицу и извлеките ее из облака точек.

[model1,inlierIndices,outlierIndices] = pcfitplane(ptCloud,...
            maxDistance,referenceVector,maxAngularDistance);
plane1 = select(ptCloud,inlierIndices);
remainPtCloud = select(ptCloud,outlierIndices);

Задайте область, представляющую интерес, для ограничения поиска второй плоскости, левой стены.

roi = [-inf,inf;0.4,inf;-inf,inf];
sampleIndices = findPointsInROI(remainPtCloud,roi);

Определите левую стену и извлеките ее из оставшегося облака точек.

[model2,inlierIndices,outlierIndices] = pcfitplane(remainPtCloud,...
            maxDistance,'SampleIndices',sampleIndices);
plane2 = select(remainPtCloud,inlierIndices);
remainPtCloud = select(remainPtCloud,outlierIndices);

Постройте график двух плоскостей и оставшихся точек.

figure
pcshow(plane1)
title('First Plane')

Figure contains an axes. The axes with title First Plane contains an object of type scatter.

figure
pcshow(plane2)
title('Second Plane')

Figure contains an axes. The axes with title Second Plane contains an object of type scatter.

figure
pcshow(remainPtCloud)
title('Remaining Point Cloud')

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

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