视频进行拆帧处理"/>
利用OpenCV对视频进行拆帧处理
文章目录
- 简介
- 输入输出
- 源代码-Python
简介
提供一种利用OpenCV对视频进行拆帧,并制作成图片集的方式。
输入输出
输入:视频文件所在文件夹
输出:按视频文件命名的文件夹下保存图片
源代码-Python
import cv2
import osdef getFilePath(file_name):all_flie_name = os.listdir(file_name)all_file_path = []for video_file in all_flie_name:all_file_path.append(os.path.join(file_name, video_file))return all_file_pathdef saveToImg(video_file, fps):items = 0savename = 0save_file_name = video_file.split('\\')[-1]index = save_file_name.index('.mp4') # 以mp4文件为例,生成保存文件夹名file_name = save_file_name[:index]save_file_name = os.path.join('.\\images', file_name)if not os.path.exists(save_file_name):os.makedirs(save_file_name) # 创建保存文件夹,命名以视频文件名为依据 camera = cv2.VideoCapture(video_file) # 读取视频对象print('Pls waiting···')while camera.isOpened(): _, image = camera.read() if image is not None:if items % fps == 0: # 按间隔帧保存为图片img_file_name = os.path.join(save_file_name, file_name + '_' + str(savename) + '.jpg')cv2.imwrite(img_file_name, image) done_name = img_file_name.split('\\')[-1]print(f'{done_name} Done') savename += 1# print(image.shape)items += 1else: # 视频提取结束后,跳出breakprint('{} Done'.format(video_file.split('\\')[-1]))def showImg(img_path): # 查看图片img = cv2.imread(img_path)print(img.shape)cv2.imshow('img', img)cv2.waitKey(0)cv2.destroyAllWindows()def main():file_name = './video' # 视频文件夹路径all_file_path = getFilePath(file_name=file_name)for file in all_file_path:saveToImg(file, fps=100)
更多推荐
利用OpenCV对视频进行拆帧处理
发布评论