C++版OpenCV学习笔记1

C++版OpenCV学习笔记1

    • 头文件
    • 读取图像
    • 读取视频
    • 摄像头

本篇博客为个人学习OpenCV的笔记(仅包含一些必要的内容,没有安装教程,一般也不贴全部的代码)。很可能存在错误,欢迎指正。内容是关于4小时上手C++版本OpenCV的视频的笔记,b站已有up进行搬运,b站的视频链接为: 视频.

头文件

<opencv2/imgcodecs.hpp>
<opencv2/highgui.hpp>
<opencv2/imgproc.hpp>  //图像处理的头文件

只需要以上三个头文件即可;当然在本节笔记中,其实没有全部用上

读取图像

注意:后续的代码默认使用了using namespace cv;

Mat img = imread(path);//path:string
imshow("Image", img);
waitKey(0);//延迟,0表示无限大

这里需要说明的是path是std::string类型,如果没有waitKey(),图像在显示后会立即关闭。waitKey()里的数值表示延迟多少ms,0表示无限大

读取视频

//使用while循环获取视频的每一帧图像
VideoCapture cap(path);
Mat img;
whie(true)
{
 cap.read(img);
 imshow("Image", img);
 waitKey(1);//延迟1ms;速度很快,可以加大数值来做延迟
 //结束时会报错,因为没有退出,读完就没有图片可以读取了
}

视频图像帧主要是通过VideoCapture来捕捉。

摄像头

//使用while循环获取视频的每一帧图像
VideoCapture cap(0);//相机id
Mat img;
whie(true)
{
 cap.read(img);
 imshow("Image", img);
 waitKey(1);//延迟1ms;这里设置1比较合理,再大就会有明显的延迟感
}

摄像头和导入视频十分相似,仅仅是在VedioCapture参数的差别,摄像头传入的是你相机的id,视频则是传入视频的地址。当然,当你的电脑存在多个摄像头的时候,获取对应的id可能会有一些复杂,这个日后有时间在进行补充了。

你可能感兴趣的:(OpenCV学习,opencv,c++)