截取一个文件夹下的所有视频的帧

就是把一个文件夹里的视频都切成图片,最大的问题是命名问题,如果能有个更一些的命名就好了,现在想要按顺序排列就只能把文件排序方式改成按时间,而且只能把图片存到原视频文件夹下

#获取文件夹内的视频名
def file_name(file_dir):   
    for root, dirs, files in os.walk(file_dir):
        return files
files = file_name('d:/chuyiyingyu/avi/')      

#把视频名称变成路径
for i in range(len(files)):
    files[i] = 'd:/chuyiyingyu/avi/' + str(files[i])
#读取文件内的视频   
for a in range(len(files)):
    
    vc = cv2.VideoCapture(files[a])
    c = 1
    if vc.isOpened():
        rval,frame = vc.read()
    else:
        rval = False
        print ('false')
    #截取间隔帧数设置为4000    
    timeF = 4000
    #截取视频
    while rval:
        rval, frame = vc.read()
        if(c%timeF == 0):
            cv2.imwrite(str(files[a])[0:22] + str(int(c/4000)) + '.png', frame)
            print(str(files[a])[0:22] + str(int(c/4000)) + '.png' + ' saved successfully!')
        c = c + 1
        cv2.waitKey(1)
    vc.release()

猜你喜欢

转载自blog.csdn.net/u011898542/article/details/80578697