一、OpenCV概念
OpenCV是什么?
OpenCV 是一个开源的计算机视觉库,可以从 http://opencv.org 获取。
OpenCV 库用C语言和 C++ 语言编写,可以在 Windows、Linux、Mac OS X 等系统运行。同时也在积极开发 Python、Java、Matlab 以及其他一些语言的接口,将库导入安卓和 iOS 中为移动设备开发应用。
什么是计算机视觉?
计算机视觉这种技术可以将静止图像或视频数据转换为一种决策或新的表示。所有这样的转换都是为了完成某种特定的目的而进行的。
输入数据可能包含一些场景信息,例如“相机是搭载在一辆车上的”或者“雷达发现了一米之外有一个目标”。一个新的表示,意思是将彩色图像转换为黑白图像,或者从一个图像序列中消除相机运动所产生的影响。
二、OpenCV模块及组成结构
具体参考:http://c.biancheng.net/view/1101.html
三、OpenCV下载与安装——in Visual Stdio 2019
1.进入官网下载OpenCV库
官网地址: https://opencv.org/releases/ 下载最新的4.2.0版本
2.解压安装包
双击exe文件解压压缩包
目录可以找一个专门用来存放OpenCV项目的文件夹
3.配置环境变量
在桌面图标[此电脑]右键->属性->高级系统设置->环境变量->系统变量(S)->Path->编辑
在系统变量 Path 下新建如下环境变量
E:\Programing Project\OpenCV\opencv\build\x64\vc15\bin
(将opencv中bin文件夹添加到环境变量里)
4.新建一个OpenCVtest项目,并且设置为 设置为 Debug x64 模式
5.添加属性表
在Debug|x64中新建名为“OpenCV420Debug”的属性表,在Release |x64中新建名为“OpenCV420Release”的属性表
6.配置属性表
6.1 配置“包含目录”
添加路径:
E:\Programing Project\OpenCV\opencv\build\include
E:\Programing Project\OpenCV\opencv\build\include\opencv2
6.2 配置“库目录”
在库目录中添加路径:
E:\Programing Project\OpenCV\opencv\build\x64\vc15\lib
6.3 配置“附加依赖项”
添加此项:opencv_world420d.lib(Release版添加opencv_world420.lib)
7.测试运行
输入下列代码,并测试运行:
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
String imageName("HappyFish.jpg"); // by default
if (argc > 1)
imageName = argv[1];
Mat image = imread(samples::findFile(imageName), IMREAD_COLOR); // Read the file
if (image.empty()) { // Check for invalid input
cout << "Could not open or find the image" << endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
imshow("Display window", image); // Show our image inside it.
waitKey(0); // Wait for a keystroke in the window
return 0;
}
在项目根目录下放置HappyFilsh.jpg
出现图片即为成功
8.解答疑问
是否每次新建项目都需要配置属性表?
不需要,有两种方法可以使用
方法1. 将此项目作为一个模板,以后新建项目都将此项目复制,在此基础上进行编辑。
方法2. 此项目创建好之后,会在项目根目录下形成“OpenCV420Debug.props”文件,将此文件复制出来,放到一个固定目录下,以后新建项目在属性表里选择“添加现有属性表”,导入该文件即可。
【注:**环境变量(environmentvariables)**是操作系统设定的运行环境的参数,当操作系统运行程序时,如果没有给出程序的完整路径,在当前文件夹有找不到该程序时,系统会按照环境变量给出的路径查找程序。环境变量分为系统变量和用户变量,相当于global和local variable,系统变量所有用户公用,用户变量仅限当前用户使用】 ↩
【注:包含目录,库目录,附加依赖项。 包含目录是指在include头文件(.h)时查找的目录,库目录是寻找.lib文件的目录,.lib文件是C++头文件中的函数的实现的.cpp,.cc,.c文件打包而成,附加依赖项就是这些lib库,包含着函数的具体实现,如果库目录错误,会提示link error:找不到某lib,而附加依赖项错误,会提示link error:未定义的函数】 ↩