指尖世界

分享的乐趣

Opencv视频转化为图片

类别: 动态 更新时间: 2017-09-14

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

#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;      }