OpenCV3.4.0 添加contrib模块过程记录

一 准备文件

下载这些文件,可以从GitHub/Gitee很容易找到:

  • source-3.4.0.zip                                  源文件
  • opencv_3rdparty-ffmpeg-master_20171009          
  • opencv_3rdparty-ippicv-master_20170822

  • opencv_contrib-3.4.0.zip                          
  • opencv_3rdparty-contrib_face_alignment_20170818
  • opencv_3rdparty-contrib_xfeatures2d_boostdesc_20161012
  • opencv_3rdparty-contrib_xfeatures2d_vgg_20160317

二 整理目录

三 使用CMake GUI

按图填写文件目录。

直接Config按钮会出现好几个错误。

三 修复报错

上面的报错都是从Github下载文件失败造成的,这时候提前准备的文件就派上用场了。直接把下载链接改成本地文件,如图:

G:\Temp\opencv3.4.0\3rdparty\ffmpeg\ffmpeg.cmake 中的

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/"

改为本地文件

"file:///G:/Temp/opencv3.4.0/opencv_3rdparty/opencv_3rdparty-ffmpeg-master_20171009/ffmpeg/"

 

G:\Temp\opencv3.4.0\3rdparty\ffmpeg\ippicv.cmake中的

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"

改为本地文件

"file:///G:/Temp/opencv3.4.0/opencv_3rdparty/opencv_3rdparty-ippicv-master_20170822/ippicv/"

再次Config就没问题了。如果要继续安装opencv_contrib-3.4.0这部分功能,继续下面的操作。

四 安装contrib模块

搜索OPENCV_EXTRA_MODULES_PATH ,路径填入G:\Temp\opencv3.4.0\opencv_contrib-3.4.0\modules,然后点击Config按钮,又出现12个错误:

五 再次修复报错 

仔细看这12个错误出自下面三个文件:

G:\Temp\opencv3.4.0\opencv_contrib-3.4.0\modules\xfeatures2d\cmake\download_boostdesc.cmake

G:\Temp\opencv3.4.0\opencv_contrib-3.4.0\modules\xfeatures2d\cmake\download_vgg.cmake

G:\Temp\opencv3.4.0\opencv_contrib-3.4.0\modules\face\CMakeLists.txt

还是下载文件失败造成的。继续进行链接替换:

再次config,没有错误了。

然后点击Generate按钮,生成结束后点击OpenProject按钮,打开工程。

六 编译工程

分别在debug和release配置下生成。结束后将INSTALL设为启动项目,再次生成,所有库文件会被打包到build\install\x64\vc15\lib文件夹中。

此时使用快捷键Win+R打开运行框,

输入cmd打开命令行工具,

输入 G:定位到G盘,

然后输入cd  G:\Temp\opencv3.4.0\build\install\x64\vc15\lib定位到库文件目录。

然后输入dir *340.lib /b -> release.txt(注意字段之间的空格),会在当前目录下生成下面的文件release.txt文件。

输入dir *340d.lib /b -> debug.txt,会生成debug.txt文件:

 

以后就可以直接复制出来使用了。

G:\Temp\opencv3.4.0\build\install\x64\vc15\lib 这里是所有lib文件

G:\Temp\opencv3.4.0\build\install\x64\vc15\bin 这里是所有dll文件,

G:\Temp\opencv3.4.0\build\install\include 这里是所有头文件

整理所有文件到一个方便的目录,比如C:\Program Files\OpenCV

环境变量把C:\Program Files\OpenCV\bin加进去

七 测试一下

填写附加依赖项的时候刚刚生成的debug.txt和release.txt文件就有用了,直接复制。

测试成功。

#include<opencv2/opencv.hpp>
#include<opencv2/xfeatures2d/nonfree.hpp>
using namespace cv;
using namespace xfeatures2d;int main()
{SURF *srf = SURF::create();return 0;
}

如果不添加contrib模块,xfeatures2d里的功能使用不了,现在可以使用了。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15622.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

APT 参与者将恶意软件嵌入 macOS Flutter 应用程序中

发现了一些恶意软件样本&#xff0c;这些样本据信与朝鲜民主主义人民共和国 (DPRK)&#xff08;又称北朝鲜&#xff09;有关&#xff0c;这些样本使用 Flutter 构建&#xff0c;Flutter 的设计可以对恶意代码进行混淆。JTL 深入研究了恶意代码的工作原理&#xff0c;以帮助保护…

论文学习——一种基于决策变量分类的动态约束多目标进化算法

论文题目&#xff1a; A dynamic constrained multiobjective evolutionary algorithm based on decision variable classification 一种基于决策变量分类的动态约束多目标进化算法&#xff08;Yinan Guo a,b, Mingyi Huang a, Guoyu Chen a,*, Dunwei Gong c, Jing Liang d, …

基于微信小程序的高校实习管理系统设计与实现,LW+源码+讲解

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自…

【UE5】在材质Custom写函数的方法

UE材质的Custom本身会构建为函数&#xff0c;所以并不能在Custom定义函数&#xff0c;但当然还是有办法的 总结一些在custom写函数的方法 常规办法 常规办法就是使用结构体作为函数使用 以一个Lerp功能函数演示 让我们看看写法&#xff1a; struct VolBlendFunc //定义结…

Springboot如何打包部署服务器

文章目的&#xff1a;java项目打包成jar包或war包&#xff0c; 放在服务器上去运行 一、编写打包配置 1. pom.xml 在项目中的pom.xml文件里面修改<build>...</build>的代码 >> 简单打包成Jar形式&#xff0c;参考示例&#xff1a; <build><fina…

CDA LEVEL 2考试大纲

​编辑返回首页 CDA LEVELⅡ考试大纲 一、总体目标 CDA&#xff08;Certified Data Analyst&#xff09;&#xff0c;即“CDA 数据分析师”&#xff0c;是在数字经济大背景和人工智能时代趋势下&#xff0c;面向全行业的专业权威国际资格认证&#xff0c;旨在提升全球用户数…

基于STM32的智能家居系统:MQTT、AT指令、TCP\HTTP、IIC技术

一、项目概述 随着智能家居技术的不断发展&#xff0c;越来越多的家庭开始使用智能设备来提升生活质量和居住安全性。智能家居系统不仅提供了便利的生活方式&#xff0c;还能有效地监测家庭环境&#xff0c;保障家庭安全。本项目以设计一种基于STM32单片机的智能家居系统为目标…

微信小程序-prettier 格式化

一.安装prettier插件 二.配置开发者工具的设置 配置如下代码在setting.json里&#xff1a; "editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","prettier.documentSelectors": ["**/*.wxml"…

3D编辑器教程:如何实现3D模型多材质定制效果?

想要实现下图这样的产品DIY定制效果&#xff0c;该如何实现&#xff1f; 可以使用51建模网线上3D编辑器的材质替换功能&#xff0c;为产品3D模型每个部位添加多套材质贴图&#xff0c;从而让3D模型在展示时实现DIY定制效果。 具体操作流程如下&#xff1a; 第1步&#xff1a;上…

SQL集合运算

集合论是SQL语言的根基。 1 集合运算 注意事项&#xff1a; 1&#xff09;SQL能操作具有重复行的集合&#xff0c;可以通过可选项ALL来支持。 如果直接使用UNION或INTERSECT&#xff0c;结果里不会出现重复的行。如果想在结果里留下重复行&#xff0c;可以加上可选项ALL。写…

【PGCCC】Postgresql 存储设计

架构图 用户查询指定 page 的数据 首先查询该 page 是否在缓存中&#xff0c;通过 hash table 快速查找它在缓存池的位置 如果存在&#xff0c;那么从缓存池读取返回 如果不存在需要从磁盘读取数据&#xff0c;并且放入到缓存池中&#xff0c;然后返回 postgresql 存储单位 …

CTFHub每日练习

文章目录 技能树CTF Web信息泄露目录遍历PHPINFO备份文件下载网站源码bak文件vim缓存.DS_Store Git泄露Logstash index方法一方法二 密码口令弱口令 技能树 CTF Web 信息泄露 目录遍历 PHPINFO 备份文件下载 网站源码 当开发人员在线上环境中对源代码进行了备份操作&#x…

pycharm分支提交操作

一、Pycharm拉取Git远程仓库代码 1、点击VCS > Get from Version Control 2、输入git的url&#xff0c;选择自己的项目路径 3、点击Clone&#xff0c;就拉取成功了 默认签出分支为main 选择develop签出即可进行开发工作 二、创建分支&#xff08;非必要可以不使用&#xf…

SkyWalking-安装

SkyWalking-简单介绍 是一个开源的分布式追踪系统&#xff0c;用于检测、诊断和优化分布式系统的功能。 支持 ElasticSearch、H2、MySQL、PostgreSql 等数据库 基于 ElasticSearch 的情况 ElasticSearch&#xff08;ES&#xff09; 安装 1、下载并解压 https://www.elastic…

【MySQL基础刷题】总结题型(三)

十题左右&#xff0c;便于复习 1.查询结果的质量和占比2.每月交易I3.销售分析III4.只出现一次的最大数字5.买下所有产品的客户6.员工的直属部门7.指定日期的产品价格 1.查询结果的质量和占比 avg大神啊… SELECT query_name, ROUND(avg(rating / position), 2) as quality, …

PyEcharts | 通过分析奥迪车购买数据来学习柱状折线复合图像的绘制方法

柱状折线复合图像效果 实现步骤 df pd.read_csv(3汽车之家-奥迪汽车数据.csv) df.head()print(df.shape) df.info()注意所有 列字段 对应的数据类型&#xff0c;同时注意绘图所需要的汽车销售数量和价格 df1 df.copy() df1 df1[~df1[百公里油耗].str.contains(百公里电耗…

Spring Data Redis常见操作总结

我列出来的都是最常用的&#xff0c;其他的你要自己去搜搜 1. 列表类型数据 Autowired private RedisTemplate<String ,Object> redisTemplate;public void f1() {String k "key";ListOperations<String, Object> list redisTemplate.opsForList();r…

【linux】如何扩展磁盘容量(VMware虚拟机)-转载

如何扩展磁盘容量(VMware虚拟机) 一、前置准备工作 扩展虚拟机磁盘前&#xff0c;需要先把虚拟机关机才能进行扩展磁盘操作 1.选择虚拟机设置&#xff0c;如下图所示 2.输入你想扩展的磁盘容量&#xff0c;以本次实操为例&#xff0c;我这里输入的30G&#xff08;具体按照实…

本机ip地址和网络ip地址一样吗

在数字化时代的浪潮中&#xff0c;IP地址作为网络设备身份的象征&#xff0c;扮演着举足轻重的角色。然而&#xff0c;当我们谈论IP地址时&#xff0c;常常会听到“本机IP地址”与“网络IP地址”这两个术语&#xff0c;它们之间是否存在差异&#xff1f;又该如何准确理解并区分…

Cacheable注解导致线程block

优质博文&#xff1a;IT-BLOG-CN 环境&#xff1a;jdk8/tomcat7 一、问题现象 应用系统再一次发布回退时&#xff0c;cpu util突然徒增到100%以上&#xff0c;与此同时&#xff0c;服务响应时间大幅度增加&#xff0c;依赖该服务的应用接连抛出超时异常&#xff0c;发生熔断。…