Python OpenCV 视频帧提取:每两秒取中间一秒保存为图像
"""\nimport cv2\nimport os\n\n# 定义视频划分间隔和保存路径\ninterval = 2 # 视频划分间隔为2秒\nsave_path = 'frames' # 图像保存路径\n\n# 遍历文件夹内的所有视频文件\nfolder_path = 'videos' # 视频文件夹路径\nfor filename in os.listdir(folder_path):\n if filename.endswith('.mp4') or filename.endswith('.avi'):\n video_path = os.path.join(folder_path, filename)\n \n # 使用OpenCV打开视频文件\n video = cv2.VideoCapture(video_path)\n count = 0\n \n # 读取视频帧并保存中间一秒的帧为图像\n while True:\n ret, frame = video.read()\n \n if not ret:\n break\n \n count += 1\n \n # 每隔两秒保存中间一秒的帧为图像\n if count % (interval * video.get(cv2.CAP_PROP_FPS)) == 0:\n frame_time = video.get(cv2.CAP_PROP_POS_MSEC) / 1000 # 当前帧的时间\n save_name = os.path.join(save_path, f'{filename}_{frame_time:.1f}.jpg')\n cv2.imwrite(save_name, frame)\n \n # 释放视频对象\n video.release()\n"""\n\n请确保已经安装了OpenCV库,并将视频文件夹路径和图像保存路径替换为你的实际路径。此代码将遍历视频文件夹中的所有视频文件,并将每个视频的中间一秒帧保存为图像。图像将以视频文件名和时间戳命名,保存在指定的图像保存路径中。
原文地址: https://www.cveoy.top/t/topic/py81 著作权归作者所有。请勿转载和采集!