主要内容

cameraParameters

用于存储相机参数的对象

描述

cameraParameters物体存储相机的内在,外在和镜头失真参数。

创建

你可以创建一个cameraParameters对象使用cameraParameters这里描述的功能。您也可以创建一个cameraParameters通过使用的对象估计估计与一个2 -numImages输入图像点数。是每个模式中的关键点坐标数。

描述

Cameraparams = Cameraparameters.创造一个cameraParameters包含照相机的内在、外在和镜头畸变参数的物体。

例子

Cameraparams = Cameraparameters(名称,价值)特性cameraParameters对象通过使用一个或多个名称,值对论点。未指定属性使用默认值。

cameraparams = cameraparameters(Paramstruct.)创造一个相同的cameraParameters来自现有的对象cameraParameters存储在参数中的对象Paramstruct.

输入参数

展开全部

立体参数,指定为立体参数结构。得到一个Paramstruct.来自现有cameraParameters对象,使用toStruct函数。

特性

展开全部

内在的相机参数:

投影矩阵,指定为3×3标识矩阵。该对象使用以下格式以获取矩阵格式:

( f x 0 0 年代 f y 0 c x c y 1 ]

坐标(cxcy]代表光学中心(主点),以像素为单位。当。。。的时候xy轴完全垂直,偏斜参数,年代,等于0

fx=F*年代x
fy=F*年代y
F,是世界单位的焦距,通常以毫米表示。
(年代x,年代y中每个世界单位的像素数xy方向分别。
外汇财政年度以像素为单位表示。

此属性是只读的。

相机本质对象,陈述为摄像头对象。该对象包含相机固有校准参数的信息,包括镜头畸变。

依赖性

您必须提供图像大小(使用图象尺寸财产)intrinsic属性为非空。相机参数的本质取决于图像的大小。

图像大小,指定为两元素向量[妓女,尼尔斯]。

相机镜头失真:

径向失真系数,指定为两个或三元素矢量。指定两个元素向量时,对象将第三个元素设置为0。当光线在透镜边缘处比在光学中心处弯曲更多时,就会发生径向畸变。镜头越小,失真越大。摄像机参数对象计算一个点的径向扭曲位置。你可以将扭曲的点表示为(x扭曲的,y扭曲的),如下:

x扭曲的=x(1 +k1*r2+k2*r4+k3.*r6)

y扭曲的=y(1 +k1*r2+k2*r4+k3.*r6)

x,y=未置换的像素位置
k1,k2, 和k3.=镜头的径向失真系数
r2=x2+y2
通常,两个系数足够。对于严重的扭曲,您可以包括k 3.。未置换的像素位置出现在归一化图像坐标中,具有光学中心的原点。坐标以世界单位表示。

切向失真系数,指定为双元素矢量。当透镜和图像平面不平行时发生切向失真。相机参数对象计算点的切向扭曲位置。你可以将扭曲的点表示为(x扭曲的,y扭曲的)。未置换的像素位置出现在归一化图像坐标中,具有光学中心的原点。坐标以世界单位表示。

当透镜和图像平面不平行时发生切向失真。切向失真系数模拟这种类型的失真。

扭曲的点表示为(x扭曲的,y扭曲的):

x扭曲的=x+ [2 *p1*x*y+p2*(r2+ 2 *x2)]

y扭曲的=y+ [p1*(r2+ 2 *y2)+ 2 *p2*x*y]

  • x,y- 未置换的像素位置。xy处于标准化的图像坐标。通过将识别像素坐标计算归一化图像坐标通过将光学中心转换并以像素以像素分开来计算。因此,xy是无量纲。

  • p1p2- 镜片的切向失真系数。

  • r2:x2+y2

外在的相机参数:

3-D旋转矩阵,指定为3×3逐个 -P,P模式图像的数量。每个3×3矩阵表示与相应向量相同的3-D旋转。

以下等式提供了与棋盘帧中的世界坐标相关的转换[XYZ]相应的图像点[xy]:

年代 ( x y 1 ] = ( X Y Z 1 ] ( R t ] K

R是3-D旋转矩阵。
t是翻译矢量。
K是个IntrinsicMatrix.
年代是一个标量。
该等式不考虑失真。的undistortImage函数删除失真。

3-D旋转向量,指定为aP-By-3矩阵含有P旋转矢量。每个矢量描述相机图像平面相对于相应的校准图案的3-D旋转。矢量指定围绕相机旋转的三维轴,其中幅度是弧度中的旋转角度。的轮转旋转属性提供相应的三维旋转矩阵。

摄像机翻译,指定为P-By-3矩阵。此矩阵包含平移向量P图像。矢量包含估计校准参数的校准模式。矩阵的每一行包含一个向量,它描述了相机相对于相应模式的平移,用世界单位表示。

以下等式提供了与棋盘帧中的世界坐标相关的转换[XYZ]相应的图像点[xy]:

年代 ( x y 1 ] = ( X Y Z 1 ] ( R t ] K

R是3-D旋转矩阵。
t是翻译矢量。
K是个IntrinsicMatrix.
年代是一个标量。
该等式不考虑失真。的undistortImage函数删除失真。

为确保旋转向量的个数等于平移向量的个数,设置RotationVectors翻译版构造函数中的属性。只设置一个属性而不设置其他属性会导致错误。

估计相机参数精度:

重投影点与被检测点之间的平均欧氏距离,以像素为单位指定数值。

估计相机参数的精度,指定为2 -P[xy)坐标。这 [xy的坐标表示转换xy在repeteate模式之间和检测到的模式密钥点之间。此属性的值表示估计的相机参数的准确性。P是估计相机参数的模式图像的数量。是每个图像中的关键点数。

据指定为校准图像的世界要点2 -P[xy)坐标。P是模式图像的数量和是每个图像中的关键点数。模式检测到的关键点中的缺失点表示为[南南]。

检测到校准模式中的关键点,指定为逻辑-经过-P数组中。在整个校准模式中关键点的数量是多少P指定校准图像的数量。

相机参数估计设置:

估计相机外在的校准模式的数量,指定为整数。校准模式的数量等于翻译和旋转向量的数量。

校准模式上关键点的世界坐标,指定为2数组。表示模式中关键点的数量。

世界点单位,指定为字符向量或字符串标量。值描述度量单位。

估计偏斜标志,指定为逻辑标量。当您设置逻辑到真的,对象估计图像轴偏斜。当您设置逻辑到,图像轴完全垂直。

径向失真系数的数量,指定为数字'2”或“3.”。

估计切线失真标志,指定为逻辑标量真的或者。当您设置逻辑到真的,对象估计切向失真。当您设置逻辑到,切向畸变可以忽略。

例子

全部折叠

使用相机校准功能从图像中删除失真。此示例创建一个Vision.Cameraparameters.手动对象,但在实践中,你会使用估计估计或相机校准器应用程序导出对象。

创建一个Vision.Cameraparameters.手动对象。

IntrinsicMatrix = [715.2699 0 0;0 711.5281 0;565.6995 355.3466 1];radialdistorstorrage = [-0.3361 0.0921];cameraparams = cameraparameters('IntrinsicMatrix',IntrinsicMatrix,'radialdistorrage',radialdistorational);

从图像中删除失真。

我= imread(fullfile(matlabroot,'工具箱',“愿景”,'VisionData',“校准”,“莫诺”,'image01.jpg'));j = untostortimage(i,cameraparams);

显示原始图像和未变量的图像。

图;imshowpair (imresize(0.5),我imresize (J, 0.5),“蒙太奇”);标题(原图(左)与修正图(右));

图中包含一个轴。标题为原始图像(左)和修正图像(右)的轴包含一个类型图像的对象。

参考

Zhang, Z.,“一种灵活的摄像机标定新技术”。IEEE模式分析与机器智能汇刊,卷。22,第11页,第11页,第1330-1334,2000。

[2] Heikkila,J和O. Silven。“具有隐式图像校正的四步摄像头校准程序”,IEEE计算机愿景和模式识别国际会议, 1997年。

扩展能力

在R2014A介绍