视频到图片序列,图片序列到视频(代码)

来源:互联网 发布:乐乎城市青年社区 亦庄 编辑:程序博客网 时间:2024/05/21 07:06

视频分解并保存为图片序列或者将图片序列压缩成视频是非常基本,也非常常用的两个功能,但经常碰到初学者不明白该怎么处理,well,这里给出代码,其余不解释;


void Video2Pic(){cv::VideoCapture vc;bool flag = vc.open("G:\\20140524\\S1050003.MP4");if (!flag){printf("video file open error \n");system("pause");exit(-1);}int frmCount = vc.get(CV_CAP_PROP_FRAME_COUNT);frmCount -= 5;//个别视频读取到末尾几帧时可能会出错char str[256];for (int i=0; i<frmCount; i++){printf("%d/%d \n", i+1, frmCount);cv::Mat img;vc>>img;memset(str, '\0', 256*sizeof(char));sprintf(str, "./img/%08d.jpg", i);cv::imwrite(str, img);}}void Pic2Video(){cv::VideoWriter vw;vw.open("result.avi", CV_FOURCC('X','V','I','D'), 25, cv::Size(1280,720));std::vector<std::string> files;ReadDirectory("C:\\Users\\Administrator\\Desktop\\img", ".jpg", files);for (int i=0; i<files.size(); i++){printf("%d/%d \n", i, files.size());cv::Mat img = cv::imread(files[i]);if (img.empty()){printf("img load error, fileName: %s \n", files[i].c_str());system("pause");exit(-1);}vw<<img;}}


2 0
原创粉丝点击