• 大小: 6.26MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-12
  • 语言: 其他
  • 标签: opencv  全景拼接  c++  

资源简介

版本号: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\.vs\quanjing_save\v14\.suo

     文件      19849  2019-11-02 10:36  quanjing_save\quanjing_save\main.cpp

     文件       7383  2019-10-26 19:59  quanjing_save\quanjing_save\quanjing_save.vcxproj

     文件        945  2019-10-26 19:59  quanjing_save\quanjing_save\quanjing_save.vcxproj.filters

     文件    1019286  2019-11-02 10:42  quanjing_save\quanjing_save\result.jpg

     文件    4752501  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\main.obj

     文件        194  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.log

     文件        614  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\CL.command.1.tlog

     文件      27314  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\CL.read.1.tlog

     文件        484  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\CL.write.1.tlog

     文件       1318  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\link.command.1.tlog

     文件       3404  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\link.read.1.tlog

     文件        470  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\link.write.1.tlog

     文件        192  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog\quanjing_save.lastbuildstate

     文件     953344  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\vc140.idb

     文件    1880064  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\vc140.pdb

     文件       1321  2019-10-26 19:57  quanjing_save\quanjing_save.sln

     文件   13975552  2019-11-02 18:31  quanjing_save\quanjing_save.VC.db

     文件     870400  2019-11-02 10:36  quanjing_save\x64\Debug\quanjing_save.exe

     文件    3336456  2019-11-02 10:36  quanjing_save\x64\Debug\quanjing_save.ilk

     文件    5844992  2019-11-02 10:36  quanjing_save\x64\Debug\quanjing_save.pdb

     目录          0  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug\quanjing_save.tlog

     目录          0  2019-10-26 19:57  quanjing_save\.vs\quanjing_save\v14

     目录          0  2019-11-02 10:36  quanjing_save\quanjing_save\x64\Debug

     目录          0  2019-10-26 19:57  quanjing_save\.vs\quanjing_save

     目录          0  2019-10-26 19:59  quanjing_save\quanjing_save\x64

     目录          0  2019-11-01 19:10  quanjing_save\x64\Debug

    ...D.H.         0  2019-10-26 19:57  quanjing_save\.vs

     目录          0  2019-11-02 10:36  quanjing_save\quanjing_save

     目录          0  2019-10-26 19:59  quanjing_save\x64

............此处省略4个文件信息

评论

共有 条评论