OpenCV部分API翻译--相机标定相关

持续更新中…(C++版本)


calibrateCamera

根据对标定图案拍摄的几张图片,获得相机的内参和外参。

C++原型
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容器(比如说std::vector< std::vector< cv::vec3f>>)。外层vector容器包含了与输入的照片个数相同的物点vector容器。如果每张照片都是拍摄于同一个标定图案,那么显而易见的,所有的上述这些物点都是一样的。不过有时候我们有可能使用那些拍了部分标定图案的照片,甚至不同标定图案的照片,在这种情况下,这些物点则会不同。这些点的坐标虽然是3D的,但是考虑到它们在同一坐标系中,如果标定架也是一个平面,那么通常有意义的做法是把这个模型放入一个XY坐标系平面中并且将每个物点的Z坐标设为0。

  • imagePoints
    它是一个关于标定图案物点的重投影的vector容器的vector容器(比如说std::vector< std::vector< cv::Vec2f>>)。imagePoints.size()和objectPoints.size()必须相等, imagePoints[i].size和 objectPoints[i].size()对于每个i都必须相等。

  • imageSize
    图像的尺寸,只是用来初始化相机内参矩阵。

  • cameraMatrix
    输出参数,输出一个形如cameraMatrix 的3X3的浮点型相机矩阵。如果标志位
    CV_CALIB_USE_INTRINSIC_GUESS或者CV_CALIB_FIX_ASPECT_RATIO被设立,那么fx, fy, cx, cy的部分或全部在调用这个函数之前就要被初始化。

  • distCoeffs
    输出参数,输出一个关于畸变因子distCoeffs的vector,可能有4,5或8个元素。

  • rvecs
    输出参数。输出一个旋转矩阵(详见Rodrigues()) 来评估每幅图像(类型类似std::vector< cv::Mat>)。这就是说,通过每个k阶旋转矩阵以及它相应的k阶转移矩阵(见下一个输出参数的描述),可以使相应的标定图像从模型坐标系(物点在其中被定义)转换到世界坐标系中去。也就是在第k张图像中真实的标定图案的位置。(k=0.. M-1)

  • tvecs
    输出参数。输出评估每幅图像的转移矩阵。

  • flags
    标志位。可以是0,也可以是以下几个值的组合:

    • CV_CALIB_USE_INTRINSIC_GUESS 相机矩阵包含深度优化后的fx,fy,cx,cy的初始值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值