您的位置:

相机内参矩阵详解

一、相机内参矩阵几阶

相机内参矩阵是一个3x3的矩阵,也被称为相机内参(intrinsic)矩阵。

二、相机内参数矩阵

相机内参矩阵包含了相机内部的所有参数,包括焦距、像素宽高、主点(也称为光心)。它可以表示成如下形式:

kx  0  px
0   ky py
0   0  1

其中,kx和ky分别表示像素宽度和高度方向上的焦距,px和py表示主点在像素坐标系下的坐标。

三、相机内参矩阵含义

相机内参矩阵是描述相机内部参数的一种重要工具。相机内参矩阵中,各个元素含义如下:

  • kx和ky:相机在相应方向上的内部焦距,表示相机成像的精度。
  • px和py:表示相机成像的主点在像素坐标系上的坐标,通常是图像中心点。
  • 1:表示相机的焦距单位为像素。

四、相机内参矩阵 焦距

相机内参矩阵中的焦距kx和ky,表示相机在水平和竖直方向的焦距大小。焦距越大,成像越清晰,图像越大。焦距的单位是像素。

代码示例:

float kx = internal_mat.at(0,0);    // 获取相机内参矩阵中的焦距kx
float ky = internal_mat.at(1,1);    // 获取相机内参矩阵中的焦距ky

五、相机内参矩阵K

相机内参矩阵K也被称为相机的内参矩阵。它包含了相机的各个内参,如焦距、主点坐标等。它的具体表示形式见上文中的相机内参矩阵。

代码示例:

cv::Mat internal_mat;    // 定义相机内参矩阵
...
cv::Mat K = cv::Mat::eye(3, 3, CV_64F);    // 初始化相机的内参矩阵为单位矩阵
K.at(0, 0) = internal_mat.at(0, 0);    // 将相机内参矩阵中的焦距赋值给K矩阵
K.at
   (1, 1) = internal_mat.at(1, 1);
K.at
    (0, 2) = internal_mat.at(0, 2);    // 将相机内参矩阵中的主点坐标赋值给K矩阵
K.at
     (1, 2) = internal_mat.at(1, 2);

     
    
   
  

六、相机内参矩阵k

相机内参矩阵中的畸变系数矩阵k是用来纠正图像畸变的。它包含了5或8个参数,分别是k1、k2、p1、p2、k3和k4、k5、k6。其中,k3、k4、k5和k6是在5个参数的基础上增加的四个参数。

畸变系数矩阵k的作用是纠正径向畸变和切向畸变。径向畸变是指图像中物体越靠近边缘,成像就会越发生变形,常见于鱼眼镜头。切向畸变是指图像中垂直于主光轴的位置上发生的变形。

代码示例:

float k1 = dist_coeffs.at(0, 0);    // 获取相机内参矩阵中的畸变系数k1
float k2 = dist_coeffs.at
   (1, 0);    // 获取相机内参矩阵中的畸变系数k2
float p1 = dist_coeffs.at
    (2, 0);    // 获取相机内参矩阵中的畸变系数p1
float p2 = dist_coeffs.at
     (3, 0);    // 获取相机内参矩阵中的畸变系数p2
float k3 = dist_coeffs.at
      (4, 0);    // 获取相机内参矩阵中的畸变系数k3(如果是八个参数的话)
float k4 = dist_coeffs.at
       
        (5, 0); // 获取相机内参矩阵中的畸变系数k4(如果是八个参数的话) float k5 = dist_coeffs.at
        
         (6, 0); // 获取相机内参矩阵中的畸变系数k5(如果是八个参数的话) float k6 = dist_coeffs.at
         
          (7, 0); // 获取相机内参矩阵中的畸变系数k6(如果是八个参数的话)
         
        
       
      
     
    
   
  

七、相机内参矩阵的逆

相机内参矩阵的逆矩阵也非常重要,因为其可以用来将像素坐标系下的坐标转换到相机坐标系下。

代码示例:

cv::Mat K_inv = K.inv();    // 将相机内参矩阵K求逆

八、相机内参矩阵参数

相机内参矩阵包含了相机的各个内部参数。因此,很多计算机视觉应用中都需要用到它。比如,在三维重建和位姿估计中,需要用相机内参矩阵来计算相机的外参矩阵。

九、相机内参矩阵图解

下图展示了相机内参矩阵的几何意义:

十、相机的内参有哪些选取

相机内部的参数包括焦距、像素宽高、主点等。它们都是通过相机校准的方法得到的,这些参数也被称为相机的内参。相机的内部参数是固定的,一旦确定后不再改变。

在实际应用中,我们可以使用相机校准板、平面、三维物体等来获取相机的内参,具体内容可以参考OpenCV的相关文档。