天天看点

opencv播放视频

视频读取本质上就是读取图像,因为视频是由一帧一帧图像组成的。1秒24帧基本就能流畅的读取视频了。

①读取视频有两种方法:

A. VideoCapture cap;

cap.open(“1.avi”);

B. VideoCapture cap(“1.avi”);

②循环显示每一帧:

while(1)

{

        Mat frame; //定义Mat变量,用来存储每一帧

         cap>>frame; //读取当前帧方法一

        ​​//cap.read​​(frame); //读取当前帧方法二

        imshow(“视频显示”, frame); //显示一帧画面

        waitKey(30); //延时30ms

}

打开的视频可以是本地视频如:

VideoCapture cap(“1.avi”);

也可以是网络视频如:

VideoCapture cap(“​​http://www.laganiere.name/bike.avi“​​);

读取视频一定要加异常判断

A.打开视频失败(各种原因)

B. 取帧失败异常(程序结尾判断)

ex1:

if(!cap.isOpened()) //检查打开是否成功

return;

ex2:

cap>>frame;

if(!frame.empty()) //判断当前 帧是否为空

imshow(“video”, frame);

waitKey(30);