视频与图片之间的相互转换 文件目录1 视频生成图片# 视频分解图片importcv2importos capturecv2.VideoCapture(1.mp4)isOpenedcapture.isOpened()# # 判断是否打开print(isOpened)# Truefpscapture.get(cv2.CAP_PROP_FPS)# 帧率widthcapture.get(cv2.CAP_PROP_FRAME_WIDTH)heightint(capture.get(cv2.CAP_PROP_FRAME_HEIGHT))print(fps,width,height)print(round(fps))# 四舍五入i0whileisOpened:ifi100:breakelse:ii1ret,framecapture.read()# 读取每一张 flag frameifnotos.path.exists(image):os.mkdir(image)filenameos.path.join(image,str(i).jpg)ifretTrue:cv2.imwrite(filename,frame,[cv2.IMWRITE_JPEG_QUALITY,100])# 设置图片格式为.jpeg或者.jpg的图片质量其值为0---100数值越大质量越高默认95print(end!)2 图片生成视频# 生成avi格式importcv2importos imgcv2.imread(image/1.jpg)videoName2.aviimgShapeimg.shape size(imgShape[1],imgShape[0])print(size)fourcccv2.VideoWriter_fourcc(M,J,P,G)videoWritecv2.VideoWriter(videoName,fourcc,5,size)# 100张图片fps为5则生成20秒的视频# videoName: 写入对象-1表示支持的编码器5表示5帧图像帧率size图片大小宽高foriinrange(100):imgNameos.path.join(image,str(i1).jpg)# 注意这个地方是i1,不然读取0.jpg不行imgcv2.imread(imgName)videoWrite.write(img)videoWrite.release()print(end!)# 生成mp4格式avi视频比mp4视频大importcv2importos imgcv2.imread(image/1.jpg)videoName2.mp4imgShapeimg.shape size(imgShape[1],imgShape[0])print(size)fourcccv2.VideoWriter_fourcc(*DIVX)videoWritecv2.VideoWriter(videoName,fourcc,5,size)foriinrange(100):imgNameos.path.join(image,str(i1).jpg)imgcv2.imread(imgName)videoWrite.write(img)videoWrite.release()print(end!)