fuseCameraToLidar

Предохраните информацию об изображении от лидара облака точек

Описание

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 array - Для организованных облаков точек

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

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

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

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

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

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

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