一、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 <iostream>
#include <opencv2/highgui.hpp>
using 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;
}