OpenCV-Python 视频截取+修改帧率

    最近几天一直在处理铁路铁轨检测和行人检测的部分,对视频截取使用比较多,Adobe Premiere用起来比较麻烦,还得每次都渲染,索性就直接使用OpenCV来进行处理。

    OpenCV可以按照帧来进行视频的截取操作。代码如下:

'''
Designed By Zander

2019.3.19
'''
import cv2
videoCapture = cv2.VideoCapture('Rail.avi') 
 
fps = 30           #保存视频的帧率
size = (1920,1080) #保存视频分辨率的大小
 
videoWriter =cv2.VideoWriter('Rail_1.avi',
            cv2.VideoWriter_fourcc('X','V','I','D'),fps,size)

i = 0
 
while True:
    success,frame = videoCapture.read()
    if success:
        i += 1
        print('i = ',i)
        if(i>=300and i <= 450):       #截取300帧到450帧的视频
            videoWriter.write(frame)
    else:
        print('end')   
        break   

    代码中都有注释,比较简洁明了。

    下面的代码为从视频中隔固定帧进行图像截取。

import cv2

vc = cv2.VideoCapture('cut.mp4')  # 读入视频文件
c = 1              
if vc.isOpened():  # 判断是否正常打开
    rval, frame = vc.read()
else:
    rval = False

timeF = 15        # 视频帧计数间隔频率
a = 1            # 存储图像的标号
while rval:      # 循环读取视频帧
    rval, frame = vc.read()
    if (c % timeF == 0):  # 每隔timeF帧进行存储操作
        cv2.imwrite('pic/' + str(a) + '.jpg', frame)  # 存储为图像
        a += 1
    c = c + 1
    cv2.waitKey(1)

vc.release()

 

你可能感兴趣的:(图像处理)