birdsEyeView

使用反向透视映射创建鸟瞰视图

描述

使用birdsEyeView对象创建使用逆透视映射2-d场景的鸟瞰图。变换的图像成鸟瞰图,通过一个birdsEyeView对象和图像的transformImage函数。若要将鸟瞰图像坐标转换为车辆坐标或从车辆坐标转换为鸟瞰图像坐标,请使用imageToVehiclevehicleToImage功能。所有这些功能假设输入图像不具有透镜畸变。以除去透镜失真,可使用undistortImage函数。

创建

描述

宰= birdsEyeView(传感器、官样文章,outImageSize)创建birdsEyeView对象的图像变换为鸟瞰图。

  • 传感器monoCamera对象,定义所述相机传感器的构造。该输入设置传感器属性。

  • 官样文章以车辆坐标定义摄像机视图中转换为鸟瞰视图的部分。该输入设置OutputView属性。

  • outImageSize限定了尺寸,以像素为单位输出鸟瞰图图像的。该输入设置图片尺寸属性。

属性

全部展开

相机传感器配置,指定为monoCamera对象。该对象包含相机固有参数、安装高度和相机安装角度。的车辆坐标系统birdsEyeView对象。有关更多细节,请参见车辆坐标系

该区域的坐标变换成鸟瞰图图像,指定为以下形式的四元素矢量XMINxmaxyminYMAX]。单位是世界坐标,如米或英尺,由传感器属性。在四个坐标限定在车辆中的输出空间坐标系(XVÿV)。

当您创建对象,您可以设置该属性。创建对象后,此属性为只读。

输出鸟瞰图图像的大小,以像素为单位,指定为以下形式的两个元素的矢量[ñ),ñ分别为输出图像指定像素的行数和列数。如果为一个维度指定一个值,可以将另一个维度设置为为NaNbirdsEyeView自动计算此值。将一维设置为为NaN保持相同的像素沿着世界单元比XV设在和ÿV-轴。

当您创建对象,您可以设置该属性。创建对象后,此属性为只读。

对象函数

transformImage 变换的图像到鸟瞰图
imageToVehicle 转换鸟瞰图图像坐标到车辆坐标
vehicleToImage 转换车辆坐标到鸟瞰图图像坐标

例子

全部折叠

从通过前置摄像头获得的图像创建的鸟瞰图图像安装在车辆上。使用车辆和图像坐标系统中的鸟瞰图内显示点。

定义了摄像机内在并创建包含这些内在的对象。

focalLength = [309.4362 344.2161];委托点= [318.9034 257.5352];= [480640];camIntrinsics = cameraIntrinsics (focalLength principalPoint图象尺寸);

将相机高度设置为离地2米左右。将相机的俯仰设置为朝向地面的14度。

高度= 2.1798;节距= 14;

创建一个包含摄像机配置的对象。

传感器= monoCamera(camIntrinsics,高度,'沥青'、沥青);

定义要转变成一个鸟瞰镜头前的区域。从3至30米的摄像机前设置的区域,以6米到相机的任一侧。

distAhead = 30;spaceToOneSide = 6;bottomOffset = 3;官样文章= [bottomOffset distAhead、-spaceToOneSide spaceToOneSide);

设置输出图像的宽度250个像素。由长度设置为从宽度自动计算输出长度为NaN

outImageSize =(南,250年);

使用前面定义的参数创建用于执行鸟瞰视图转换的对象。

宰= birdsEyeView(传感器、官样文章、outImageSize);

加载由传感器捕捉的图像。

我= imread ('road.png');图imshow(我)标题(“原始图像”

变换所述输入图像到鸟瞰图图像。

贝福= transformImage(宰,我);

在鸟瞰图图像,直接放置一个20米长的标记在传感器的前面。使用vehicleToImage函数指定在车辆坐标标记的位置。显示鸟瞰图图像上的标记。

imagePoint = vehicleToImage(鸟眼,[20 0]);annotatedBEV = insertMarker(BEV,imagePoint);annotatedBEV = insertText(annotatedBEV,imagePoint + 5,20米的);图imshow(annotatedBEV)标题(“鸟”s-Eye-View形象:vehicleToImage”

定义原始鸟瞰图图像中的位置,这一次是在图像坐标。使用imageToVehicle函数可将图像坐标转换为车辆坐标。显示标志与车辆正面之间的距离。

imagePoint2 = [120 400];annotatedBEV = insertMarker(BEV,imagePoint2);vehiclePoint = imageToVehicle(鸟眼,imagePoint2);xAhead = vehiclePoint(1);displayText = sprintf的('%.2f米',xAhead);annotatedBEV = insertText(annotatedBEV,imagePoint2 + 5,displayText);图imshow(annotatedBEV)标题(“Bird''s眼视图图像:imageToVehicle”

更多关于

全部展开

扩展功能

C / c++代码生成
使用MATLAB®编码器™生成C和c++代码。

也可以看看

功能

介绍了在R2017a