OpenCV
是一个计算机视觉库,它提供了很多图像处理、机器学习等通用的算法,而且提供了 C++
, Python
, Ruby
等语言的接口。我们可以在 官网 上查看你想知道的信息。现在最新版本为 3.2.0,用过之后才感觉 OpenCV
的强大啊。
环境搭建
很多人想用 OpenCV
,但或许就栽到了环境搭建这第一步了,但我觉得现在这个版本搭建起来还是挺方便的,在官网上有各种系统和编译器的搭建指导(点这里)。我使用的是 Windows + VS2017,所以在接下来的系列文章中,没有特殊说明,我使用的都是 C++
接口。环境搭建主要参考了 这篇教程 和 这篇教程。
首先我们可以在 RELEASES 页面下载最新的版本,我下载的是 Win pack。下载完成后,我们打开它解压到一个目录:
比如我解压到 H:\
,那么在 H:\
目录下就会有个 opencv
文件夹,我们打开它可以看到里面有一个 build
文件夹,里面是已经构建好的各种东西。build
文件夹里面的 include\opencv2
就是 OpenCV
的各种头文件。还有个 x64\vc14
,这是给 vs2015
(或以上)在 x64
平台上使用的各种东西(.dll
,.lib
文件等),我们会注意到,有一些文件非常相似,就是结尾有没有 d
的差别,如 opencv_world320.lib
和 opencv_world320d.lib
,要注意,以 d
结尾的,是给 Debug
模式使用的,没有 d
结尾的则是给 Release
模式使用的,要注意这个区别,下面会用到。
接下来就是配置环境变量,可以参考 这个部分 和 这个部分,当然如果你不想看,我可以简单的告诉你要做的事情:
先添加一个环境变量指定到
OpenCV
的目录
这里不一定要按上面教程上的来,例如我是添加了一个OpencvDir
变量,值为H:\opencv\build
,为什么要加这个环境变量呢?其实也可以用绝对路径,添加这个环境变量的目的是当你opencv
这个目录路径变化时,不用全部与之相关的东西都要改,只需要改这个环境变量的值就可以了。把
opencv\build\bin
路径加入到系统的Path
中
这是因为要使用到里面的动态库(.dll
文件)。如果运行提示缺少.dll
,就要去看看这个环境变量有没有设置正确了。配置
vs
项目属性
打开vs
,新建一个项目,我们先把解决方案配置为Debug|x64
。要使用opencv
,简单来说就是要解决两件事:
- 告诉编译器在哪里找到
opencv
库 - 告诉链接器在哪里找到
opencv
库里面各种函数与数据结构的原型
具体要做的有三件事:
打开项目属性,在C/C++
->常规(General)
选项卡中,编辑附加包含目录(Additional Include Directories)
,加入opencv\build\include
这个目录,对应我自己的环境变量,我就加入$(OpencvDir)\include
。
打开链接器(Linker)
->常规(General)
选项卡,编辑附加库目录(Additional Library Directories)
,加入opencv\build\x64\vc14\lib
这个目录,对应我自己的环境变量,我加入的是$(OpencvDir)\x64\vc14\lib
。
打开链接器(Linker)
->输入(Input)
选项卡,编辑附加依赖项(Additional Dependencies)
,然后把x64\vc14\lib
里面的opencv_world320d.lib
这个文件加入进去,因为我们配置的是Debug
模式,就加入对应的这个.lib
文件。
至此,OpenCV
在 vs
上的环境算是搭建好啦!有一些需要注意的点:
※ 哪个模式就添加哪个模式对应的 .lib
文件,Debug 模式就要添加 opencv_world320d.lib
的。改了模式就要把上述的重新配置一遍。
※ 如果在打开 vs
的时候去修改了环境变量,vs
不会自动更新,需要重启 vs
。
使用 OpenCV
我们马上来运行一个简单的例子吧:显示图片。
首先,找一张图片放到跟 main()
函数同级的目录下,然后输入以下这段代码:
按下 Ctrl + F5 运行,成功后你就能看到这样的画面啦!
学习 OpenCV
刚搭建好环境,我就把 Tutorials 里的 Image Processing 部分基本都跑了遍,包括平滑处理、形态变换、二值化、加边框等等,还是挺好玩,也挺好奇的。
耐心探索,OpenCV
还有非常多强大的功能,我主要会通过以下三个网站学习:
- 官方网站:http://opencv.org/
OpenCV
中文网:http://www.opencv.org.cn/CSDN
OpenCV
知识库:http://lib.csdn.net/base/opencv
可以开始尽情的玩耍啦 o( ̄▽ ̄)ブ