视觉SLAM十四讲PnP问题中:opencv智能指针、solvePnP、Rodrigues

视觉SLAM十四讲PnP问题中:opencv智能指针、solvePnP、Rodrigues

  • 0、PnP问题是在已知特征点的世界坐标及其在某一相机位姿下的归一化坐标,求解相机坐标与世界坐标之间的旋转矩阵和平移向量
  • 1、智能指针Ptr
  • 2、solvePnP函数
    • 2.1用法
    • 2.2数据结构
  • 3、Rodrigues函数

0、PnP问题是在已知特征点的世界坐标及其在某一相机位姿下的归一化坐标,求解相机坐标与世界坐标之间的旋转矩阵和平移向量

1、智能指针Ptr

img_1.ptr(row/y)[column/x]
//图像img_1的智能指针,指向的数据结构为8位无符号整数,
原因:img_1的格式为CV_8UC3,即三通道,每一通道数据类型为8位无符号整数。
//智能指针适用于所有Mat类

2、solvePnP函数

2.1用法

vector pt_3;//世界坐标系下的3维坐标(前一张图片中特征点在此相机坐标系下的坐标)
vector pt_2;//像素平面坐标(后一张图片)
Mat K;//相机内参矩阵
Mat();//镜头畸变矫正系数,Mat()表示默认值0
Mat r;//solvePnP函数求出的旋转向量
Mat t;// solvePnP函数求出的平移向量
cv::solvePnP( pt_3, pt_2, K, Mat(), r, t, false, SOLVEPNP_ITRATIVE)

2.2数据结构

视觉SLAM十四讲PnP问题中:opencv智能指针、solvePnP、Rodrigues_第1张图片
视觉SLAM十四讲PnP问题中:opencv智能指针、solvePnP、Rodrigues_第2张图片
视觉SLAM十四讲PnP问题中:opencv智能指针、solvePnP、Rodrigues_第3张图片

3、Rodrigues函数

Mat R;//求出的旋转矩阵
cv::Rodrigues( r, R )//r是旋转向量

你可能感兴趣的:(SLAM)