视频分解并保存为图片序列或者将图片序列压缩成视频是非常基本,也非常常用的两个功能,但经常碰到初学者不明白该怎么处理,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\\