Opencv视频转化为图片

来源:互联网 发布:centos 7安装snmp服务 编辑:程序博客网 时间:2024/05/18 00:53

这里把视频的一部分剪切出来,同时保存为图片和视频格式。通常是先把视频放一面,记下剪切段儿的帧数,再处理。
注意代码中视频的名字,像素及剪切的帧数等需要自己更改。
源码:

#include <opencv2\opencv.hpp>  #include <cstdio>using namespace cv;  int main( )  {      //【1】读入视频    VideoCapture capture("pickup_donuts.avi");    VideoWriter writer("pickup_donuts_cut.avi", CV_FOURCC('M', 'J', 'P', 'G'), 30, Size(1024, 576));//注意此处尺寸要与实际相符    //【2】循环显示每一帧    int i = 0;    char name[20];    while(1)      {          Mat frame;//定义一个Mat变量,用于存储每一帧的图像        capture>>frame;  //读取当前帧        i++;        //若视频播放完成,退出循环        if (frame.empty())        {            break;        }        if (i>1250 && i < 10800)//剪切其中一段        {            sprintf(name, "output\\%d.jpg", i);//输出到上级目录的output文件夹下            imwrite(name,frame);//输出一张jpg图片到工程目录下            sprintf(name, "%d", i);            putText( frame, name, Point(0, 20), FONT_HERSHEY_SIMPLEX,                0.6, Scalar(0,255,0));            imshow("读取视频",frame);  //显示当前帧            writer << frame;            waitKey(30);  //延时30ms        }       }      return 0;     }  
0 0