首先简单介绍一下opencv,OpenCV (Open Source Computer Vision Library) 开放计算机视觉代码库,实现了图像处理和计算机视觉方面的很多通用算法. 它有C++, Python和Java的接口,支持Windows, Linux, Mac OS, iOS 以及Android系统。
本系列教程以C++为例,对一些基础的函数和算法进行讲解。所演示的图片源自百度,部分代码是按照CSDN上的代码进行了简单的标识符替换等修改。如有侵权,可以删除。
第一部分就是环境的配置和安装了。作为C++的程序员,想必很多人都是用的Visual Studio进行代码的编写的。如果没有的推荐安装一个,学生版的是免费的。本文及以后示例的代码开发环境均为windows10+Visual Studio2017+Opencv3.4.3。VS的下载方法就不在此介绍了,opencv的下载连接在这里opencv下载网页。可以根据情况下载不同的版本,因为本人目前只是学生,从简单角度考虑,建议下载win包。当然有能力的同学可以自己下载源代码进行编译。opencv3.0之后的版本支持VC14和VC15,也就是VS2015和VS2017,因此建议没有安装VS的同学安装新版本的VS。win下的exe下载完成之后,选择位置来解压,解压完成就可以使用了。
首先,新建一个空项目,在VS的起始页里直接点击“新建项目”下的“空项目”就好。
配置好项目名称和位置之后就可以了。
下面是关键的地方,首先右击项目名称,如下图。
点击“属性”,或者建立好项目之后,直接按快捷键“Alt+Enter”,进入属性页面。注意上方的平台和配置,平台一定要选择x64(因为opencv3.0之后的版本只支持64位机),而配置可以选择“活动”或者“Release”,选择活动平台就是“活动x64”,选择Debug或Release,平台就选择“x64”。点击“VC++目录”点击右侧向下的箭头,选择“包含目录”
会弹出如下的对话框,再点击红色圈里的文件夹图标。
在空白处会出现一行空格,点击右边的“...”,选择头文件的目录。注意目录为解压的opencv的目录下的build文件夹....完成这一步就可以使用opencv的头文件了。
下一步是要将链接文件包含到工程里。注意此时的包含目录是已经包含相应目录的。
引用库目录的方法与上面的相同,只是要引用的目录有区别。在下图的红色圈中圈了出来。注意VC版本与VS的版本对应关系。VC15对应VS2017,14对应VS2015。
最后一步,点击属性栏的“链接器”,选择“输入”选项,输入“opencv_world343d.lib”。opencv_world之后的数字是版本号,我用的是3.4.3所以是343,d表示“debug”,如果选择“Release”,则无需加“d”。
此时,新建源文件,在解决方案资源管理器的一栏中,右击“源文件”,选择“添加”,“新建项”,填入源文件名即可。由于本次会读取图像,因此需要将图像文件放入源文件的文件夹中(和.cpp文件在同一个文件夹);或者在项目的资源文件中添加图像文件。输入以下代码:
#include<iostream>
#include<core/core.hpp>
#include<highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("E:\\c++\\openglLearning\\resource\\wood.png");//若图像文件和.cpp文件在同一个文件夹下
//直接输入文件名wood.png即可。
if (!image.data)
{
cout << "read image file fail !" << endl;
return 0;
}
cout << "size" << image.size().height << "," << image.size().width << endl;
namedWindow("Original Image");
imshow("Original Image", image);
waitKey(0);
return 0;
}
如果include哪里下面有曲线,一定要看下Debug右边是x86还是x64,如果是x86要改成x64。结果如下