exponenta event banner

normalRotation

Вычислить преобразование для поворота нормали к плоскости

Описание

пример

tform = normalRotation(model,referenceVector) возвращает rigid3d объект tform, которая задает преобразование для вектора нормали плоскости в referenceVector. model является planeModel. referenceVector является вектором 1 на 3.

Примеры

свернуть все

Создайте объект velodureFileReader.

veloReader = velodyneFileReader('lidarData_ConstructionRoad.pcap','HDL32E');

Прочтите первый кадр данных лидара.

frameNumber = 1;
ptCloud  = readFrame(veloReader,frameNumber);

Найдите наземный самолет.

maxDistance = 0.4;
referenceVector = [0 0 1];

groundPlane = pcfitplane(ptCloud,maxDistance,referenceVector);

Преобразуйте плоскость заземления так, чтобы она была параллельна плоскости X-Y.

tform = normalRotation(groundPlane,referenceVector);

Трансформируйте облако точек.

ptCloudOut = pctransform(ptCloud,tform);

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

planeParams = groundPlane.Parameters * pinv(tform.T);
transformedPlane = planeModel(planeParams);
figure;
pcshowpair(ptCloudOut,ptCloud);
hold on;
plot(groundPlane, 'Color', 'magenta');
plot(transformedPlane, 'Color', 'green');

Figure contains an axes. The axes contains 4 objects of type scatter, patch.

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

свернуть все

Параметрическая модель плоскости, возвращенная planeModel.

Опорный вектор, заданный как вектор 1 на 3.

См. также

Функции

Объекты

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