# 提起整个训练集的视频,并每隔5帧将图片保存起来
import cv2
import os
TIMESEP = 25 # 读取的帧数为:25帧
def capture(root, timeSep):
# 视频文件大概是5秒,一秒为28帧左右,一个视频共有130帧,最终读取25帧
i = 0 # 进行计数
c = 0 # 图片名称
counter = 0 # 读取的帧数
# success = False # 读取图片是否成功
cap = cv2.VideoCapture(root)
if cap.isOpened():
success, frame = cap.read()
# 保存图片到指定文件夹
cv2.imwrite('/home/wbx/photoes/' + str(c) + '.jpg', frame)
c += 1
i += 1
counter += 1
while success:
success, frame = cap.read()
if i % 5 == 0: # 每5帧读取一次
cv2.imwrite('/home/wbx/photoes/' + str(c) + '.jpg', frame)
c += 1
counter += 1
if counter == timeSep:
break
i += 1
cv2.waitKey(1)
Myroot = "/home/wbx/RLVD/Violence/V_90.mp4"
main_dir = "/Users/wbx/Downloads/RLVD"
savePath = "/home/wbx/RLVD"
def findRoot(main_dir):
rootList = []
flagList = []
for x in os.listdir(main_dir):
print(type(x))
if x != ".DS_Store":
td = main_dir + '/' + x + '/'
print(td)
for file in os.listdir(td):
# print(file)
filePath = os.path.join(td, file) # 获取视频的完整路径
# print(filePath)
rootList.append(filePath)
flag = file.split('_')
print(type(flag[0])) # flag[0]为:NV 或者 V 可以用来判断是否是暴力行为
flagList.append(flag[0])
return rootList, flagList
capture(root=Myroot, timeSep=TIMESEP)
rootList, flagList = findRoot(main_dir=main_dir)
print(len(rootList))