EmguCV相机校正函数CalibrateCamera

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);
}

   

猜你喜欢

转载自blog.csdn.net/abaqus3_0/article/details/80824397
今日推荐