opencv中双目视觉立体重建根据的是三角形原理,在经过摄像机立体标定之后获取到单个摄像机的参数和双目系统的立体参数,根据三角形原理,我们即可实现对点云的三维重建,这里我们只介绍对单个点的三维重建。
具体见如下代码:
#include <string>
#include <opencv2\opencv.hpp>
//从.yml文件中读取摄像机参数
bool load_calibration_yml(std::string& file_name, cv::Mat& cam_k_left, cv::Mat& cam_k_right,
cv::Mat& cam_kc_left, cv::Mat& cam_kc_right, cv::Mat& R, cv::Mat& T)
{
cv::FileStorage fs(file_name, cv::FileStorage::READ);
if (!fs.isOpened())
{
return false;
}
fs["cam_K_left"] >> cam_k_left;
if (3 != cam_k_left.rows || 3 != cam_k_left.cols)
{
std::cout << "Load cam_K_left failed" << std::endl;
return false;
}
fs["cam_kc_left"] >> cam_kc_left;
if (1 != c