主要内容

cameraParameters

存储摄像机参数的对象

描述

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

创建

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

描述

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

例子

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

例如,cameraParams = cameraParams ("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轴是垂直的,斜参数,年代,等于0

fxF年代x

fyF年代y

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

此属性是只读的。

相机的本征对象,表述为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对象。每个对象存储关于3-D旋转矩阵和相机平移向量的信息。

  • R财产的rigidtform3d对象描述相机图像平面相对于相应标定模式的3-D旋转。

  • 翻译财产的rigidtform3d对象描述转换t相机相对于相应的校准模式,用世界单位表示。

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

年代 x y 1 K R t X Y Z 1

R为三维旋转矩阵。
t是平移向量。
K是相机的内禀矩阵。
年代是一个标量。
刚性几何变换不考虑变形。使用undistortImage功能去除失真。

此属性是只读的。

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

估计相机参数精度:

此属性是只读的。

重投影点与被探测点之间的平均欧氏距离,用像素值表示。

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

此属性是只读的。

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

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

摄像头参数估计设置:

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

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

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

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

径向畸变系数数,指定为2”或“3.”。

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

例子

全部折叠

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

创建一个cameraParameters手动对象。

K = [715.2699 0 565.6995;0 711.5281 - 355.3466;0 0 1);radialDistortion = [-0.3361 0.0921];cameraParams = cameraParameters (“K”、钾、“RadialDistortion”radialDistortion)
cameraParams = cameraparparameters具有属性:Camera intrinsic intrinsic: [0×0 cameraIntrinsics] Camera Extrinsics PatternExtrinsics: [0×1 rigidtform3d]估算精度MeanReprojectionError: NaN ReprojectionErrors: [0×2 double] ReprojectedPoints: [0×2×0 double]校准设置NumPatterns: 0 DetectedKeypoints: [0×2 double] WorldPoints: [0×2 double] WorldUnits: 'mm' EstimateSkew: 0 NumRadialDistortionCoefficients: 2 EstimateTangentialDistortion: 0

消除图像失真。

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

显示原始和未失真的图像。

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

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

参考文献

[1]张,Z。一种灵活的摄像机标定新技术。模式分析与机器智能汇刊22日,没有。11(2000年11月):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

全部展开

Baidu
map