主要内容

cameraParameters

对象,用于存储摄像机参数

描述

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

创建

你可以创建一个cameraParameters对象使用cameraParameters这里描述的函数。您还可以创建cameraParameters对象的estimateCameraParameters与一个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

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

此属性是只读的。

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

依赖性

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

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

镜头畸变:

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

x扭曲的x(1 +k1r2+k2r4+k3.r6

y扭曲的y(1 +k1r2+k2r4+k3.r6

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

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

当透镜和像面不平行时,就会发生切向畸变。切向畸变系数模型这种类型的畸变。

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

x扭曲的x+ (2 *p1xy+p2*(r2+ 2 *x2)]

y扭曲的y+ [p1*(r2+ 2 *y2)+ 2 *p2xy

  • xy- 未置换的像素位置。xy都在标准化的图像坐标中。归一化图像坐标由像素坐标平移到光学中心,再除以以像素为单位的焦距计算出来。因此,xy是无量纲。

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

  • r2x2+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旋转。矢量指定围绕相机旋转的三维轴,其中幅度是弧度中的旋转角度。的RotationMatrices属性提供相应的三维旋转矩阵。

摄像机翻译,指定为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.对象,但在实践中,您将使用estimateCameraParameters或Camera Calibrator应用程序来导出物体。

创建一个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,“RadialDistortion”, radialDistortion);

从图像中删除失真。

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

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

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

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

参考文献

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

[2]海克拉,J,和o Silven。一种带有隐式图像校正的四步摄像机标定程序,计算机视觉与模式识别国际会议, 1997年。

扩展能力

在R2014A介绍