OpenCV + OpenCV Contrib安装教程(windows)_windows opencv_3.4.3 contrib-程序员宅基地

技术标签: Contrib安装  OpenCV Contrib  图像处理--Opencv  

一、OpenCV Contrib模块简介

OpenCV Contrib是OpenCV的扩展模块,包含了许多最新的以及可能还没有正式发布有待进一步完善的算法,可以理解为是OpenCV的扩展包,在OpenCV 3.0以后,SIFT、SURF等特征算法也放到了Contrib库中了,我第1次安装Contrib,是因为想要使用FLD直线检测器。

二、本文介绍的安装环境

Windows 10  +  vs2017 x64  + OpenCV3.4.3  +  OpenCV Contrib3.4.3  +  Cmake

三、安装环境下载

默认已经安装好操作系统和Visual Studio

  1. OpenCV 3.4.3 下载链接1 下载链接2 注意:下载windowsa安装包就可以了,不需要下载源码,因为安装后的目录中包含源码(当然也可以直接下载源码);
  2. OpenCV Contrib3.4.3  下载链接  注意:一定要下载与OpenCV相同版本的,否则编译时会出现错误;
  3. Cmake 下载链接 下载一个最新版本的windows安装包即可。

四、安装步骤

1、将OpenCV 3.4.3安装在windows系统中;

2、在OpenCV 3.4.3的安装目录中新建目录new_build,用于存放新编译的文件;然后将OpenCV Contrib3.4.3解压到OpenCV 3.4.3的安装目录中;

3、打开安装后的Cmake,在where is the source code中选择openCV的源代码目录:D:\opencv3.4.3\opencv\sources;在where to build the binaries中选择编译后文件存放的目录:D:\opencv3.4.3\opencv\new_build(这里选择第2步中建立的new_build目录);

4、点击configure,第1次使用会弹出对话框,选择对应的vs版本即可,其他的不用管。我的是vs2017 64位,所以我选择的是vs2017 Win64,然后点击确认,程序开始运行,运行完成后会在最下方显示configuration done;

5、在cmake搜索框中搜索OPENCV_EXTRA_MODULES_PATH,将其值选择为opencv_contrib目录中的modules目录,我的是D:\opencv3.4.3\opencv\opencv_contrib-3.4.3\modules;最后再一次点击configure,成功之后依然会在最下边显示configuration done;这时你会看到所有的红色部分都变成白色;

注意:如果这一步发生了错误,查看下是什么原因;大部分错误原因是opencv版本与opencv contrib版本不相同导致。

6、点击“Generate”,生成;

7、在new_build目录中可以看到OpenCV工程,用vs2017打开OpenCV.sln;

8、编译生成Debug库和Release库(选择编译的平台信息(Debug / Release x64));

9、在解决方案中选中工程,右键选择重新生成解决方案(可能会有几个库生成失败,如果这几个库不是你需要的,就忽略它);

10、在CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”;

11、完成编译后,可在切换至Release模式下,同样的操作再来一次。此时,install目录包含了我们需要的头文件、库文件等;

12、在vs2017项目中配置编译后的OpenCV

(1)将D:\opencv3.4.3\opencv\new_build\install\x64\vc15\bin 添加至系统环境变量Path中(可能需要重启电脑使之生效);

(2)Debug模式

包含目录

D:\opencv3.4.3\opencv\new_build\install\include;D:\opencv3.4.3\opencv\new_build\install\include\opencv;D:\opencv3.4.3\opencv\new_build\install\include\opencv2;$(IncludePath)

 

库目录

D:\opencv3.4.3\opencv\new_build\install\x64\vc15\lib;$(LibraryPath)

 

附加依赖项(每个版本中可能会有所不同,最好是使用之前仔细盘查一遍)

opencv_aruco343d.lib

opencv_bgsegm343d.lib

opencv_bioinspired343d.lib

opencv_calib3d343d.lib

opencv_ccalib343d.lib

opencv_core343d.lib

opencv_datasets343d.lib

opencv_dnn_objdetect343d.lib

opencv_dnn343d.lib

opencv_dpm343d.lib

opencv_face343d.lib

opencv_features2d343d.lib

opencv_flann343d.lib

opencv_fuzzy343d.lib

opencv_hfs343d.lib

opencv_highgui343d.lib

opencv_img_hash343d.lib

opencv_imgcodecs343d.lib

opencv_imgproc343d.lib

opencv_line_descriptor343d.lib

opencv_ml343d.lib

opencv_objdetect343d.lib

opencv_optflow343d.lib

opencv_phase_unwrapping343d.lib

opencv_photo343d.lib

opencv_plot343d.lib

opencv_reg343d.lib

opencv_rgbd343d.lib

opencv_saliency343d.lib

opencv_shape343d.lib

opencv_stereo343d.lib

opencv_structured_light343d.lib

opencv_superres343d.lib

opencv_surface_matching343d.lib

opencv_text343d.lib

opencv_tracking343d.lib

opencv_video343d.lib

opencv_videoio343d.lib

opencv_videostab343d.lib

opencv_ximgproc343d.lib

opencv_xobjdetect343d.lib

opencv_xphoto343d.lib

(3)Release模式

包含目录

D:\opencv3.4.3\opencv\new_build\install\include;D:\opencv3.4.3\opencv\new_build\install\include\opencv;D:\opencv3.4.3\opencv\new_build\install\include\opencv2;$(IncludePath)

 

库目录

D:\opencv3.4.3\opencv\new_build\install\x64\vc15\lib;$(LibraryPath)

 

附加依赖项

opencv_aruco343.lib

opencv_bgsegm343.lib

opencv_bioinspired343.lib

opencv_calib3d343.lib

opencv_ccalib343.lib

opencv_core343.lib

opencv_datasets343.lib

opencv_dnn_objdetect343.lib

opencv_dnn343.lib

opencv_dpm343.lib

opencv_face343.lib

opencv_features2d343.lib

opencv_flann343.lib

opencv_fuzzy343.lib

opencv_hfs343.lib

opencv_highgui343.lib

opencv_img_hash343.lib

opencv_imgcodecs343.lib

opencv_imgproc343.lib

opencv_line_descriptor343.lib

opencv_ml343.lib

opencv_objdetect343.lib

opencv_optflow343.lib

opencv_phase_unwrapping343.lib

opencv_photo343.lib

opencv_plot343.lib

opencv_reg343.lib

opencv_rgbd343.lib

opencv_saliency343.lib

opencv_shape343.lib

opencv_stereo343.lib

opencv_structured_light343.lib

opencv_superres343.lib

opencv_surface_matching343.lib

opencv_text343.lib

opencv_tracking343.lib

opencv_video343.lib

opencv_videoio343.lib

opencv_videostab343.lib

opencv_ximgproc343.lib

opencv_xobjdetect343.lib

opencv_xphoto343.lib

(4)接下来就可以在项目中正常使用它了;

最后

增加OpenCV Contrib模块的OpenCV像是做了升级,重新编译后的Opencv既可以使用正常的接口,也可以使用Contrib模块中的接口。

正常使用时,只需要install(D:\opencv3.4.3\opencv\new_build\install)目录就可以了,其他的内容就可以删除了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27278957/article/details/108224325

智能推荐

windows 加 switchyomega + burp 抓https包-程序员宅基地

文章浏览阅读4.6k次。很简单,下载证书后导入到受信任根目录证书下载,直接在代理状态浏览器访问burp点击CA就可以下载了 设置该证书全部信任,,switchyomega 设置如下即可 就可以抓https的包了 ...

用C语言写循环赛日程表,循环赛的方法与编排-程序员宅基地

文章浏览阅读1k次。一、循环赛的种类与特点(一)循环赛的种类循环赛又称循环法。是指参赛队(或个人,下同)之间,都要互相轮流比赛,最后按照各参赛队在全部比赛中的胜负场数、得分多少排定名次的比赛方法。它在对抗性项目比赛中经常被采用。循环赛包括单循环、双循环或分组循环三种。单循环是所有参赛队(人)相互轮赛一次;双循环是所有参赛队(人)相互轮赛二次;分组循环是参赛队(人)较多时,采用种子法,把强队(人)分散在各组,先进行小组..._c语言循环赛互打一场比赛 甲队两胜

springboot项目访问html页面,发现端口不一致&继承WebMvcConfigurationSupport类会导致自动配置失效_springboot项目前端端口号不同怎么办-程序员宅基地

文章浏览阅读1.6k次,点赞4次,收藏6次。最后的解决方法“在config--WebMvcConfig中不要继承WebMvcConfigurationSupport,而是实现WebMvcConfigurer接口”,且不要在idea中直接点击浏览器图标打开对应的html页面,要自己在浏览器输入url。在本次debug过程中,更加清楚地明白了,springboot项目启动过程中,只扫描引导类同包或子包下的程序,而在resources目录下的静态资源文件(没放到),需要被映射,才能被扫描到。_springboot项目前端端口号不同怎么办

k8s.配置管理.configmap&secret_configmap @value-程序员宅基地

文章浏览阅读80次。configmap 和secret 都需要提前创建configmap和secret都可以为pod提供挂载和变量的方式变量的方式有envfrom全部变量和valuefrom单个变量的引用configmap和secret 需要和引用的pod或者资源对象在同一个ns下。_configmap @value

System.TypeInitializationException: 'The type initializer for 'MySql.Data.MySqlClient.Replication.Re...-程序员宅基地

文章浏览阅读2.2k次。下午在调试的时候报错数据库连接就报错我就很纳闷后面用原来的代码写发现还是报错System.TypeInitializationException:'The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception.'应该是出在Mysql包上的问题..._system.typeinitializationexception:““mysql.data.mysqlclient.mysqlpoolmanag

树莓派上部署jeecg-boot快速开发平台_jeecgboot linux部署-程序员宅基地

文章浏览阅读249次。系统安装Ubuntu Server(可百度)更换软件源打开位置cd /etc/apt/编辑sources.listsudo nano sources.list使用清华的软件源镜像deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main restricted universe multiversedeb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal-updates main restricted univ_jeecgboot linux部署

随便推点

mysql中把bigint类型转换为时间格式,与hive中unix_timestamp、FROM_UNIXTIME两个函数之间的区别_bigint转日期-程序员宅基地

文章浏览阅读2w次,点赞4次,收藏15次。数据库中时间类型是这样的,13位bigInt类型的数据select date_format(FROM_UNIXTIME(列名/1000),'%Y%m%d') from xx表原理就是把13位的时间格式/1000等于时间戳,使用FROM_UNIXTIME把时间戳转换成具体的日期ps:将时间转换为时间戳select unix_timestamp('2018-08-30..._bigint转日期

exit status 5: �ܾ����ʡ� exit status 1: ���_exit status 5: exit status 1:-程序员宅基地

文章浏览阅读1.1k次。使用nvm切换node版本出现上述乱码时。使用管理员模式打开CMD就可以解决了~_exit status 5: exit status 1:

对Java和Linux的认识,Java类的认识-程序员宅基地

文章浏览阅读279次。Java使用类来构造自己的数据类型,类其实就是对一类数据和行为的数据封装;可以达到低耦合功能;Java注意啦:用类也是我们为了定义自己数据类型的一种方法,所以结构体,共用体也是一样的;都是为了处理数据而用的方法!类的存放问题: java源代码文件是以类为中心的,一个类的定义源码必须只在一个源文件实现;一个“文件名.java”文件名必须与文件中用public class 修饰的类名一致,java语法..._linux和java

快给你的Vue项目添加一个编辑图片组件吧_vue-image-editor-程序员宅基地

文章浏览阅读8.2k次,点赞20次,收藏59次。快给你的Vue项目添加一个编辑图片组件吧给大家推荐一款功能极其强大的图片编辑插件 tui.image-editor快速体验首选在你的前端项目中安装:npm i tui-image-editor// oryarn add tui-image-editor现在你就去新建一个.vue文件,复制进去下面这段代码:<template> <div id="tui-image-editor"></div></template><scr_vue-image-editor

Flutter混合开发-Null check operator used on a null value_flutter null check operator used on a null value-程序员宅基地

文章浏览阅读4.8k次。标题Flutter与Android混编在Android与Flutter混编中导入flutter的GetX框架时,配置getPages参数出错,在编译时不报错,但是运行之后,debug模式下出现红底白色的错误,错误显示为 Null check operator used on a null value,看一眼懵了,本地开发版本使用的是flutter2,配置的Getx库也确实在很早的版本中就支持了Null safety ,且配置的getPages为数组并且可为空,按照常理怎么也不可能出现这个错误!尝试的方案_flutter null check operator used on a null value

查看WIN10 SDK的版本_win10 sdk 版本好哪里查-程序员宅基地

文章浏览阅读4.4k次。查看WIN10 SDK的版本_win10 sdk 版本好哪里查