资源简介
使用BA优化对SfM三维重建的结果进行非线性优化,环境:VS2015+OpenCV3.4+PCL1.8+Ceres Solver,包含两张图、多张图BA优化代码及images文件。
代码片段和文件信息
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#define GLOG_NO_ABBREVIATED_SEVERITIES
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “gflags/gflags.h“
#include “glog/logging.h“
using namespace std;
using namespace cv;
using namespace pcl;
using namespace cv::xfeatures2d;
// 代价函数
struct ReprojectCost
{
cv::Point2d observation;
ReprojectCost(cv::Point2d& observation) : observation(observation)
{
}
// 参数:内参、外参、三维点、反向投影误差
template
bool operator()(const T* const intrinsic const T* const extrinsic const T* const pos3d T* residuals) const
{
const T* r = extrinsic;
const T* t = &extrinsic[3];
T pos_proj[3];
ceres::AngleAxisRotatePoint(r pos3d pos_proj);
// Apply the camera translation
pos_proj[0] += t[0];
pos_proj[1] += t[1];
pos_proj[2] += t[2];
const T x = pos_proj[0] / pos_proj[2];
const T y = pos_proj[1] / pos_proj[2];
const T fx = intrinsic[0];
const T fy = intrinsic[1];
const T cx = intrinsic[2];
const T cy = intrinsic[3];
// Apply intrinsic
const T u = fx * x + cx;
const T v = fy * y + cy;
residuals[0] = u - T(observation.x);
residuals[1] = v - T(observation.y);
return true;
}
};
// 提取所有图像的特征点 及 特征点处的RGB
void extract_features(vector& image_names vector>& keypoints_for_all vector& descriptor_for_all vector>& colors_for_all);
// ratio & symmetry test
void ratioTest(vector> &matches vector &goodMatches);
void symmetryTest(const vector& matches1 const vector& matches2 vector& symMatches);
// 匹配所有特征点
void match_features(vector& descriptor_for_all vector>& matches_for_all);
// 由匹配对提取特征点对
void get_matched_points(vector keypoints1vector keypoints2vector goodMatchesvector& points1vector& points2);
// 获取匹配点的RGB
void get_matched_colors(vector& color1 vector& color2 vector matches vector& out_c1 vector& out_c2);
// 剔除p1中mask值为0的元素
void maskout_points(vector& p1 Mat& mask);
void maskout_colors(vector& p1 Mat& mask);
// 重建前2张图片
void reconstruct_first2imgs(Mat K vector>& key_points_for_all vector>& colors_for_all vector>& matches_for_all vector& structure vector>& correspond_struct_idx vector& colors vector& rotations vector& translations);
// 三维重建
// 前两张图片重建
void reconstruct(Mat& K vector& points1 vector& points2 Mat& R Mat& t Mat& mask vector& poi
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 23063 2019-03-15 13:43 BA_MultiView_Rec.cpp
文件 13219 2019-03-15 13:42 BA_Signle2Images.cpp
目录 0 2019-03-15 13:48 images\
文件 6047052 2018-04-22 08:33 images\000.png
文件 6273917 2018-04-22 08:33 images\001.png
文件 6382709 2018-04-22 08:33 images\002.png
文件 6363282 2018-04-22 08:33 images\003.png
文件 6340215 2018-04-22 08:33 images\004.png
文件 6365922 2018-04-22 08:33 images\005.png
文件 6262661 2018-04-22 08:33 images\006.png
文件 6347685 2018-04-22 08:33 images\007.png
文件 6481233 2018-04-22 08:33 images\008.png
文件 6540372 2018-04-22 08:33 images\009.png
- 上一篇:无线AP网络测试工具
- 下一篇:erlang_win_64位安装包
相关资源
- Indentification of Interface Blocker to the LA
-
Temporal-ba
sed Multi-Strokes Sketchy Graphi - Bandicam注册机
- bandicam 4.2.1.1454
-
如何更改Syba
se数据库 -
Syba
se 12.5各版本新功能完全展示 - IBM SAN 数据网关解决方案助力Summit B
- NetApp NetCache助HypoVereinsbank实现安全快
- Simulation of Active Heave Compensation System
- BA8206BA4遥控风扇控制器的新应用
- FM立体声发射器———采用
- 采用BA1404的调频立体声发射器
- TC58NC6690-SSS6692-B4-Toshiba(东芝) 量产
- 内建 连音线 的 简谱字体 (SimpMusic
- QLogic扩大在整个FC HBA市场的领先优势
-
Hollow fibre ba
sed Liquid-liquid-liquid mic - springboot+mybatis整合实现注册登录
- 基于web的图书馆运营系统
- network science Albert-László Barabási
- Bioleaching of chalcopyrite and marmatite by m
- Investigation of the Lower Resistance Meridian
- Sun SE 9900帮助eBay降低总拥有成本
- 初学Visual Basic 2010代码
-
An improved momentum exchanged-ba
sed immers - 钢骨-钢管混凝土组合柱的纯弯力学性
- BATOCERA游戏系统整合包.zip
- delphi 自定义消息窗口和进度条窗口,
- AzkabanAPI接口文档汇总
- INBarcodeOCR条码识别组件,识别率及速
-
A web-ba
sed interview platform with geospat
评论
共有 条评论