#include < iostream>
#include
#include
#include
#include
// #include 「extra.h」 // use this if in opencv2
using namespace std;
using namespace cv;
void find_feature_matches(
const mat &img_1, const mat &img_2,
std::vector< keypoint> &keypoints_1,
std::vector< keypoint> &keypoints_2,
std::vector< dmatch> &matches);
void pose_estimation_2d2d(
std::vector< keypoint> keypoints_1,
std::vector< keypoint> keypoints_2,
std::vector< dmatch> matches,
mat &r, mat &t);
// 畫素座標轉相機歸一化座標
point2d pixel2cam(const point2d &p, const mat &k);
int main()
return 0;
}void find_feature_matches(const mat &img_1, const mat &img_2,
std::vector< keypoint> &keypoints_1,
std::vector< keypoint> &keypoints_2,
std::vector< dmatch> &matches)
printf("-- max dist : %f \n", max_dist);
printf("-- min dist : %f \n", min_dist);
//當描述子之間的距離大於兩倍的最小距離時,即認為匹配有誤.但有時候最小距離會非常小,設定乙個經驗值30作為下限.
for (int i = 0; i < descriptors_1.rows; i++) }}
point2d pixel2cam(const point2d &p, const mat &k)
void pose_estimation_2d2d(std::vector< keypoint> keypoints_1,
std::vector< keypoint> keypoints_2,
std::vector< dmatch> matches,
mat &r, mat &t)
//-- 計算基礎矩陣f
mat fundamental_matrix;
fundamental_matrix =findfundamentalmat(points1, points2, fm_8point);//計算f
cout << "fundamental_matrix is " << endl << fundamental_matrix << endl;
//-- 計算本質矩陣e
point2d principal_point(325.1, 249.7); //相機光心, tum dataset標定值
double focal_length = 521; //相機焦距, tum dataset標定值
mat essential_matrix;
essential_matrix =findessentialmat(points1, points2, focal_length, principal_point);//計算e
cout << "essential_matrix is " << endl << essential_matrix << endl;
//-- 計算單應矩陣h
//-- 但是本例中場景不是平面,單應矩陣意義不大
mat homography_matrix;
homography_matrix =findhomography(points1, points2, ransac, 3);//計算h
cout << "homography_matrix is " << endl << homography_matrix << endl;
//-- 從本質矩陣中恢復旋轉和平移資訊.
// 此函式僅在opencv3中提供
recoverpose(essential_matrix, points1, points2, r, t, focal_length, principal_point);//根據e,返回可用解r,t
cout << "r is " << endl << r << endl;
cout << "t is " << endl << t << endl;
SLAM第6章 求解位姿變換 2D 2D
第3至5章講了3d 3d和3d 2d問題,為了全面介紹相機位姿的求解方法,本章介紹2d 2d問題。根據3d 3d和3d 2d問題的描述,就可以理解2d 2d問題 相機在兩個位置看到了同樣的3維點,即知道畫素座標,求這兩個相機的位姿關係。對極幾何有極線 極點等概念,而我們不需要這些,只需要知道空間向量...
D2D技術介紹
一 d2d技術概述 d2d device to device 通訊是由3gpp組織提出的一種在通訊系統的控制下,允許lte終端之間在沒有基礎網路設施的情況下,利用小區資源直接進行通訊的新技術。它能夠提公升通訊系統的頻譜效率,在一定程度上解決無線通訊系統頻譜資源匱乏的問題。與此同時,它還可以有效降低終...
Newcoder 128 D 最短路2(計算幾何)
description 假設排球場是個無限大的網格,即對於任意的整數z zz,都有x z x zx z和y zy z y z的直線存在,同學a a x,ay a a x,a y a ax ay 和同學b b x,by b b x,b y b bx by 站在整點座標 即ax,ay,b x,by a ...