projectLidarPointsOnImage

Проецируйте данные облака лидарных точек на систему координат изображения

Описание

пример

imPts = projectLidarPointsOnImage(ptCloudIn,intrinsics,tform) проецирует данные облака точек лидара на координатную рамку изображения с помощью жесткого преобразования между датчиком лидара и камерой, tform, и набор внутренних параметров камеры, intrinsics. Область выхода imPts содержит 2-D координаты проективных точек в системе координат изображения.

imPts = projectLidarPointsOnImage(worldPoints,intrinsics,tform) проецирует лидарные точки, заданные как 3-D координаты в лабораторной системе координат, на координатную систему координат изображения.

[imPts,indices] = projectLidarPointsOnImage(___) возвращает линейные индексы проективных точек в облаке точек с помощью любой комбинации входных параметров в предыдущих синтаксисах.

[___] = projectLidarPointsOnImage(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к любой комбинации аргументов в предыдущих синтаксисах. Для примера, 'ImageSize',[250 400] устанавливает размер изображения, на котором можно проецировать точки, равным 250 на 400 пикселей.

Примеры

свернуть все

Загрузите достоверные данные из MAT-файла в рабочую область. Извлеките изображение и данные облака точек из достоверных данных.

dataPath = fullfile(toolboxdir('lidar'),'lidardata','lcc','sampleColoredPtCloud.mat');
gt  = load(dataPath);
img = gt.im;
pc = gt.ptCloud;

Извлеките внутренние параметры камеры из достоверных данных.

intrinsics = gt.camParams;

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

tform = invert(gt.tform);

Понижайте значение данных облака точек.

p1 = pcdownsample(pc,'gridAverage',0.5);

Проецируйте облако точек на систему координат изображения.

imPts = projectLidarPointsOnImage(p1,intrinsics,tform);

Наложите проективные точки на изображение.

figure
imshow(img)
hold on
plot(imPts(:,1),imPts(:,2),'.','Color','r')
hold off

Figure contains an axes. The axes contains 2 objects of type image, line.

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

свернуть все

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

Точки в мировой координатной системе координат, заданные как M -by-3 матрица или M -by N -by-3 массив. Если вы задаете матрицу M -by-3, каждая строка содержит 3-D мировых координат точки в неорганизованном облаке точек, которое содержит M точек в общей сложности. Если вы задаете M -by- N -by-3 массив, M и N представляют количество строк и столбцов, соответственно, в организованном облаке точек. Каждый канал массива содержит 3-D мировых координат этой точки.

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

Внутренние параметры камеры, заданные как cameraIntrinsics объект.

Твердое преобразование Лидара к камере, заданное как rigid3d объект.

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

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

Пример: 'ImageSize',[250 400] устанавливает размер изображения, на котором можно проецировать точки, равным 250 на 400 пикселей.

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

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

Размер изображения, на котором проецируются точки, задается как разделенная разделенными запятой парами, состоящая из 'ImageSize' и двухэлементный вектор-строка вида [width height] в пикселях. Функция использует заданные измерения, чтобы отфильтровать проективные точки, которые не находятся в поле зрения камеры.

Если вы не задаете 'ImageSize' аргумент, тогда функция использует ImageSize свойство от внутренних параметров камеры intrinsics для оценки поля зрения камеры.

Примечание

Если вы задаете 'ImageSize' аргумент больше аргумента по умолчанию, тогда функция использует аргумент по умолчанию.

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

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

свернуть все

Точки, проецируемые на изображение, возвращаются как M-на-2 матрица. Каждая строка содержит координаты 2-D в форме [x y], точки в системе координат изображения.

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

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

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

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

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

.
Введенный в R2020b