编译opencv和opencv_contrib
起因是需要做图像匹配,但是由于是手机截屏,模板图可能与截图之后的分辨率不一样,所以不能使用opencv的模板匹配,在使用feature(特征)匹配的时候,用到了"opencv2/xfeatures2d.hpp",而这个模块是opencv扩展里面的,如果想获得需要自己编译,官方提供的安装程序只有标准版。
一
从github下载opencv和opencv_contrib
二
用cmake打开opencv的目录,点击configure,选择你需要编译的版本
比如我的是visual studio 2017 64位
三
第一次configure完成后,有几个配置选项
-
可以把python和java相关的选项去掉,因为我们要的是c++的
-
把BUILD_opencv_world打开,这样我们引入lib只需要一个就好了,不然需要添加很多个
-
设置OPENCV_EXTRA_MODULES_PATH,目录是opencv_contrib/modules
-
把OPENCV_ENABLE_NONFREE打开,因为我们需要扩展库
四
再次点击configure,等待完成,点击generate
五
打开我们的工程,开始编译
编译过程中可能遇到的问题是提示vgg_generated_120.i、boostdesc_binboost_256.i等之类的文件不存在,原因是编译脚本中有一个现在这些文件,但是由于一些原因没有下载下来,可以打开工程目录下的download_with_wget.sh或是download_with_curl.sh,查看每一个连接,手动在浏览器打开,然后保存到opencv_contrib\modules\xfeatures2d\src,再次编译就可以了。
如果你是从opencv/.cache.xfeatures2d目录下拷贝的对应的文件,有可能会报PRrows, PRcols, PRidx, PR, PJrows, PJcols, PJidx这些参数找不到的错误,undefined,那是因为你拷贝的文件是空的,没有下载成功。所以还是手动下载,然后拷贝到对应目录
六
运行ALLBUILD,这个过程比较慢,等编译结束,再运行INSTALL,如果上面配置工程的时候没有额外配置目录,默认安装在编译目录的install下。把install目录下的文件拷贝到对应位置,新建的工程引用这个目录下的类库和头文件就可以了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏