图像处理(一) 视频更改帧的大小后转存成视频
在使用原始视频数据时候,有可能因为视频数据太大,导致计算量比较大,所以在使用时常常将每帧数据进行缩放再保存成视频文件使用。
代码如下:
-- coding: utf-8 --
```python
"""
Created on Thu Nov 21 20:09:53 2019
videoTovideo
@author: Administrator
"""
import cv2
import math
print(cv2.__version__)
video = cv2.VideoCapture('F:/project/2019/RelD/keras-yolo3-master/1.mp4')
numFrames = video.get(cv2.CAP_PROP_FRAME_COUNT)
fps = math.floor(video.get(cv2.CAP_PROP_FPS)) #保存视频的帧率
print("fps:", fps)
H = math.floor(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
W = math.floor(video.get(cv2.CAP_PROP_FRAME_WIDTH))
size = (math.floor(W/6),math.floor(H/6)) #保存视频的图片大小
print(numFrames)
start = int(numFrames*0.45)
end = int(numFrames*0.5)
print(start , end)
videoWriter =cv2.VideoWriter('video2.avi',cv2.VideoWriter_fourcc('X','V','I','D'), fps, size)
i = 0
suc = video.isOpened() # 是否成功打开
while suc:
success,frame = video.read()
if success:
i += 1
if(i>=start and i <= end): #取指定区间的帧
print('i = ',i)
frame = cv2.resize(frame,size)
videoWriter.write(frame)
else:
print('recycle')
break
videoWriter.release()
video.release()
print('movie frames: ', i)