exponenta event banner

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 объект.

Жесткое преобразование Lidar в камеру, указанное как rigid3d объект.

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

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

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

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

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

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

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

Примечание

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

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

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

свернуть все

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

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

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

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

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

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

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