资源简介
基于增量式SfM实现多视图三维点云重建,完整的工程文件,内含所需图片,可直接运行。环境:Win10+VS2015+OpenCV3.4+PLC1.8。
代码片段和文件信息
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
using namespace pcl;
using namespace cv::xfeatures2d;
// 提取所有图像的特征点 及 特征点处的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& points3D);
// 后续图片重建
void reconstruct(Mat& K Mat& R1 Mat& T1 Mat& R2 Mat& T2 vector& points1 vector& points2 vector& points3D);
// 获得三维点与对应的像素点
void get_objpoints_and_imgpoints(vector& matches vector& struct_indices vector& structure vector& key_points vector& object_points vector& image_points);
// 点云融合
void fusion_pointscloud(vector& matches vector& struct_indices vector& next_struct_indices vector& structure vector& next_structure vector& colors vector& next_colors);
int main(int argc char* argv[])
{
vector img_names;
img_names.push_back(“.\\images\\000.png“);
img_names.push_back(“.\\images\\001.png“);
img_names.push_back(“.\\images\\002.png“);
img_names.push_back(“.\\images\\003.png“);
img_names.push_back(“.\\images\\004.png“);
img_names.push_back(“.\\images\\005.png“);
//img_names.push_back(“.\\images\\006.png“);
//img_names.push_back(“.\\images\\007.png“);
//img_names.push_back(“.\\images\\008.pn
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-12 15:16 .vs\
目录 0 2019-03-12 15:16 .vs\SfM\
目录 0 2019-03-12 15:16 .vs\SfM\v14\
文件 75264 2019-03-12 15:15 .vs\SfM\v14\.suo
文件 1291 2019-03-04 13:13 SfM.sln
文件 52 2019-03-12 12:52 SfM.VC.VC.opendb
目录 0 2019-03-12 15:17 SfM\
目录 0 2019-03-12 15:16 SfM\images\
文件 6047052 2018-04-22 08:33 SfM\images\000.png
文件 6273917 2018-04-22 08:33 SfM\images\001.png
文件 6382709 2018-04-22 08:33 SfM\images\002.png
文件 6363282 2018-04-22 08:33 SfM\images\003.png
文件 6340215 2018-04-22 08:33 SfM\images\004.png
文件 6365922 2018-04-22 08:33 SfM\images\005.png
文件 6262661 2018-04-22 08:33 SfM\images\006.png
文件 6347685 2018-04-22 08:33 SfM\images\007.png
文件 6481233 2018-04-22 08:33 SfM\images\008.png
文件 6540372 2018-04-22 08:33 SfM\images\009.png
文件 18557 2019-03-12 14:31 SfM\MultiView_Rec.cpp
文件 4268 2019-03-03 22:01 SfM\SfM.cpp
文件 7267 2019-03-12 15:05 SfM\SfM.vcxproj
文件 971 2019-03-12 15:05 SfM\SfM.vcxproj.filters
文件 165 2019-03-05 14:02 SfM\SfM.vcxproj.user
相关资源
- 超级场景清理器(SPCleaner)v1.0免费版
- httpclient4.3工具类
- SfM稀疏三维点云重建--完整工程文件
- 全面的点云库PCL学习教程
- CPCL查看器.rar
- Linux ntpclient代码
- 点云库PCL学习教程 完整版
- 中英文PCL5语言参考手册_11086676.zip
- stm32f4+w5500+tcpclient/server源码
- PC-lint 9 + 中文手册
- FTPclinet客户端
- PCL点云库SACSegmentation用法demo
- 小兔子pcd点云数据pcl官方案例1)
- PCL5编程指南中文版
- osg显示点云
- 利用PCL,OpenCV求取点云的体积
- pcl5语言详细介绍
- httpclient-4.5.3 api 中文版
- stm32 lwip DNS DHCP ucosIII TCP Client 原创程
- HttpClient异步请求
- pcl点云模型
- HanV1.0.rar
-
OPCli
nk8 -
Opcli
nk 8.0.0 - VTK+PCL+VS2013显示一个图形的基本功能
- HttpClient实现POST GET和文件
- pcl 1.7.2(vtk6.2)+vs2013_x64 +test.pcd点云
- SFM三维重建技术
- pclint集成source insight
- 使用HttpURLConnection或HttpClient方式传j
评论
共有 条评论