news 2026/5/30 21:09:56

每秒钟提取视频25帧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
每秒钟提取视频25帧
import cv2 import os from pathlib import Path def extract_frames(video_path, output_dir=None, frames_per_second=25): """ 从视频中提取帧图像 Parameters: video_path (str): 视频文件路径 output_dir (str): 输出目录,默认为视频同名文件夹 frames_per_second (int): 每秒提取的帧数 """ # 创建输出目录 if output_dir is None: video_name = Path(video_path).stem output_dir = f"E:\BaiduNetdiskDownload\\{video_name}_frames" os.makedirs(output_dir, exist_ok=True) # 打开视频文件 cap = cv2.VideoCapture(video_path) if not cap.isOpened(): print(f"无法打开视频文件: {video_path}") return # 获取视频基本信息 fps = cap.get(cv2.CAP_PROP_FPS) total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) duration = total_frames / fps print(f"视频信息:") print(f" 路径: {video_path}") print(f" FPS: {fps}") print(f" 总帧数: {total_frames}") print(f" 时长: {duration:.2f} 秒") print(f" 每秒提取帧数: {frames_per_second}") # 计算提取间隔 frame_interval = fps / frames_per_second print(f" 提取间隔: 每 {frame_interval} 帧提取一次") frame_count = 0 saved_count = 0 while True: ret, frame = cap.read() if not ret: break # 更精确的帧采样判断 expected_frame_number = round(saved_count * (fps / frames_per_second)) if frame_count >= expected_frame_number: # 生成文件名 timestamp = frame_count / fps filename = f"frame_{saved_count:06d}_{timestamp:.3f}s.jpg" filepath = os.path.join(output_dir, filename) # 保存高质量JPEG图像 cv2.imwrite(filepath, frame, [cv2.IMWRITE_JPEG_QUALITY, 95]) saved_count += 1 # 显示进度 progress = (frame_count / total_frames) * 100 print(f"\r处理进度: {progress:.1f}% ({saved_count} 帧已保存)", end='') frame_count += 1 # 释放资源 cap.release() print(f"\n完成! 共提取 {saved_count} 帧图像到目录: {output_dir}") if __name__ == "__main__": # 设置视频路径 video_path = r"E:\BaiduNetdiskDownload\mmexport1765869882377.mp4" # 提取帧,每秒25帧 extract_frames(video_path, frames_per_second=25)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 19:29:28

对比多线程与batch(在极简单cnn上操作)

batch,从学习dos时,就认识了这个单词,它叫做批处理!现在我发现他与并行或多线程是有差别的!我们前头所有程序凡是用到batch,均是如下操作,比如batch3:输入一张图片,forwa…

作者头像 李华
网站建设 2026/5/30 7:29:16

乐迪信息:智慧煤矿解决方案:AI摄像机智能预警系统

AI摄像机智能预警系统为煤矿安全生产提供了全新的技术路径。该系统通过在煤矿关键区域部署智能摄像设备,结合AI算法实现对人员行为、设备状态及环境风险的实时识别与预警,有效提升了煤矿安全管理水平。一:系统架构与技术原理AI摄像机智能预警…

作者头像 李华
网站建设 2026/5/29 20:13:57

新教程!AI大模型部署核心:FastAPI从入门到实战!

AI风口正当时, 想从Python基础迈向高薪开发? 想在AI浪潮中手握核心部署能力? 黑马程序员《Python Web开发:FastAPI从入门到实战》全新教程,正式上线!一套教程让你轻松掌握AI大模型部署核心技能&#xff…

作者头像 李华
网站建设 2026/5/29 20:16:02

告别“失忆“Agent:构建生产级AI系统的九大黄金法则

文章基于Old Dominion大学研究团队的最新论文,详细介绍了构建生产级Agentic AI工作流的九大黄金法则,包括工具调用优于MCP、直接函数优于Agent工具、单一职责原则等。通过完整的播客生成系统案例,展示了如何将理论转化为可落地的工程实践&…

作者头像 李华
网站建设 2026/5/29 20:31:13

当券商成立互联网分公司,面向长尾客户的“智能化总攻”开始了

近期,又一家头部券商宣布成立互联网分公司,在业内激起不小波澜。有人质疑这是“新瓶装旧酒”,但真正洞察行业演进的人会明白:这并非简单回归,而是一场面向AI时代客户经营体系的重构。 十年前,互联网分公司的…

作者头像 李华
网站建设 2026/5/29 19:49:21

13. 搜索引擎-ES-ES集群

文章目录前言一、搭建ES集群1.1 创建ES集群1.2 集群状态监控1.3创建索引库二、集群脑裂问题2.1.集群职责划分2.2.脑裂问题三、集群分布式存储3.1.分片存储测试3.2.分片存储原理四、集群分布式查询五、集群故障转移前言 ES集群‌ 一、搭建ES集群 1.1 创建ES集群 部署es集群可…

作者头像 李华