全景拼接_多张图像拼接(stitching_detailed)


版本号: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
资源截图
代码片段和文件信息
#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.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个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)