主要内容

projectLidarPointsOnImage

将LIDAR点云数据投影到图像坐标帧

描述

实例

进口= projectlidarpointsonimage(ptcloudin,内在机构,tform.)使用激光雷达传感器和相机之间的刚性变换将激光雷达点云数据投影到图像坐标系上,tform.,以及一组相机固有参数,内在机构.输出进口包含图像框中投影点的2-D坐标。

进口= projectlidarpointsonimage(世界观点,内在机构,tform.)将在世界坐标系中指定为三维坐标的激光雷达点投影到图像坐标系上。

[进口,指数]=项目LIDARPOINTSONIMAGE(___)使用以前语法中输入参数的任意组合返回点云中投影点的线性索引。

[___]=项目LIDARPOINTSONIMAGE(___,名称、值)除了以前语法中的任何参数组合之外,使用一个或多个名称值对参数指定选项。例如,'拍摄',[250 400]将要在其上投影点的图像大小设置为250×400像素。

例子

全部崩溃

将地面实况数据从MAT文件加载到工作区。从地面实况数据中提取图像和点云数据。

datapath = fullfile(toolboxdir(“激光雷达”),“利达达达”,“lcc”,“sampleColoredPtCloud.mat”); gt=负载(数据路径);img=gt.im;pc=gt.ptCloud;

从地面真实数据中提取摄像机的固有参数。

内在= gt.camparams;

从地面真值数据中提取相机到激光雷达的变换矩阵,并反转以找到激光雷达到相机的变换矩阵。

tform =反转(gt.tform);

拆下点云数据。

p1=pc下采样(pc,“网格平均”,0.5);

将点云投影到图像框架上。

imPts=projectLidarPointsOnImage(p1,本质,tform);

覆盖图像上的投影点。

图imshow(img)持有绘图(输入(:,1),输入(:,2),'.','颜色',“r”) 抓住离开

Figure包含一个axes对象。axes对象包含两个image、line类型的对象。

输入参数

全部崩溃

点云,指定为apointcloud.目的。

世界坐标系中的点,指定为M-by-3矩阵或M-经过-N-by-3阵列。如果指定M-通过-3矩阵,每行包含无组织点云中一个点的三维世界坐标,该点云包含M总计点。如果指定M-经过-N-by-3阵列,MN分别代表有组织点云中的行和列数。阵列的每个通道包含该点的三维世界坐标。

数据类型:仅有一个的|双重的

摄影机内部参数,指定为摄像头目的。

激光器到相机刚性变换,指定为a刚性三维目的。

名称值参数

指定可选的逗号分隔的字符对名称、值论点。名称是参数名和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen.

例子:'拍摄',[250 400]将要在其上投影点的图像大小设置为250×400像素。

选择用于投影到图像坐标系的索引,指定为逗号分隔对,由'索引'和正整数的矢量。

数据类型:仅有一个的|双重的

点投影到的图像的大小,指定为逗号分隔对,由'图片尺寸'和表格的两个元素行矢量[宽度身高]以像素为单位。该函数使用指定的尺寸过滤掉不在相机视野内的投影点。

如果你不确定'图片尺寸'参数,则函数使用图像大小来自摄影机内部参数的属性内在机构估计相机的视野。

笔记

如果指定'图片尺寸'参数大于默认参数,则函数使用默认参数。

数据类型:仅有一个的|双重的

输出参数

全部崩溃

投影到图像上的点,作为M-by-2矩阵。每行包含二维坐标,格式为[xY,图像框架中的一个点。

数据类型:仅有一个的|双重的

点云的投影点的线性指标,作为正整数的矢量返回。

数据类型:仅有一个的|双重的

扩展能力

C/C++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2020b中引入