在刚入门opencv的阶段,读取图片以及视频是作为初学者最需要掌握的方法。最近在上智能视频分析这门课程,通过几次实验课,发现针对不同的数据分别对应着不同的载入方式,特此开贴,记录下来,一是可以与人分享,共同进步,二是权当学习笔记记录下来,以供以后回顾。若有谬误,还望各位大佬指正,定不胜感激!!!
一.普通视频的载入方式
这个是入门级的教程,就不多说了。主要是先定义 VedioCapture 这个类,在将视频的每一帧都赋值给一张图片。对视频的处理,就是对每一帧图片循环处理,接处理后的图片显示出来。图像处理是单幅图,视频处理就是多幅图的处理。
#include #include #include using namespace cv;
using namespace std;
int main()
{
Mat img;
VideoCapture cap(0); // 打开电脑摄像头 创建 cap
//VideoCapture cap("1.avi"); // 打开 “1.avi”文件 创建cap
if (!cap.isOpened())
{
cout << "cannot open camera" << endl;
return 0;
}
while (true)
{
cap >> img; //将视视频的每一帧图片赋值给 img
///
// 可以在此处编写对 img 进行各种图像处理的代码
//
///
imshow("image", img);
char key = waitKey(30);
if (key == 27)// 按键“ESC”退出
break;
}
return 0;
}
效果图如下: