exponenta event banner

fuseCameraToLidar

Преобразование информации об изображении в облако точек lidar

Описание

ptCloudOut = fuseCameraToLidar(I,ptCloudIn,intrinsics) объединяет информацию из изображения, I, в указанное облако точек, ptCloudIn, используя собственные параметры камеры, intrinsics.

Функция выполняет кадрирование конденсированного облака точек, ptCloudOut, так что она содержит только точки, присутствующие в поле зрения камеры.

пример

ptCloudOut = fuseCameraToLidar(I,ptCloudIn,intrinsics,tform) использует камеру для лидарного жесткого преобразования tform чтобы поместить облако точек в кадр изображения перед его слиянием с информацией об изображении. Этот синтаксис используется, когда данные облака точек не находятся в кадре координат камеры.

ptCloudOut = fuseCameraToLidar(___,nonoverlapcolor) возвращает конденсированное облако точек того же размера, что и входное облако точек. Функция использует указанный цвет nonoverlapcolor для точек, находящихся вне поля зрения камеры в дополнение к любой комбинации входных аргументов из предыдущих синтаксисов.

[ptCloudOut,colormap] = fuseCameraToLidar(___) возвращает цвета точек colormap конденсированного облака точек.

[ptCloudOut,colormap,indices] = fuseCameraToLidar(___) возвращает линейные индексы точек в конденсированном облаке точек, которые находятся в поле зрения камеры в дополнение к выходным аргументам из предыдущих синтаксисов.

Примеры

свернуть все

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

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

Постройте график извлеченного облака точек.

pcshow(ptCloud)
title('Original Point Cloud')

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

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

intrinsics = gt.camParams;
camToLidar = gt.tform;

Соедините изображение с облаком точек.

ptCloudOut = fuseCameraToLidar(im,ptCloud,intrinsics,camToLidar);

Визуализация конденсированного облака точек.

pcshow(ptCloudOut)
title('Colored Point Cloud')

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

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

свернуть все

Цветное изображение или изображение в оттенках серого, указанное как массив H-by-W-by-C.

  • H - определяет высоту изображения.

  • W - определяет ширину изображения.

  • C - определяет количество цветовых каналов в изображении. Функция поддерживает до трех цветовых каналов в изображении.

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

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

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

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

Спецификация цвета для точек вне поля зрения камеры, заданная как имя цвета, короткое имя цвета или триплет RGB.

Для пользовательского цвета укажите триплет RGB. Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0,1]; например, [0.4 0.6 0.7]. Можно также задать некоторые общие цвета по имени. В этой таблице перечислены параметры именованного цвета и эквивалентные значения триплета RGB.

Имя цветаКороткое имя цветаТриплет RGBВнешность
'red''r'[1 0 0]

'green''g'[0 1 0]

'blue''b'[0 0 1]

'cyan' 'c' [0 1 1]

'magenta''m'[1 0 1]

'yellow''y'[1 1 0]

'black''k'[0 0 0]

'white''w'[1 1 1]

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

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

свернуть все

Конденсированное облако точек, возвращенное как pointCloud объект.

Цветовая карта облака точек, возвращенная в качестве одной из следующих опций:

  • Матрица M-by-3 - для неорганизованных облаков точек

  • Массив M-by-N-by-3 - для организованных облаков точек

Каждая строка матрицы или канала массива содержит триплет RGB для соответствующей точки в облаке точек. Функция возвращает их в виде вещественных значений в диапазоне [0, 1]. Если не указать nonoverlapcolor аргумент, то значение цвета для точек вне поля зрения камеры равно [0 0 0] (черный).

Типы данных: uint8

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

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

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

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

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