EmguCV相机校正函数CalibrateCamera

本文详细介绍使用CalibrateCamera函数进行相机畸变校正的方法,包括输入参数如图像尺寸、三维坐标点等,并介绍了如何创建及初始化相机内参矩阵、畸变矩阵、旋转矩阵和平移矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CalibrateCamera函数校正相机畸变,输入三个图像参数,可得到相机内参矩阵(CameraMatrix),畸变矩阵(distortionCoeffs),旋转(rotationMatrix)和平移矩阵(translationMatrix),具体函数如下

CalibrateCamera(

MCvPoint3D32f[][] objectPoints,      // 空间三维坐标点

PointF[][] imagePoints,                     // 平面二维坐标点

Size imageSize,                                  // 图像尺寸

IInputoutputArray  cameraMatrix,    // 相机内参数

IInputoutputArray  distortionCoeffs,// 相机畸变系数

CalibTpye calibrationType,                // 标定标志

MCvTermCriteria termCriteria,          // 迭代终止条件

out Mat[] rotationVectors,                 // 旋转向量

out Mat[] translationVectors)             // 平移向量

 objectPoints和imagePoints每幅图像都要实例化:

imageCount:图像的数量,Npoint:每幅图像点的数量
for( int i=0; i<imageCount;i++)
{
objectPoints[i]=new MCvPoint3D32f[Npoint];
imagePoints[i]=new PointF[Npoint];
}

创建相机矩阵Matrix<double> cameraMatrix =new Matrix<double>(3,3,DepthyType.32s,1);  // 保存相机参数[fx 0 cx; 0 fy cy; 0 0 1]

创建相机畸变矩阵Matrix<double> distortionMatrix =new Matrix<double>(1,4,DepthyType.32s,1);  //保存四个畸变系数 [k1, k2, p1, p2]

每幅图像都有旋转矩阵和平移矩阵

Mat[] rotation =new Mat[imagecunt];

Mat[] translation=new Mat[imagecunt];

每个矩阵都要实例化:

for(int i =0;i<imagecount;i++)
{
  rotation[i]=new Mat(3,3);
  translation[i]=new Mat(3,3);
}

 

   

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值