自己经常需要用到,在这里记录一下
python版本 视频转图片
import cv2 as cv
import os
import glob
import numpy as np
def image2video(savepath,readpath,maxFrameout):
#todo
def video2image(savepath,readpath,maxFrameout):
# cap=cv.CaptureFromFile(readpath)
# cap=cv.CvCapture(readpath)
cap=cv.VideoCapture(readpath)
flag=cap.isOpened()
print(cap)
print(flag)
if cap==None:
return 0
if savepath==None:
savepath="./output"
os.mkdir(savepath)
print("make save dir successfuly!!")
n_frame=0
i=0
while(n_frame<maxFrameout):
ret,img=cap.read()
if ret==False:
print("\n Here to break!")
break
else:
if(n_frame%10==0):
name=savepath+"/"+str(i)+".jpg"
cv.imwrite(name,img)
i+=1
print("saved image #%d"%i,end='\r')
n_frame+=1
print(cv.__version__)
savepath='/media/images/'
readpath='/media/video/video.mp4'
maxFrameout=20000
video2image(savepath,readpath,maxFrameout)
c++版本 图片和视频互转
// ImgToVideo_test.cpp : Defines the entry point for the console application.
//
//#include "stdAfx.h"
#include "C:\Program Files (x86)\opencv\sources\include\opencv\cv.h"
#include "C:\Program Files (x86)\opencv\sources\include\opencv\highgui.h"
#include <iostream>
#include <direct.h>//for mk_dir
#include <io.h>//for _acess()
#include <string>
int recursive_mkdir(char *dir);//创建多级目录
int ImageToVideo(char* outDir,