使用openCV完成图像多聚焦融合任务

1.首先需要下载openCV。也可以同时下载openCV-contrib(包含更多算法,详见opencv_contrib安装笔记_weijifen000的博客-CSDN博客_opencv_contrib),还需要下载CMake。

2.解压openCV后,利用CMake将openCV自带的动态库编译成静态库。

通常我们的OpenCV项目在学习或研究阶段,使用动态库足矣,当OpenCV程序需要发布时,尤其是程序需要拷到没有OpenCV环境的机器上运行时,静态库文件就会比较便捷。

最后生成的exe文件就可以在没有安装openCV的机器上直接运行,非常方便。

具体的编译步骤见VS2013_CMake_opencv3.1动态库与静态库的配置与编译 - LiveZingy

关键步骤: OpenCV的源码中的CMAKE文件默认编译动态库,默认勾选BUILD_SHARED_LIBS选项,编译静态库时只需要取消该选项即可,这也是编译静态库和动态库的在设置上唯一差别。

(后续我使用的是动态库,故仍勾选了该选项;其中缺少某个CMake文件时,打开对应网址并直接保存CTRL+S(不是将网页内容保存),会自动保存成CMake文件))

划重点:强烈建议去掉BUILD_EXAMPLES,BUILD_TESTS,BUILD_PERF_TESTS这个三个选项(这三个选项默认勾选),否则静态编译的示例程序非常大。

 按照默认的CMAKELIST编译出来的项目,包含大量.lib和.dll文件,在开发opencv程序时,需要一一指定lib文件,并将所有dll复制到程序目录或设置到PATH环境变量里,非常不方便。CMake中有一个选项名为BUILD_opencv_world,默认是不勾选的,它可以把所有的组件综合到一个名为opencv_world310d.lib或opencv_world310.lib的文件中,使以后配置工程时输入此单一文件即可。

3.打开编译位置的openCV.sln,然后选择CmakeTargets里的INSTALL,右键”生成",即可以编译得到openCV的静态库,静态库的位置为“install——x86——vc14——staticlib"。

(后续我选择“生成——批生成”里的ISNTALL和ALL-INSTALL两项下32位的debug和release都审生成。在自己笔记本生成失败,查了下说是windows sdk版本低的原因,下载更新了新版本还是不行,在其他台式机上成功生成32位的动态库)

至此长舒一口气,终于和网上里的其他地方的对上了。但是其他网页上的步骤,很多没讲清楚,会让人误入歧途,浪费很多时间。

4.准备将项目代码生成静态库以供调用,使用openCV刚编译的staticlib。

4.1  将整个项目的C++和头文件放到一个文件夹下,再打开VS,”文件——新建——从现有代码创建项目“,选择静态库的编译,让最后生成的为LIB文件。

4.2  更改项目属性,”VC++目录“里的包含目录里填入”install\include"和“install\include\opencv2",库目录里添加进”install——x86——vc14——staticlib“,然后在"C/C++——代码生成”里更改“运行库”为"MTD“。

4.3  生成解决方案,就可以看到生成对应的**.lib文件。

5.调用该静态库。

5.1  新建项目,更改项目属性,按照4.1和4.2的步骤,在库目录里添加生成的lib文件的目录(建议将生成的**.lib拷贝到特定位置)

5.2  在"链接器——输入——附加依赖项“里填入staticlib库里的所有lib的全名,以及我们自己生成的**.lib名。

5.3  关键:在"C/C++——代码生成”里将运行库同样设置为MTD多线程调试。

6  生成解决方案,可以在项目里找到对应的exe文件。将调用项目里用到的资源(图片或文本)和生成的exe放在一起,拷贝到其他未安装openCV的电脑上,可以运行成功。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值