opencv-4.1.0 + opencv-contrib-4.1.0编译

本博文主要记录opencv编译过程中遇到的问题,能够让大家跳过这些已经踩过的坑。

1.下载opencv-4.1.0以及opencv-contrib-4.1.0源码

下载地址

 

2.CMake源码

博主使用的CMake工具的版本是3.14.4。打开CMake,路径设置如图

其中,Where is source code:路径指向下载opencv源码路径

Where to build the binaries:路径指向CMake结果的路径,一般自己新建一个目录,然后指向这个路径

OPENCV_EXTRA_MODULES_PATH:路径指向opencv_contrib-4.1.0文件下的modules路径

其中一个坑是,如果使用opencv SURF特征检测,则编译时候需要勾选OPENCV_ENABLE_NONFREE,不然编译的dll不能使用SURF,所有的nonfree的都不能使用。

configure,Generate,都没有问题的话,则点击Open Project

 

3.编译lib,dll

打开vs2015,单击生成,再弹出菜单中选择重新生成解决方案,经过漫长的等待,生成完毕。然后在CMakeTargets目录下右键单击INSTALL,在弹出菜单下->仅用于项目->仅生成INSTALL,这样在build文件夹下生成install,这里面就是最终的编译结果,包括include,bin,x64,大功告成。

 

4.测试

vs2015新建测试项目,项目属性包含目录和库目录配置如下图

因为我编辑的是64位的库所以引用以及项目都是采取x64的。

连接器->输入->附加依赖项如下

这个lib正是编译出来的所有lib,但是一个文件下很多lib不能手动一个个去复制名称吧,其实写一个python脚本可以一次性取出所有的lib名称,当然你要是取jpg文件也是同样,稍微改改进行。

#coding:utf-8

import os

def ListFile(root):
    file = open("./dll.txt",'a')
    for filename in os.listdir(root):
        if filename.endswith('.lib'):
            line = filename + '\n'
            file.write(line)

    file.close()

if __name__ == '__main__':
    root = r"D:\workstation\ExtralLib\opencv4.1-build-X64-debug\x64\vc14\lib"
    ListFile(root)

最后就上一张SURF效果图

 

最后的最后,如果不想自己编译,那么我就直接把编译的结果直接放在这边,想用的自己拿。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值