文件目录:
1 视频生成图片
# 视频分解图片importcv2importos capture=cv2.VideoCapture("1.mp4")isOpened=capture.isOpened()# # 判断是否打开print(isOpened)# Truefps=capture.get(cv2.CAP_PROP_FPS)# 帧率width=capture.get(cv2.CAP_PROP_FRAME_WIDTH)height=int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT))print(fps,width,height)print(round(fps))# 四舍五入i=0whileisOpened:ifi>=100:breakelse:i=i+1ret,frame=capture.read()# 读取每一张 flag frameifnotos.path.exists("image"):os.mkdir("image")filename=os.path.join("image",str(i)+".jpg")ifret==True:cv2.imwrite(filename,frame,[cv2.IMWRITE_JPEG_QUALITY,100])# 设置图片格式为.jpeg或者.jpg的图片质量,其值为0---100(数值越大质量越高),默认95print("end!")2 图片生成视频
# 生成avi格式importcv2importos img=cv2.imread("image/1.jpg")videoName="2.avi"imgShape=img.shape size=(imgShape[1],imgShape[0])print(size)fourcc=cv2.VideoWriter_fourcc('M','J','P','G')videoWrite=cv2.VideoWriter(videoName,fourcc,5,size)# 100张图片,fps为5,则生成20秒的视频# videoName: 写入对象;-1表示支持的编码器;5表示5帧图像(帧率);size图片大小(宽,高)foriinrange(100):imgName=os.path.join("image",str(i+1)+".jpg")# 注意这个地方是i+1,不然读取0.jpg不行img=cv2.imread(imgName)videoWrite.write(img)videoWrite.release()print("end!")# 生成mp4格式(avi视频比mp4视频大)importcv2importos img=cv2.imread("image/1.jpg")videoName="2.mp4"imgShape=img.shape size=(imgShape[1],imgShape[0])print(size)fourcc=cv2.VideoWriter_fourcc(*'DIVX')videoWrite=cv2.VideoWriter(videoName,fourcc,5,size)foriinrange(100):imgName=os.path.join("image",str(i+1)+".jpg")img=cv2.imread(imgName)videoWrite.write(img)videoWrite.release()print("end!")