OpenCV读取视频内容写入图片帧

现在主要把自己平时用到的opencv功能记录到博客,一方面方便自己有时间来回顾,另一方便提供给大家一个参考。

opencv 读取视频内容,把视频帧每一帧写成图片,存入电脑中。这个步骤是许多数据处理的基础。在写入图片的时候,按照图片数量进行编号和命名,统一名称长度,为了在进行批处理时,不改变图片的顺序。

 1 /*输入视频的路径*/
 2 /*输出路径暂时写入外面的临时文件夹,自己可以灵活修改*/
 3 
 4 void ParseVideo2Images(std::string &strVideo)
 5 {
 6     cv::VideoCapture videoCap(strVideo.c_str());
 7 
 8     cv::Mat imgFrame;
 9 
10     char cImg[20];
11     int iIndex = 1;
13     /*逐条读取视频数据,写入文件*/
15     while (videoCap.read(imgFrame))
16     {
17         sprintf(cImg , "%s%d%s", "0000000" , iIndex++ , ".jpg");
18 
19         std::string strName(cImg);
20         //std::cout << strName << std::endl;
21 
22         /*进行名称的截取,截取名称的后10位,变为00001.jpg*/
24         std::string str = strName.substr(strName.size()-10);
26         /*输出路径设定*/
27         strName = "..//HD_images//" + str;
29         //std::cout << strName << std::endl;
30         //std::cout << str << std::endl;
32         cv::imwrite(strName,imgFrame);
33 
34     }
35 
36 }        

 

posted @ 2018-01-30 15:10  好吃的布克  阅读(578)  评论(0编辑  收藏  举报