一、前言(吐槽+煽情+简介)
1.吐槽
为啥这个时候我要发这个呢?其实我是想以后有空的时候再发,因为最近事情比较多,但是,昨天发生了一件非常悲伤的事情,电脑电池炸了,电脑电池炸了,电脑电池炸了。
不由得安慰自己:天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其生,行拂乱其所为,所以动心忍性,增益其所不能。
2.煽情
在这里,我还是要感谢一下一个人,一个我生命中最重要的男人,他对自己“小气”了一辈子,出去工作,舍不得乱花一分钱,但他还是会倾其所有来满足我,他说,这个时候,你要好好学习,不要因为别的扰乱你自己,如果有用,再买一个。对,这个人就是我的爸爸。父爱如山,我以后也会成为一个父亲,所以,首先我要做一个好儿子,好好努力,让父母为我而骄傲。
所以,如果你看了我的博客,我希望你不仅能学到知识,更希望你能知道,你有这个好的机会来学习,总会有人在你背后默默付出,你要努力,为了自己,也要为了在你背后默默付出的人。
最后一句煽情:爸爸,我爱你。
3.简介
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby的支持。
我在学习的时候,所有免费的文档,文章,都是关于2.4.9的,最开始想过用2.4.9,后来自己买了教程,用的是3.1.0,所以自己也用了3.1.0。
最近几年人工智能突然火了,机器学习,深度学习更是遍地开花,神经网络更是为人们所熟知。所以从3.3.0版本的opencv开始支持神经网络。如果要学习神经网络,建议用3.3.0以上的,但是最好不要用最新的,这个最新不是说最高的,而是说,假如2018年5.19号刚刚发布,你今天就要用,可能网上都没有相关教程,特别是opencv2.0版本和3.0版本有些是不一样的,api名字都不一样,万一最新版有改版,或者不支持你的编译环境,作为初学者,你遇到问题,解决方案都找不到,除非你身边有大牛。当然你如果是一个相关领域的大牛,可以选用最新版,感受一下新版的各方面特性,这个官网也应该会有相关的文档的,最为大牛的你,这个问题对你来说,不是问题。
还有就是本文不讲vs2015的安装与配置,因为vs2015不是一个简简单单的库,你需要根据自己的需要去选择一些功能。这里就不再赘述了。
二、相关文件下载
vs2015:百度会有很多下载位置,自由选择。这里就不再提供啦。
opencv3.1.0:https://download.csdn.net/download/shuiyixin/10426142。
opencv安装
双击opencv3.1.0打开,选择安装目录,记住,一定要养成一个习惯:能不安装在C盘就不要安装在C盘。如果电脑有很多盘,最好有一个盘是放安装软件和安装包的,想做一个程序员,一定要让自己的文件归类清晰一点。一般会有如下的文件夹和文件。
三、配置变量环境
这一步的步骤顺序如下,然后大家看图就好了:
【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。
在路径配置中填写 ”…… opencv\build\x64\vc14\bin”,很多人发现,X64中有两个文件夹:
VC12和VC14,很多人不明白这个是什么意思?这个其实是VS对应的版本号。详细的对应如下:
Visual Studio 6 | vc6 |
Visual Studio 2003 | vc7 |
Visual Studio 2005 | vc8 |
Visual Studio 2008 | vc9 |
Visual Studio 2010 | vc10 |
Visual Studio 2012 | vc11 |
Visual Studio 2013 | vc12 |
Visual Studio 2015 | vc14 |
所以如果你是2013的也可以啦。因为3.1.0下面有VC12。支持VS2013。
四、配置2015
1.VC++下的包含与库目录
新建一个c++项目,在项目名称右键选择属性。进入下面这个界面,我们首先需要配置包含目录和库目录
在右侧点击,进入编辑。
然后按照下面的框框,从上往下点,将目录复制到框里保存,一共保存三个:
“...\opencv\build\include”; “...\opencv\build\include\opencv”; “...\opencv\build\include\opencv2”
用同样的方式在库目录中添加“...\opencv\build\x64\vc14\lib”。
2.链接器下的配置
在链接器下的输入中,打开附加依赖项,并输入:
opencv_world310.lib;opencv_world310d.lib;
注意点
理论上,所有的工作就做完了,然后就可以调试运行啦。大家可以复制如下源代码。注意imread()函数是读取图片,括号里面是“路径+图片名称”。并且要用正斜杠,或者两个反斜杠。如果用一个反斜杠,会被认为是转义字符的前缀。
五、测试源码及问题解决
#define INPUT_TITLE "input image"
#include
#include
using namespace std;
using namespace cv;
int main() {
Mat src;
src = imread("E:/image/src.jpg");
if (!src.data)
{
cout << "ERROR : could not load image.";
return -1;
}
namedWindow(INPUT_TITLE, CV_WINDOW_AUTOSIZE);
imshow(INPUT_TITLE, src);
waitKey(0);
return 0;
}
然后,报错了。这个是因为你不是在C盘安装的,程序找不到该文件。解决方案如下:
将bin目录(...\OpenCV\build\x64\vc12\bin)中的3个dll文件复制在(C:\Windows\System32)或者(C:\Windows\SysWOW64)中。
解决了这个问题,就能正确输出啦。
六、输出效果图
如果大家有什么问题,有什么别的解决不了的问题,可以在下方留言哦!