一、原理
上一步通过对极几何约束估计了相机运动得到R、t;
接下来,需要用相机的运动估计特征点的空间位置。
三角测量:通过在两处观察同一个点的夹角,从而确定该点的距离。
通过最小二乘法求解。
s1*x1=s2*R*x2+t;
已知R和t,分别求s1和s2;
s1*x1^*x1=0=s2*x1^*R*x2+x1^*t;
二、代码详解
1、主框架
int main(int argc, char** argv)
{
Mat img_1 = imread("1.png");
Mat img_2 = imread("2.png");
vector<KeyPoint> keypoints_1, keypoints_2;
vector<DMatch> matches;
//1. 求特征点(keypoints)和描述子之间匹配(matches)
find_feature_matches(img_1, img_2, keypoints_1, keypoints_2, matches);
cout << "一共找到了" << matches.size() << "组匹配点" << endl;
//2. 估计两张图像间运动R t
Mat R, t;
pose_estimation_2d2d(k