在目标检测领域,经常碰到将视频转换成图像序列,或者将图像序列转成视频。下面一段代码可实现此类功能。废话不多说,直接上代码
void Video2Pic()
{
cv::VideoCapture vc;
bool flag = vc.open("D:\\1.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::Siz