学习python-opencv视频读取类cv2.VideoCapture完成跳帧截取视频图片
原文:https://blog.csdn.net/hjw2719/article/details/83473199
import cv2
import os
def save_img():
video_path = r'你的视频绝对路径' # D:/Videos/
videos = os.listdir(video_path)
for video_name in videos:
file_name = video_name.split('.')[0]
folder_name = file_name
os.makedirs(folder_name,exist_ok=True)
vc = cv2.VideoCapture(video_path+video_name) #读入视频文件
c = 1
if vc.isOpened(): # 判断是否正常打开
rval, frame = vc.read()
else:
rval = False
timeF = 300 # 视频帧计数间隔频率
while rval: # 循环读取视频帧
pic_path = folder_name + '/'
if (c % timeF == 0): # 每隔timeF帧进行存储操作
cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg', frame)#存储图像
c = c + 1
cv2.waitKey(1)
vc.release()
save_img()
文中的“你的视频绝对路径”指的是存储待处理视频文件的文件夹路径,我的路径是:
D:/Videos
这里面只能有一个视频文件,不能有其它类型的文件,我在运行以上文件的时候出现了一下的错误提示
C:\Users\Administrator\Anaconda3\python.exe "D:/Pycharm Project/Test1/test_1.py"
warning: Error opening file (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:901)
warning: D:/Videostest1.avi (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:902)
Process finished with exit code 0
看第三行的warning: warning: D:/Videostest1.avi (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:902)
我的视频文件名是test1.avi,这里程序却将文件夹名和文件名组合成了一个不存在的文件,导致出错。
修改的方法是在把绝对路径改成:
D:/Videos/