estimateMonoCameraParameters

利用棋盘格估计单目相机的外部参数

描述

例子

(沥青,偏航,,高度] = estimateMonoCameraParameters(内联函数,imagePoints,worldPoints,patternOriginHeight)通过使用照相机的固有参数和棋盘校准图案估计单目摄像机的外部参数。返回的外部参数定义偏航,俯仰和侧倾之间旋转角度摄像机坐标系(电脑视觉工具箱)及车辆坐标系轴。该函数还返回相机距地面的高度。指定内在参数,棋盘格角点的图像和世界坐标,以及棋盘格图案原点离地面的高度。

缺省情况下,函数假定相机朝前并且该棋盘图案是与地面平行。对于所有可能的摄像头和棋盘展示位置,请参阅校准单眼相机

(沥青,偏航,,高度] = estimateMonoCameraParameters(___,名称,值)除了前面语法中的输入和输出外,还指定使用一个或多个名称-值对的选项。例如,您可以指定棋盘模式的方向或位置。

例子

全部收缩

对单眼鱼眼相机进行配置,去除镜头畸变,然后对相机的外部参数进行估计。使用棋盘的图像作为校准模式。有关如何配置具有鱼眼镜头的单目照相机的更详细信息,请参见配置单目鱼眼相机例。

加载具有鱼眼镜头的单眼相机的内部参数。内联函数是一个fisheyeIntrinsics对象。

ld =负载('fisheyeCameraIntrinsics');intrinsic = ld.intrinsics;

加载放置在地面平坦棋盘图案的图像。这个图像是用于说明性的目的,从摄像机安装到车辆未服用。在照相机中安装到车辆上时,X-模式轴指向车辆的右侧Y-模式轴指向相机。显示图像。

映像文件名称=完整文件(toolboxdir(“开车”'drivingdata',“checkerboard.png”);I = imread(映像文件名称);imshow(I)

在图像中检测棋盘角的坐标。

[imagePoints, boardSize] = detectCheckerboardPoints(我);

产生的边角相应的世界坐标。

squareSize = 0.029;%的米见方大小worldPoints = generateCheckerboardPoints(boardSize,squareSize);

估计配置所需的外部参数monoCamera对象。由于棋盘图案是直接在地面上,设定模式的起源的高度为0。

patternOriginHeight = 0;[俯仰,偏转辊,高度] = estimateMonoCameraParameters(内在,imagePoints,worldPoints,patternOriginHeight);

因为monoCamera不接受fisheyeIntrinsics的物体,从图像中去除失真并从不失真的图像计算新的内部参数。camIntrinsics是一个cameraIntrinsics对象。显示图像,确认失真已消除。

[undistortedI,camIntrinsics] = undistortFisheyeImage(I,内在,“输出”,'充分');imshow(undistortedI)

使用估计的参数配置单目相机。

monoCam = monoCamera (camIntrinsics、身高、“节”球场上,“偏航”,偏航,“滚”,滚)
属性:Intrinsics: [1x1 cameraIntrinsics]世界单位:'米'高度:0.4447俯仰:21.8459偏航:-3.6130辊:-3.1707传感器位置:[0 0]

输入参数

全部收缩

相机固有参数,指定为acameraIntrinsics要么fisheyeIntrinsics对象。

通过这些摄像机产生棋盘图案的图像可以包括透镜失真,这会影响角点检测的精度。要删除镜头畸变和计算新的内部参数,使用这些功能:

棋盘格角点的图像坐标,指定为-by-2的矩阵的数量(xy)向量。这些点必须来自通过单眼照相机拍摄的图像。在图像中检测到这些点,使用detectCheckerboardPoints函数。

estimateMonoCameraParameters假设所有的点都在worldPoints是在(XP,YP)飞机和那个大于或等于4.要指定的高度(XP,YP)平面上方地,使用patternOriginHeight

数据类型:|

世界坐标的角落点在棋盘上,指定为-by-2的矩阵的数量(xy)向量。

estimateMonoCameraParameters假设所有的点都在worldPoints是在(XP,YP)飞机和那个大于或等于4.要指定的高度(XP,YP)平面上方地,使用patternOriginHeight

点(0,0)对应于棋盘的左上角方形的右下角。

数据类型:|

棋盘格图案原点距地面的高度,指定为非负实标量。原点是棋盘左上角的右下角。

测量patternOriginHeight依赖于棋盘图案的取向,如这些图所示。

水平方向 垂直方向

若要指定模式方向,请使用'PatternOrientation'名称 - 值对。如果设置'PatternOrientation'“水平”(默认),和模式是在地面上,然后设置patternOriginHeight0

数据类型:|

名称 - 值对参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:“PatternOrientation”、“垂直”、“PatternPosition”,“对”

相对于地面的棋盘图案,指定为逗号分隔的一对组成的取向'PatternOrientation'及下列其中一项:

  • “水平”-棋盘格图案与地面平行。

  • “垂直”-棋盘格图案垂直于地面。

相对于地面棋盘图案的位置,指定为逗号分隔的一对组成的'PatternPosition'及下列其中一项:

  • '面前'- 棋盘图案是在车辆的前方。

  • “回来”- 棋盘图案是车辆的后面。

  • '剩下'-棋盘格图案是在车辆的左侧。

  • '对'- 棋盘图案是在车辆的右侧。

输出参数

全部收缩

车辆的水平面与摄像机的光轴之间的俯仰角,以角度为实标量返回。沥青使用ISO公约的旋转,与顺时针积极的角度方向时,看看在车辆的积极方向YV-轴。

有关更多细节,请参见角方向

之间的偏航角XV- 轴的车辆和摄像机的光轴,返回作为在度的实数标量的。偏航使用ISO公约的旋转,与顺时针积极的角度方向时,看看在车辆的积极方向ZV-轴。

有关更多细节,请参见角方向

摄像机围绕其光轴转动的角度,以度作为实标量返回。使用ISO公约的旋转,与顺时针积极的角度方向时,看看在车辆的积极方向XV-轴。

有关更多细节,请参见角方向

从地面到相机焦点的垂直高度,作为世界单位(如米)的非负实标量返回。

更多关于

全部收缩

车辆坐标系统

在车辆坐标系(XV,YV,ZV)通过限定monoCamera宾语:

  • XV前锋 - 轴点从车辆。

  • YV- 轴指向左边,因为朝前时查看。

  • ZV从地面 - 轴点可达维持右手坐标系。

默认情况下,该坐标系统的原点是在道路表面上,正下方的照相机中心(摄像机的焦点)。

以获得更可靠的结果estimateMonoCameraParameters在美国,棋盘格图案必须放置在相对于这个坐标系统的精确位置。有关更多细节,请参见校准单眼相机

角方向

在的正方向看时单眼照相机传感器用途顺时针正角方向Z- , -Y- - - - - -,X分别相互重合。

介绍了R2018b