opencv提供的带参数例程

简介: body { font-family: @微软雅黑; font-size: 8pt; line-height: 1.5 }html,body { color: inherit; background-color: inherit }h1 { font-size: 1.
     如果仅仅是简单的拼接,可以采用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'.

测试图片:
第一组:
img_5e3dedbead47d63b657fa37277ea7ddc.jpe img_37837edd9361b5ba2b9947a1fc66fd1a.jpe img_b6ff96c4dfc9a3d1e525af47b77c386b.jpe

--全部默认参数,80秒,结果
img_4b83f35854324e98317fb2639779020d.jpe
--preview 约80秒,这个图片拼接的不错,但是时间太长了。
img_4b83f35854324e98317fb2639779020d.jpe
  --work_megapix <float>是用于寻找的,改为0.1后时间为30秒
img_4b83f35854324e98317fb2639779020d.jpe
        --features (surf|orb) 改成orb后速度显著提升
  --match_conf <float>也应该是数值越小匹配越快,但是失败的可能也越大。这个是不断调整参数的过程。

   --ba (reproj|ray)默认是ray,改为reproj后,速度更快!更快


然后,就是   --warp  这一块,参数比较多
plane
cylindrical
fisheye
sphericalimg_4b83f35854324e98317fb2639779020d.jpe




目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com
目录
相关文章
|
2月前
|
C++ 计算机视觉 Python
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
38 0
【Py调用C++】使用使用python调用C++生成dll处理图像(OPENCV)
|
C# Python
c#调用python脚本函数_
c#调用python脚本函数_
105 0
c#调用python脚本函数_
Qt-调用CAN开发包时,显示无法找到调用函数
说先,对下错误,免得看半天发现说的不是一个东西
259 0
|
C# Python
c#调用python脚本函数
c#调用python脚本函数
195 0
c#调用python脚本函数
|
算法 计算机视觉
|
C# C++
C#调用C/C++ DLL 参数传递和回调函数的总结
原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a, int b) ...
5478 0
|
Shell 机器学习/深度学习 程序员
|
BI 计算机视觉 Linux
Lua 调用 Opencv 的方法
Lua 调用 Opencv 的方法      最近想用 Lua 调用 Opencv 进行相关像素级操作,如:bitwise_and 或者 bitwise_or,从而完成图像 IoU 的计算。   那么,怎么用 Lua 调用 Opencv 呢?   查了 Torch 的官方文档,发现只有这么几个可以调用的包:   链接: https://github.
1430 0