【人脸检测0】视频分解图片与图片合成视频
一,引言
目标:这小节主要通过两个demo熟悉视频分解图片与图片合成视频的OpenCV的应用
环境:python3.6+OpenCV3.3.1
二,示例
Demo1:视频分解图片
目标:
1.指定文件夹中读取视频文件
2.将视频文件分解为图片
3.将图片保存在指定文件夹中
# -*-coding:utf-8-*- #author: lyp time: 2018/8/8 # 视频分解图片 import cv2 cap = cv2.VideoCapture('E:/Envs/opencvdemo/one/1.mp4') # 获取一个视频 isOpened = cap.isOpened() # 判断当前视频是否打开 print(isOpened) fps = cap.get(cv2.CAP_PROP_FPS) # 帧率 width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取宽度 height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取高度 print(fps, width, height) i = 0 while(isOpened): if i == 10: break else: i = i+1 (flag, frame) = cap.read() # 读取每一张。 flag:是否读取成功 frame:读取内容 fileName = 'image' + str(i) + '.jpg' file = 'E:/Envs/opencvdemo/one/' + fileName # 保存到指定文件夹 print(fileName) # 如果读取成功,保存图片 if flag == True: # 质量控制:100表示质量最高 cv2.imwrite(file, frame, [cv2.IMWRITE_JPEG_QUALITY, 100]) print('end!')
Demo2:图片合成视频
目标:
1.选择指定文件夹下的图片,获取图片信息
2.将图片合成视频(Windows中只能用DIVX)
3.将视频保存在指定文件夹中
# -*-coding:utf-8-*- #author: lyp time: 2018/8/9 # 图片合成视频 import cv2 img = cv2.imread('E:/Envs/opencvdemo/one/image1.jpg') imgInfo = img.shape size = (imgInfo[1], imgInfo[0]) print(size, imgInfo) # windows下使用DIVX fourcc = cv2.VideoWriter_fourcc(*'DIVX') # 参数1:写入对象;参数2:编码器;参数3:视频size videoWrite = cv2.VideoWriter('E:/Envs/opencvdemo/one/2.avi', fourcc, 5, size) for i in range(1,11): fileName = 'image'+str(i)+'.jpg' file = 'E:/Envs/opencvdemo/one/' + fileName img = cv2.imread(file) videoWrite.write(img) print('end!')