一、OpenCv简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在 Linux、Windows、Android 和 Mac OS 操作系统上。

它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 用 C++ 语言编写,它具有 C++,Python,Java 和 MATLAB 接口,主要倾向于实时视觉应用,并在可用时利用 MMX 和 SSE 指令, 如今也提供对于 C#、Ch、Ruby,GO 的支持。

二、Windows下编译安装

笔者以前是用传统的 CMake 编译 VS2015 版本的源码,具体过程可以参考:OpenCV3.4.1+opencv_contrib编译:windows 10

现在这里选择用 Vcpkg 来编译安装,除了最开始安装配置 Vcpkg 麻烦了些,配置好后只需执行一行安装库的命令,安装好后即可直接在 VS 上调用运行了,速度非常快,当然这都建立在 “网络良好” 的情况下。

具体 Vcpkg 的安装可以参考我的另一篇博客:C++开源库 - 包管理工具Vcpkg安装使用教程

要执行的安装库命令为:

$ ./vcpkg.exe install opencv3:x64-windows

安装过程稍微有点长,因为要先安装 OpenCv 的一些依赖库,例如 libjpeg、msys、tiff 等库。

三、示例:opencv打开笔记本摄像头

#include#includeusing namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
	// 网络摄像机的rtsp url
	const char* inUrl = "rtsp://test:test123456@192.168.1.64";
	VideoCapture cam;
	namedWindow("video");

	// if(cam.open(inUrl)) // 1.打开网络摄像机的rtsp url
	if (cam.open(0)) // 2.打开本地系统摄像机
	{
		cout << "open camera success!" << endl;
	}
	else
	{
		cout << "open camera failed!" << endl;

		waitKey(1);
		return -1;
	}

	// 循环读取每帧frame,并在窗口显示
	Mat frame;
	for (;;)
	{
		cam.read(frame);
		imshow("video", frame);
		waitKey(1);
	}

	return 0;
}