opencv2.4.9中stitching_detailed源码环境搭建

一、序言        

        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
        中,文件夹包含的内容如下:

opencv2.4.9中stitching_detailed源码环境搭建_第1张图片 

        2.2 主函数

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

opencv2.4.9中stitching_detailed源码环境搭建_第2张图片

        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
     这样运行程序的时候就会显示出:

opencv2.4.9中stitching_detailed源码环境搭建_第3张图片

3.最终工程构建如下:

opencv2.4.9中stitching_detailed源码环境搭建_第4张图片

4.参考资料

OpenCV2.4.5 + QT4.8.4 + VS2010 环境搭建

Opencv2.4.9官方文档








你可能感兴趣的:(图像拼接,OpenCV2.4.9,stitcher类源代码,全景拼接)