主要内容

cameraParameters

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

描述

cameraParameters对象存储相机的内在、外在和镜头畸变参数。

创建

您可以创建cameraParameters对象使用cameraParameters函数描述如下。您还可以创建一个cameraParameters对象,使用estimateCameraParameters与一个2 -numImages输入图像点数组。是每个模式中关键点坐标的数目。

描述

cameraParams= cameraParameters创建一个cameraParameters包含相机的内在、外在和镜头畸变参数的对象。

例子

cameraParams= cameraParameters(名称,值)属性cameraParameters使用一个或多个名称-值参数。未指定的属性使用默认值。

例如,cameraParams = camerparameters ("RadialDistortion",[0 10])设置径向透镜畸变属性,RadialDistortion,作为向量10 [0]

cameraParams= cameraParameters (paramStruct创建一个相同的cameraParameters对象从现有的cameraParameters对象中存储参数的paramStruct

输入参数

全部展开

相机参数,指定为相机参数结构。为了得到一个paramStruct从现有的cameraParameters对象时,使用toStruct函数。

属性

全部展开

相机内部参数:

相机固有矩阵,指定为3 × 3矩阵。矩阵的格式如下:

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

坐标[cxcy]表示光学中心(主点),单位为像素。当x- - -y-轴完全垂直,即skew参数年代=0

fxF年代x

fyF年代y

  • F以世界单位表示的焦距,通常以毫米表示。

  • 年代x而且年代y每个世界的像素数是单位吗x- - -y分别方向。

  • fx而且fy用像素表示。

此属性是只读的。

相机内部函数对象,表示为cameraIntrinsics对象。该对象包含有关相机固有校准参数的信息,包括镜头畸变。

依赖

必须提供图像大小(使用图象尺寸物业)intrinsic属性为非空。相机参数的固有值取决于图像大小。

图像大小,指定为两元素向量[mrowsncols]。

相机镜头失真:

径向畸变系数,指定为两个或三个元素矢量。当指定两个元素的向量时,对象将第三个元素设置为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-未扭曲的像素位置。x而且y都在归一化图像坐标中。归一化图像坐标由像素坐标平移到光学中心,再除以焦距(以像素为单位)得到。因此,x而且y是无量纲。

  • p1而且p2-镜头的切向畸变系数。

  • r2x2+y2

相机外部参数:

此属性是只读的。

校准模式外部,指定为aP的-元素向量rigidtform3d对象。每个对象存储有关三维旋转矩阵和摄像机平移向量的信息。

  • R各属性rigidtform3d对象描述摄像机图像平面相对于相应校准模式的三维旋转。

  • 翻译各属性rigidtform3d对象描述翻译。t相机相对于相应的校准模式,以世界单位表示。

这个方程提供了一个转换,它将棋盘框架中的世界坐标[XYZ]和对应的像点[xy]:

w x y 1 K R t X Y Z 1

  • w:任意比例因子

  • K:相机内禀矩阵

  • R:表示相机三维旋转的矩阵

  • t:相机相对于世界坐标系的平移

刚性几何变换不考虑变形。使用undistortImage功能消除失真。

此属性是只读的。

三维旋转向量,用a表示P-by-3矩阵包含P旋转向量。每个向量描述相机图像平面相对于相应校准模式的3-D旋转。矢量指定相机旋转的3-D轴,其中大小是以弧度为单位的旋转角度。的PatternExtrinsics属性指定具有相应三维旋转矩阵的几何变换对象。

预估相机参数精度:

此属性是只读的。

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

估计相机参数精度,指定为2 -P[数组]xy)坐标。(xy]坐标表示的翻译x而且y在重新投影的模式关键点和检测到的模式关键点之间。此属性的值表示估计相机参数的准确性。P用于估计相机参数的模式图像的数量。是每个图像中关键点的数量。

此属性是只读的。

重新投影到校准图像上的世界点,指定为2 -P[数组]xy)坐标。P图案和图像的数量是多少是每个图像中关键点的数量。模式检测到的关键点中缺失的点表示为[南南]。

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

摄像机参数估计设置:

用于估计相机外部参数的校准模式数,指定为整数。校准模式的数量等于平移和旋转向量的数量。

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

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

估计倾斜标志,指定为逻辑标量。当您将逻辑设置为真正的,物体估计图像轴的倾斜。当您将逻辑设置为时,像轴完全垂直。

径向畸变系数的数目,指定为数字23.

估计切向失真标志,指定为逻辑标量真正的.当您将逻辑设置为真正的,物体估计切向失真。当您将逻辑设置为时,切向畸变可以忽略不计。

例子

全部折叠

使用相机校准功能,以消除失真的图像。此示例创建一个cameraParameters对象,但在实践中,您将使用estimateCameraParameters或者是相机校准器应用程序派生对象。

创建一个cameraParameters手动对象。

K = [715.2699 0 565.6995;0 711.5281 355.3466;0 0 1];radialDistortion = [-0.3361 0.0921];cameraParams = camerparameters (“K”、钾、“RadialDistortion”radialDistortion)
cameraParams = camerparameters with properties: Camera intrinsic: [0×0 cameraIntrinsics] Camera Extrinsics PatternExtrinsics: [0×1 rigidtform3d] Accuracy of Estimation MeanReprojectionError: NaN ReprojectionErrors: [0×2 double] ReprojectedPoints: [0×2×0 double] Calibration Settings NumPatterns: 0 DetectedKeypoints: [0×2 double] WorldPoints: [0×2 double] WorldUnits: 'mm' EstimateSkew: 0 NumRadialDistortionCoefficients: 2 EstimateTangentialDistortion: 0

消除图像失真。

I = imread(fullfile(matlabroot),“工具箱”“愿景”“visiondata”“校准”“单一”“image01.jpg”));J = undistortion timage (I,cameraParams);

显示原始和未扭曲的图像。

蒙太奇({I, J})标题(原始图像(左)与修正图像(右)

图中包含一个轴对象。标题为Original Image(左)和Corrected Image(右)的坐标轴对象包含一个Image类型的对象。

参考文献

[1]张,Z。一种灵活的相机定标新技术模式分析与机器智能汇刊22日,没有。11(十一月2000):1330-34。https://doi.org/10.1109/34.888718。

[2]海克拉,J.和O.西尔文。带有隐式图像校正的四步相机校准程序在IEEE计算机学会计算机视觉与模式识别会议论文集, 1106 - 12所示。圣胡安,波多黎各:IEEE计算。Soc, 1997年。https://doi.org/10.1109/CVPR.1997.609468。

扩展功能

版本历史

在R2014a中引入

全部展开