![c59e0e00f3446a1ae3ed8064de20f7a3.png](https://img-blog.csdnimg.cn/img_convert/c59e0e00f3446a1ae3ed8064de20f7a3.png)
时间为友,记录点滴。
作为一名不务正业的程序员,怎么可能拿过来就用OpenCV的一堆眼花缭乱的功能呢?当然是先read the fucking source code,以及搞清楚这堆代码是怎么生成可以使用的lib的呢?
(先友情提示一下,最好全部路径都不要出现中文。)
一、下载源码
当然是github下载最新源码了。
opencv/opencvgithub.com![65ab93dc902aa49b133e3f282bee7f39.png](https://img-blog.csdnimg.cn/img_convert/65ab93dc902aa49b133e3f282bee7f39.png)
想当年第一次了解OpenCV的时候还是3.0,现在一不小心,已经4.1.1了。相较于3.0有什么重要更新呢?
1) 更新代码支持 c++11 特性,需要兼容 c++11 语法的编译器
![474a0f3c52a9182b336280b347203e15.png](https://img-blog.csdnimg.cn/img_convert/474a0f3c52a9182b336280b347203e15.png)
2)增加 dnn 中的模块功能,新加了 Vulkan API 程序接口
![efdeccdaf15d8eb88649dbbeaaf0e23c.png](https://img-blog.csdnimg.cn/img_convert/efdeccdaf15d8eb88649dbbeaaf0e23c.png)
![f6672c0c4a0463e9bb086c1b704e0ba7.png](https://img-blog.csdnimg.cn/img_convert/f6672c0c4a0463e9bb086c1b704e0ba7.png)
3)集成了完整的 QR 码识别功能
![294a6f5ae01349cd0755b2df56279868.png](https://img-blog.csdnimg.cn/img_convert/294a6f5ae01349cd0755b2df56279868.png)
4) 新加的 opencv_gapi 模块opencv/opencvgithub.com
![bb2398c83183cf63cd28a17e71cd0d14.png](https://img-blog.csdnimg.cn/img_convert/bb2398c83183cf63cd28a17e71cd0d14.png)
5) 整体速度的提升
![773921190c6c981e54b4554a1ae3bfe9.png](https://img-blog.csdnimg.cn/img_convert/773921190c6c981e54b4554a1ae3bfe9.png)
6) 增加流行的 Kinect 融合算法
![a15c02520a4a4c4fa61b1f48f8d7ec43.png](https://img-blog.csdnimg.cn/img_convert/a15c02520a4a4c4fa61b1f48f8d7ec43.png)
7) DIS 稠密光流检测算法从 opencv_contrib 模块移到 opencv video 模块
![4ff3d91f134dda78b8144d32ecf5f5ac.png](https://img-blog.csdnimg.cn/img_convert/4ff3d91f134dda78b8144d32ecf5f5ac.png)
二、下载安装CMAKE
啥是CMAKE?就是跨平台的编译工具。从哪里下?点我。
Download | CMakecmake.org写这篇文章的时候,最新的CMake版本是3.14.5,我们这个系列用的是Windows 64,就找Windows 64版本 download。
cmake-3.14.5-win64-x64.msigithub.com![c75b0635e5fe6b961f64d6c7099d28bc.png](https://img-blog.csdnimg.cn/img_convert/c75b0635e5fe6b961f64d6c7099d28bc.png)
安装完成后,可以在环境变量中看到有增加C:Program FilesCMakebin路径(如果你选择了增加Path到环境变量中)
![1667f5495aaf7566d117eb69bcd25a7a.png](https://img-blog.csdnimg.cn/img_convert/1667f5495aaf7566d117eb69bcd25a7a.png)
三、编译
OpenCV和CMake都是开源的,但是我们这里先按住自己的小好奇,记住我们的首要任务是把OpenCV用CMake编译出来。
- 运行cmake
运行cmake-gui,如果没设置快捷图标,可以在cmake的安装目录C:Program FilesCMakebin找到cmake-gui.exe源文件。
![dfbc8f83b591b6fe9dc6cecea9323133.png](https://img-blog.csdnimg.cn/img_convert/dfbc8f83b591b6fe9dc6cecea9323133.png)
- 配置
选择好source和bin的路径后,就可以点击左下角的Configure了,弹出来的按钮,我选择的是下面:
![7f76eabd1b490e03dfeb76a6bad12125.png](https://img-blog.csdnimg.cn/img_convert/7f76eabd1b490e03dfeb76a6bad12125.png)
![43f29306caf0d65ce09665f0e4fa11ed.png](https://img-blog.csdnimg.cn/img_convert/43f29306caf0d65ce09665f0e4fa11ed.png)
一般来说第一次配置都会出现下面的情况,一片红(A股要是一直都这样就好了)。不要紧,再点一遍Configure就好了,直到完全没有红色。
![b939cd39859fd3c13c0b9a83e52b809a.png](https://img-blog.csdnimg.cn/img_convert/b939cd39859fd3c13c0b9a83e52b809a.png)
![8f0d51a733f7a04fcbfd645f52d4040b.png](https://img-blog.csdnimg.cn/img_convert/8f0d51a733f7a04fcbfd645f52d4040b.png)
- Generate
到了这一步,点击Generate就可以啦。
![f7b01e4de944cdc7602afb009d62873f.png](https://img-blog.csdnimg.cn/img_convert/f7b01e4de944cdc7602afb009d62873f.png)
四、编译
先看看我们上一步在配置中都有什么输出,在build的目录下面一定多了好多文件,找到OpenCV.sln文件。双击打开就可以了(需要关联了VS先)
直接F5,运行:
我的结果如下:编译84个项目,全部成功,但是执行失败。其实执行失败很正常,因为我们要编译出来的是bin文件,又不是exe文件。
![2c7c99444667f9f736f9ff2bfb4d017d.png](https://img-blog.csdnimg.cn/img_convert/2c7c99444667f9f736f9ff2bfb4d017d.png)
可以搜索dll文件。
![38385a4ccbb1d22526bc899df86bb1d9.png](https://img-blog.csdnimg.cn/img_convert/38385a4ccbb1d22526bc899df86bb1d9.png)
大功告成啦,我们可以用我们生成的这些文件,在以后的例子中,替换掉官方默认release的库。