一、下载安装cmake

想要在Windows平台下生成OpenCV的解决方案,我们需要一个名为cmake的开源软件,可以在camke的官网:http://www.cmake.org/上下载到

或者点击此链接进行下载http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe

下载完成直接运行安装就行。

二、使用cmake生成OpenCV源代码工程的解决方案

在进行opencv_contrib模块添加时,一定要保证opencv和opencv_contrib的版本一致,要不然会失败!!!!!!!!

在进行opencv_contrib模块添加时,一定要保证opencv和opencv_contrib的版本一致,要不然会失败!!!!!!!!

在进行opencv_contrib模块添加时,一定要保证opencv和opencv_contrib的版本一致,要不然会失败!!!!!!!!

OpenCV: https://github.com/Itseez/opencv 
Extra Modules: https://github.com/Itseez/opencv_contrib

2.1、下载完OpenCV和opencv_contrib模块后进行解压,记得解压路径不要有中文。

2.2、运行cmake

2.3、source code选择opencv路径,下面选择一个空的文件夹。

where is the source code:放源代码,路径如图。 
where to build the binaries:生成的代码放置位置,路径如图。 
2.4、然后点击“configure”按钮,弹出以下窗口,选择你对应的vs版本,然后点击“finish”就开始生成了。

2.4、往opencv中添加opencv_contrib模块,找到OPENCV_EXTRA_MODULES_PATH,后面添加路径D:\opencv3\source\opencv_contrib\modules,精确到\modules。然后继续configure,一次之后如果还有红色的块,继续configure,知道全部变白为止。 
然后点击Generate,回提示Generate Done。恭喜,完成了一半!!!

三、编译OpenCV源代码

在D:\opencv3\build下找到OPENCV.sln,打开,找到CMakeTargets下的INSTALL,在Debug和Release下分别右键生成即可。 
 
编译需要比较长的时间,我编译Debug和Release花了一个多小时。然后你就可以在D:\opencv3\build\install下看到 

四、使用opencv环境配置 
1、首先设置环境变量,如下设置系统变量,命名为OPENCV_DIR,路径为D:\opencv3\build\install\x86\vc12,然后设置用户路径: 
新建->PATH(变量名),变量值为%OPENCV_DIR%\bin。 
PS:更简单的方法,直接设置绝对路径,新建PATH,然后路径里面放D:\opencv3\build\install\x86\vc12\bin。之所以采用以上的方法是如果以后更新opencv版本的话,不用重新配置。 
2、配置opencv工程属性 
找到属性管理器 

打开后如图 
 
双击图中Microsoft.Cpp.Win32.use进行配置。 

可执行文件目录:D:\opencv3\build\install\x86\vc12\bin 
包含目录: 
D:\opencv3\build\install\include 
D:\opencv3\build\install\include\opencv 
D:\opencv3\build\install\include\opencv2 
库文件目录:D:\opencv3\build\install\x86\vc12\lib 
然后是附加依赖项: 

opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dnn320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_optflow320d.lib
opencv_phase_unwrapping320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_stitching320d.lib
opencv_structured_light320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_tracking320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xfeatures2d320d.lib
opencv_ximgproc320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib

点击应用,确定,然后就大功告成了!!!!

opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块的更多相关文章

  1. OpenCV 第二课 认识图像的存储结构

    OpenCV 第二课 认识图像的存储结构 Mat Mat 类包含两部分,矩阵头和矩阵体.矩阵头包含矩阵的大小,存储方式和矩阵体存储空间的指针.因此,Mat中矩阵头的大小是固定的,矩阵体大小是不定的. ...

  2. cmake编译opencv指南

    目录 cmake编译opencv指南 用包管理器安装 查看opencv相关的包 执行安装 编译安装 为什么编译安装 下载源码 编译脚本 执行编译脚本.解决3rdparty下载 编译后的设定-环境变量 ...

  3. OpenCV.3.4.6_VS2015&cmake编译x86版本的bin&lib

    ZC:<<OpenCV3编程入门>> 的 2.2.2 中也有该内容的讲解 1.参考网址:opencv3.3.0+vs2015+cmake编译opencv x86 - wowo的 ...

  4. CMake编译OpenCV

    使用CMake来编译OpenCV,以匹配自己使用的VS版本. 主要有两步: CMake编译OpenCV源码得到OpenCV.sln工程文件. VS编译OpenCV.sln. 以最新的cmake-3.1 ...

  5. cmake编译opencv时指定cuda版本

    之前有网友提问说,基于cmake编译时如果切换cuda版本,比如我同时装了cuda8和cuda9,opencv总是找到cuda9,我想用cuda8怎么办?实际上,手头上要配置的工程是基于opencv3 ...

  6. OpenCV - Windows(win10)编译opencv + opencv_contrib

    在之前的几篇文章中,我提到了在Android.Linux中编译opencv + opencv_contrib,这篇文章主要讲在Windows中编译opencv + opencv_contrib. 首先 ...

  7. opencv学习_15 (利用cmake查看opencv的源码)

    当我们有时想查看opencv自带的函数的源代码,比如函数cvCreateImage, 此时我们选中cvCreateImage, 点击鼠标右键->转到定义,我们会很惊讶的发现为什么只看到了cvCr ...

  8. 编译nginx平滑添加stream模块

    1.操作背景 操作系统版本:CentOS Linux release (Core) nginx版本:1.13.4 nginx从1.9.0版本开始,新增了ngx_stream_core_module模块 ...

  9. ubuntu下cmake编译opencv 3.4.3源码;

    在进行编译前,准备工作: 1)  到opencv官网下载源码(https://opencv.org/releases.html): 2)  安装qt(http://download.qt.io/); ...

随机推荐

  1. ECS Windows系统使用自带监视器查看IIS并发连接数

    问题现象 ECS Windows系统如何查看IIS并发连接数? 解决方案 1.运行-->输入“perfmon.msc” . 2.在“系统监视器”图表区域里点击右键,然后点“添加计数器”. 3.在 ...

  2. javascript——屏蔽右键快捷菜单

    JS: function menufalse(){ return false; } document.oncontextmenu = menufalse; //禁用快捷菜单 Jquery: $(&qu ...

  3. java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory报错springmvc

    转自:https://blog.csdn.net/qq_41879385/article/details/82892555 下面是错误信息:java.lang.ClassNotFoundExcepti ...

  4. C语言学习笔记--内存分区

    1. 程序中的栈 1.1 栈的简介 (1)栈中现代计算机程序里最为重要的概念之一 (2)栈在程序中用于维护函数调用上下文 (3)函数中的参数和局部变量存储在栈上 (4)栈保存了一个函数调用所需的维护信 ...

  5. mahout in Action研读(1)-给用户推荐图书

    1.mahout in Action2.2第一个例子   Running a first recommender engine   数据: 第一个数字是用户ID 第二个是书的ID,第三个是用户对书的评 ...

  6. getParameter的用法及含义

    equest.getparameter用来获取页面输入框输入的数据例如:jsp页面学员账户:<input type="text" name="username&qu ...

  7. spring配置c3p0连接池

  8. memset,memcpy,strcpy的使用与区别

    1.memset 原型:   extern void *memset(void *buffer, int c, int count); 功能:   把buffer所指内存区域的前count个字节设置成 ...

  9. JavaScript的作用域与闭包

    JavaScript的作用域以函数为界,不同的函数拥有相对独立的作用域.函数内部可以声明和访问全局变量,也可以声明局部变量(使用var关键字,函数的参数也是局部变量),但函数外部无法访问内部的局部变量 ...

  10. Angular22 HttpClient的使用

    1 HttpClient介绍 HttpClient时Http的演进,注意:Http在@angular/http中,而HttpClient在@angular/common/http中: 使用前需要在模块 ...