如果仅仅是简单的拼接,可以采用stitching.cpp就差不多了;但是如果采用stitching_detailed.cpp的话,首先要解决的就是"编译问题",而后解决的是分析不同参数下的拼接结果和匹配效果;最后是能够理解一些原理。
OK,历经一些调试,编译成功,首先看一下有哪些参数可以调整。其实光靠这个就可以写一个简单的带调整的界面了。

F:\06.项目项目\opencv拼接\imageStitching\imageStitching>imageStitching.exe
Rotation model images stitcher.

stitching_detailed img1 img2 [...imgN] [flags]

Flags:
  --preview
      Run stitching in the preview mode. Works faster than usual mode,
      but output image will have lower resolution.
  --try_gpu (yes|no)
      Try to use GPU. The default value is 'no'. All default values
      are for CPU mode.

Motion Estimation Flags:
  --work_megapix <float>
      Resolution for image registration step. The default is 0.6 Mpx.
  --features (surf|orb)
      Type of features used for images matching. The default is surf.
  --match_conf <float>
      Confidence for feature matching step. The default is 0.65 for surf and 0.3 for orb.  这个我可能会单独配置
  --conf_thresh <float>
      Threshold for two images are from the same panorama confidence.
      The default is 1.0.
  --ba (reproj|ray)
      Bundle adjustment cost function. The default is ray.
  --ba_refine_mask (mask)
      Set refinement mask for bundle adjustment. It looks like 'x_xxx',
      where 'x' means refine respective parameter and '_' means don't
      refine one, and has the following format:
      <fx><skew><ppx><aspect><ppy>. The default mask is 'xxxxx'. If bundle
      adjustment doesn't support estimation of selected parameter then
      the respective flag is ignored.
  --wave_correct (no|horiz|vert)
      Perform wave effect correction. The default is 'horiz'.
  --save_graph <file_name>
      Save matches graph represented in DOT language to <file_name> file.
      Labels description: Nm is number of matches, Ni is number of inliers,
      C is confidence.

Compositing Flags:
  --warp (plane|cylindrical|spherical|fisheye|stereographic|compressedPlaneA2B1|
compressedPlaneA1.5B1|compressedPlanePortraitA2B1|compressedPlanePortraitA1.5B1|
paniniA2B1|paniniA1.5B1|paniniPortraitA2B1|paniniPortraitA1.5B1|mercator|transve
rseMercator)
      Warp surface type. The default is 'spherical'.
  --seam_megapix <float>
      Resolution for seam estimation step. The default is 0.1 Mpx.
  --seam (no|voronoi|gc_color|gc_colorgrad)
      Seam estimation method. The default is 'gc_color'.
  --compose_megapix <float>
      Resolution for compositing step. Use -1 for original resolution.
      The default is -1.
  --expos_comp (no|gain|gain_blocks)
      Exposure compensation method. The default is 'gain_blocks'.
  --blend (no|feather|multiband)
      Blending method. The default is 'multiband'.
  --blend_strength <float>
      Blending strength from [0,100] range. The default is 5.
  --output <result_img>
      The default is 'result.jpg'.

测试图片:

第一组:
--全部默认参数,80秒,结果
--preview 约80秒,这个图片拼接的不错,但是时间太长了。

 --work_megapix <float>是用于寻找的,改为0.1后时间为30秒

 --features (surf|orb) 改成orb后速度显著提升
 --match_conf <float>也应该是数值越小匹配越快,但是失败的可能也越大。这个是不断调整参数的过程。
  --ba (reproj|ray)默认是ray,改为reproj后,速度更快!更快
然后,就是 --warp 这一块,参数比较多
plane
cylindrical
fisheye
spherical

来自为知笔记(Wiz)

目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com

opencv提供的带参数例程相关推荐

  1. 微信公众号带参数二维码的几个使用场景

    微信公众号官方开放了 "带参数二维码" 的功能,根据官网文档的描述,有如下的特点: 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口. 通过 ...

  2. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  3. MySQL 学习笔记(6)— 存储过程创建、调用、删除以及带参数的存储过程

    1. 存储过程总结 存储过程是一种存储在数据库中的程序.它可以包含多个 SQL 语句,并提供许多过程语言的功能,例如变量定义.条件控制语句.循环语句.游标以及异常处理等. 1.1 存储过程优点 实现代 ...

  4. VC下提前注入进程的一些方法2——远线程带参数

    在前一节中介绍了通过远线程不带参数的方式提前注入进程,现在介绍种远线程携带参数的方法.(转载请指明出处) 1.2 执行注入的进程需要传信息给被注入进程 因为同样采用的是远线程注入,所以大致的思路是一样 ...

  5. 解决onclick事件调用其它带参数的函数方法无效的问题

    不解以下现象: 原始版本代码:可跳过代码直接看解决方案部分.前面的文字是在解决问题时的思考. <body> <div id="div1"><form ...

  6. 微信公众号扫描带参数二维码实现自动分组?

    2019独角兽企业重金招聘Python工程师标准>>> 最近很多人都在问微信公众号扫描带参数二维码实现自动分组,通过微号帮平台操作实现,这个功能不止如此,微信二维码来源统计分析.微信 ...

  7. java带参数的构造方法_崤云说 | JAVA面向对象

    点击上面"蓝字"关注我们 今天的崤云说,是研发部的周浩宇为大家带来一篇JAVA技术分享 内容介绍 u 构造方法 1.1 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性 ...

  8. 带参数二维码如何跟踪用户来自哪个推广人员?

    运营微信公众号难免对公众号进行推广,比如每个推广人员都去推广这个公众号,然后需要统计每个推广人员到底带来了多少粉丝.公众号后台的二维码没有这个功能,开发平台接口提供带参数的二维码生成,但是需要程序员. ...

  9. 主程序与子程序不在同一程序模块中_深度解析S7200系列PLC带参数子程序用法

    一.导读 当控制要求相同或具有相同的算法时,(如对电机的控制,若需要对多台电机进行控制,且每台电机具有相同的控制方式)此时可考虑根据该控要求,编写一个功能块,然后重复调用该功能块,然后赋予不同的实参来 ...

  10. 微信公众平台----带参数二维码生成和扫描事件

    原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众 ...

最新文章

  1. 【shell 脚本】删除 由windows传入linux含有的 ^M
  2. java简单线程池实例代码
  3. 只读字符串的c语言命令,C语言只读空间 - C 语言程序设计
  4. 如何使用CloudStats监控Linux服务器
  5. leetcode19. 删除链表的倒数第 N 个结点
  6. java json帮助类_java 写一个JSON解析的工具类
  7. 没有bug队——加贝——Python 练习实例 29,30
  8. HDU1026 Ignatius and the Princess I(深度优先搜索)
  9. javascript框架比较(二)
  10. 基于阿里云ECS+ 宝塔面板(bt) + WordPress 搭建个人主页(以独立博客为例)
  11. 【干货】华为企业数字化转型之道.pdf(附下载链接)
  12. Sqlite3修复数据库
  13. Nature、Science、Cell、Plos系列顶级学术杂志解析
  14. 二行代码解决全部网页木马
  15. python空格隔开输入
  16. C# - 音乐小闹钟_BetaV1.0
  17. 企业微信自建应用获取用户信息
  18. css3和html5网站模板
  19. 2012 Tokyo Regional C. One-Dimensional Cellular Automaton 矩阵快速幂
  20. BUUCTF 九连环

热门文章

  1. 多任务应用系统构建模式
  2. bzoj1029题解
  3. 在idea中配置jetty
  4. 运行出现Server Tomcat v8.5 Server at localhost failed to start.和A child container failed during start...
  5. sed修炼系列(二):sed武功心法(info sed翻译+注解)
  6. ndoejs后台查询数据库返回的值-进行解析
  7. Javascript封装
  8. 『C#基础作业』4.类的静态成员示例
  9. 编译器错误不能找到元数据文件
  10. 推荐一款Silverlight数据列表控件----AgDataGrid