视频的读取主要利用了OpenCV 中的VideoCapture类。并且还可以对摄像头进行调用。
VideoCapture类的中提供读入视频的方法有两种。
先实例化再初始化
VideoCapture capture;
capture.open("Sugar.avi");
在实例化的同时进行初始化
VideoCapture capture("Sugar.avi");
视频读入到VideoCapture类对象之后,紧接着可以利用一个循环对每一帧进行显示出来。
Sugar.avi同时也需要如同1.jpg那样放入到目录中。
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture("Sugar.avi");
while(1)
{
Mat frame;
capture>>frame;
imshow("读取视频", frame);
if(waitKey(60) >= 0)
break;
}
return 0;
}
运行结果如下所示:
前面在学习笔记5中写过关于Canny边缘检测,其实在视频中我们也可以加进来。代码如下:
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture("Sugar.avi");
Mat edges;
while(1)
{
Mat frame;
capture>>frame;
cvtColor(frame, edges, CV_BGR2GRAY);
blur(edges, edges, Size(7, 7));
Canny(edges, edges, 0, 30, 3);
imshow("读取视频", edges);
if(waitKey(60) >= 0)
break;
}
return 0;
}
运行结果如下所示:
关于OpenCV和图像处理以及模式识别更多的学习资料将继续更新,敬请关注本博客。
时间: 2024-10-14 00:31:08