Stereo Matching 系列笔记

本文详细介绍了相机标定的概念,重点讨论了齐次坐标在几何变换中的作用,并通过OpenCV的cv::calibrateCamera系统函数展示了相机标定的过程,包括对象点和图像点的定义、图片尺寸、相机矩阵和畸变系数的计算等关键步骤。
摘要由CSDN通过智能技术生成

Camera Calibration

Homogeneous Coordinates

  • 齐次坐标
  • 对于一个2D空间里的点
    • 笛卡尔坐标 (X,Y) ( X , Y )
    • 齐次坐标 (x,y,w) ( x , y , w )
    • X=xw,Y=yw X = x w , Y = y w
    • 两条平行直线可以相交在 (x,y,0) ( x , y , 0 )
  • 三维空间中(笛卡尔坐标)
    • 向量 v=(a,b,c) v → = ( a , b , c ) : v=ax+by+cz v → = a x → + b y → + c z →
    • v=(a,b,c) v → = ( a , b , c ) : v=ax+by+cz+O v → = a x → + b y → + c z → + O
  • 使用齐次坐标将点与向量统一
    • 向量: (a,b,c,0)×(x,y,z,O)T ( a , b , c , 0 ) × ( x → , y → , z → , O ) T
    • 点: (a,b,c,1)×(x,y,z,O)T ( a , b , c , 1 ) × ( x → , y → , z → , O ) T
    • 对于一个点, (wa,wb,wc,w) ( w a , w b , w c , w ) 也表示同一个点
  • 用矩阵表示变换
    • 平移: y=x+b y → = x → + b →

    • y1y2yn1=100001000010b1b2bn1x1x2xn1 [ y 1 y 2 ⋮ y n 1 ] = [ 1 0 ⋯ 0 b 1 0 1 ⋯ 0 b 2 ⋮ ⋮ ⋱ ⋮ ⋮ 0 0 ⋯ 1 b n 0 0 ⋯ 0 1 ] [ x 1 x 2 ⋮ x n 1 ]

A Calibrator with OpenCV

系统函数

cv::calibrateCamera
double calibrateCamera
(
    inputArrayOfArrays objectPoints,
    inputArrayofArrays imagePoints,
    Size imageSize,
    inputOutputArray cameraMatrix,
    inputOutputArray distCoeffs,
    OutputArrayOfArrays rvecs,
    OutputArrayOfArrays tvecs,
    int flags = 0,
    TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON)
)
  • objectPoints
vector< vector<Point3f> > objectPoints;

有几张黑白板的照片,外层vector就有几个元素。
内层vector存放格点。尽管是三维坐标,但因为所有的格点都在板子上,因此可以把板子放在一个XY平面上,从而使每个格子的z坐标都是0.
方便起见,常用格点所在的行和列作为拐点的坐标。

  • imagePoints
vector< vector<Point2f> > imagePoints;

存放格点在图像中的坐标。注意需满足:
objectPoints.size() == ImagePoints.size() 且 objectPoints[I].size() == imagePoints[I].size()

  • imageSize
Size imageSize;

图片的大小,image.size()即可。

  • cameraMatrix
Mat cameraMatrix;

用于输出 3×3 3 × 3 的相机矩阵 [fx000fy0cxcy1] [ f x 0 c x 0 f y c y 0 0 1 ]
注意若参数CV_CALIB_USE_INTRINSIC_GUESSCV_CALIB_FIX_ASPECT_RATIO被声明,则 fx,fy,cx,cy f x , f y , c x , c y 可能需要被预先声明。

  • distCoeffs
Mat distCoeffs;

(k1,k2,p1,p2[,k3[,k4,k5,k6]]) ( k 1 , k 2 , p 1 , p 2 [ , k 3 [ , k 4 , k 5 , k 6 ] ] ) ,输出4或5或8个元素。

  • rvecs
vector<Mat> rvecs;

对每个图像计算出的旋转矩阵

  • tvecs
vector<Mat> tvecs;

对每个图像计算出的平移矩阵(向量)。

  • flags
    这里写图片描述
    这里写图片描述
  • criteria
    迭代优化算法的终止条件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值