版本号:OpenCV-4.1.1、opencv_contrib-4.1.1、Visual Studio 2015。
基于OpenCV4.1.1帮助文档内Examples的stitching_detail.cpp改编。
包括提取特征点、特征点匹配、特征点提纯、预估相机参数、全面细化相机参数、图像变换、补偿曝光器、边缘拼接器、图像融合等功能,可对两张以上的图片进行融合,得到效果很好的全景图。
运行结果:https://blog.csdn.net/GIS_feifei/article/details/102875389
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 21504 2019-11-02 18:31 quanjing_save.vsquanjing_savev14.suo
文件 19849 2019-11-02 10:36 quanjing_savequanjing_savemain.cpp
文件 7383 2019-10-26 19:59 quanjing_savequanjing_savequanjing_save.vcxproj
文件 945 2019-10-26 19:59 quanjing_savequanjing_savequanjing_save.vcxproj.filters
文件 1019286 2019-11-02 10:42 quanjing_savequanjing_save
esult.jpg
文件 4752501 2019-11-02 10:36 quanjing_savequanjing_savex64Debugmain.obj
文件 194 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.log
文件 614 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.command.1.tlog
文件 27314 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.read.1.tlog
文件 484 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.write.1.tlog
文件 1318 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tloglink.command.1.tlog
文件 3404 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tloglink.read.1.tlog
文件 470 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tloglink.write.1.tlog
文件 192 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogquanjing_save.lastbuildstate
文件 953344 2019-11-02 10:36 quanjing_savequanjing_savex64Debugvc140.idb
文件 1880064 2019-11-02 10:36 quanjing_savequanjing_savex64Debugvc140.pdb
文件 1321 2019-10-26 19:57 quanjing_savequanjing_save.sln
文件 13975552 2019-11-02 18:31 quanjing_savequanjing_save.VC.db
文件 870400 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.exe
文件 3336456 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.ilk
文件 5844992 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.pdb
目录 0 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlog
目录 0 2019-10-26 19:57 quanjing_save.vsquanjing_savev14
目录 0 2019-11-02 10:36 quanjing_savequanjing_savex64Debug
目录 0 2019-10-26 19:57 quanjing_save.vsquanjing_save
目录 0 2019-10-26 19:59 quanjing_savequanjing_savex64
目录 0 2019-11-01 19:10 quanjing_savex64Debug
...D.H. 0 2019-10-26 19:57 quanjing_save.vs
目录 0 2019-11-02 10:36 quanjing_savequanjing_save
目录 0 2019-10-26 19:59 quanjing_savex64
............此处省略4个文件信息
#include
#include
#include
#include “opencv2/opencv_modules.hpp“
#include
#include “opencv2/imgcodecs.hpp“
#include “opencv2/highgui.hpp“
#include “opencv2/stitching/detail/autocalib.hpp“
#include “opencv2/stitching/detail/blenders.hpp“
#include “opencv2/stitching/detail/timelapsers.hpp“
#include “opencv2/stitching/detail/camera.hpp“
#include “opencv2/stitching/detail/exposure_compensate.hpp“
#include “opencv2/stitching/detail/matchers.hpp“
#include “opencv2/stitching/detail/motion_estimators.hpp“
#include “opencv2/stitching/detail/seam_finders.hpp“
#include “opencv2/stitching/detail/warpers.hpp“
#include “opencv2/stitching/warpers.hpp“
#include “opencv2/xfeatures2d/nonfree.hpp“
using namespace std;
using namespace cv;
using namespace cv::detail;
// Default command line args 默认命令行参数
vector img_names;
bool preview = false;
bool try_cuda = false;
double work_megapix = 0.6;
double seam_megapix = 0.1;
double compose_megapix = -1;
float conf_thresh = 1.f;
#ifdef HAVE_OPENCV_XFEATURES2D
string features_type = “surf“;
#else
string features_type = “orb“;
#endif
string matcher_type = “homography“;
string estimator_type = “homography“;
string ba_cost_func = “ray“;
string ba_refine_mask = “xxxxx“;
bool do_wave_correct = true;
WaveCorrectKind wave_correct = detail::WAVE_CORRECT_HORIZ;
bool save_graph = false;
std::string save_graph_to;
string warp_type = “cylindrical“;
int expos_comp_type = ExposureCompensator::GAIN_BLOCKS;
int expos_comp_nr_feeds = 1;
int expos_comp_nr_filtering = 2;
int expos_comp_block_size = 32;
float match_conf = 0.3f;
string seam_find_type = “gc_color“;
int blend_type = Blender::MULTI_BAND;
int timelapse_type = Timelapser::AS_IS;
float blend_strength = 5;
string result_name = “result.jpg“;
bool timelapse = false;
int range_width = -1;
double seam_work_aspect = 1;
int main(int argc char* argv[])
{
double work_scale = 1 seam_scale = 1 compose_scale = 1;
bool is_work_scale_set = false is_seam_scale_set = false is_compose_scale_set = false;
//获取文件夹图片的路径
cv::String filepath = “C:\Users\Lenovo-Gu\Desktop\photo\*.jpg“; //!!!更改为图片所在文件夹路径!!!
glob(filepath img_names false);
size_t num_images = img_names.size();
Ptr finder = xfeatures2d::SIFT::create();
//用数组存储所有的图片以及图片的特征点、尺寸
Mat full_img img;
vector features(num_images); //声明一个初始大小为num_images的ImageFeatures
vector images(num_images); //num_images个图像组成的数组
vector full_img_sizes(num_images); //num_images个图像的尺寸组成的数组
for (int i = 0; i < num_images; ++i)
{
full_img = imread(samples::findFile(img_names[i])); //cv::samples::findFile(const cv::String & relative_path bool required = true bool silentMode = false)
full_img_sizes[i] = full_img.size();
//double work_scale = min(1.0 sqrt(0.6 * 1e6 / full_img.size().area()));
//resize(full_img img Size() work_scale work_sca
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 21504 2019-11-02 18:31 quanjing_save.vsquanjing_savev14.suo
文件 19849 2019-11-02 10:36 quanjing_savequanjing_savemain.cpp
文件 7383 2019-10-26 19:59 quanjing_savequanjing_savequanjing_save.vcxproj
文件 945 2019-10-26 19:59 quanjing_savequanjing_savequanjing_save.vcxproj.filters
文件 1019286 2019-11-02 10:42 quanjing_savequanjing_save
esult.jpg
文件 4752501 2019-11-02 10:36 quanjing_savequanjing_savex64Debugmain.obj
文件 194 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.log
文件 614 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.command.1.tlog
文件 27314 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.read.1.tlog
文件 484 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogCL.write.1.tlog
文件 1318 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogli
文件 3404 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogli
文件 470 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogli
文件 192 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlogquanjing_save.lastbuildstate
文件 953344 2019-11-02 10:36 quanjing_savequanjing_savex64Debugvc140.idb
文件 1880064 2019-11-02 10:36 quanjing_savequanjing_savex64Debugvc140.pdb
文件 1321 2019-10-26 19:57 quanjing_savequanjing_save.sln
文件 13975552 2019-11-02 18:31 quanjing_savequanjing_save.VC.db
文件 870400 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.exe
文件 3336456 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.ilk
文件 5844992 2019-11-02 10:36 quanjing_savex64Debugquanjing_save.pdb
目录 0 2019-11-02 10:36 quanjing_savequanjing_savex64Debugquanjing_save.tlog
目录 0 2019-10-26 19:57 quanjing_save.vsquanjing_savev14
目录 0 2019-11-02 10:36 quanjing_savequanjing_savex64Debug
目录 0 2019-10-26 19:57 quanjing_save.vsquanjing_save
目录 0 2019-10-26 19:59 quanjing_savequanjing_savex64
目录 0 2019-11-01 19:10 quanjing_savex64Debug
...D.H. 0 2019-10-26 19:57 quanjing_save.vs
目录 0 2019-11-02 10:36 quanjing_savequanjing_save
目录 0 2019-10-26 19:59 quanjing_savex64
............此处省略4个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)