您的位置:首页 > 运维架构

OpenCV Stitching 工程搭建

2016-01-28 09:48 155 查看

 转自http://www.tuicool.com/articles/fMbUfaF

Opencv中提供Stitcher类,实现了多图像自动拼接,Opencv是开源的,程序实现的源代码都在Opencv安装文件中,以及Opencv提供的函数查询手册和Opencv教程都可以在官网上下载的到,通过这些文档和代码,我们可以很容易就对图像拼接有一个深刻的了解。所以下面,我就教大家怎么把stitcher类的实现源码以及sample的程序变成自己的,随便修改其中的功能函数,并且正常运行。

二、构建自己的stitcher

        2.1 源代码

         Opencv2.4.9版本安装之后只有两个文件夹,build和sources,build是Opencv的库,lib以及dll文件,sources就是Opencv的所有源码以及sample了,而stitcher的源码就在

H:\opencv\sources\modules\stitching

        中,文件夹包含的内容如下:


 

        2.2 主函数

        当然Opencv也提供了stitcher的应用实例,在sample\cpp文件夹中



        stitching.cpp是比较简单的封装调用,只是传输图片,在main函数中修改stitcher类的参数。stitching_detailed.cpp比较详细,介绍了所有的参数的修改,surf或者orb特征点检测,光束法平差,水平,垂直或者没有波形矫正,多种光照补偿的选择,缝隙检测,多频段拼接,输出图片的位置和名称等等。

        2.3 构建工程

        新建工程,将H:\opencv\sources\modules\stitching的文件夹中的include和src复制到工程文件夹中,将sample\cpp中的stitching_detailed.cpp也复制到工程文件夹中。

在Header Files中添加detail文件夹,将include\opencv2\stitching\detail中的.h文件加载进去。在Resource Files中将stitching_detailed.cpp以及src中的cpp也加载进去。这样调试程序会出现了2个错误,下面我们一一解决。

       1.precomp.hpp中找不到cvconfig.h

        修改办法:将程序的

#include "cvconfig.h"

        改为
#ifdef HAVE_CVCONFIG_H
#include "cvconfig.h"
#endif

      2.precomp.hpp中找不到../../imgproc/src/gcgraph.hpp
       修改办法,将程序的

#include "../../imgproc/src/gcgraph.hpp"

      改为
#include "gcgraph.hpp"

     并从
H:\opencv\sources\modules\imgproc\src

    中,将gcgraph.hpp复制到工程文件夹中,就行了。
    

     3.另外还有一个不是错误的问题,主要是为了方便程序运行时显示程序的进度

     在detail\util.hpp中,第47行,将enable_log置1.

#define ENABLE_LOG 1

     这样运行程序的时候就会显示出:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: