尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
计算机视觉基础|第5章 视频读取与播放
目录前言5.2 视频基础理论5.2.1 什么是帧5.2.2 OpenCV 处理视频的逻辑5.2.3 视频读取5.3业务流程5.3.1 完整实战代码5.3.1 完整实战代码5.3.2 帧图像处理演示5.4 调用摄像头5.4.1 理论说明5.4.2 完整实战代码5.5注意5.6 本章小结前言承接第 4 章图像几何变换。前面操作的都是静态图片本章学习 OpenCV 处理视频掌握本地视频读取、摄像头调用所有代码可直接运行。5.1 本章学习目标理解视频底层原理认识帧的概念掌握使用VideoCapture读取本地视频文件学会调用电脑摄像头采集画面读懂ret、frame返回值实现按键退出养成规范释放视频资源的习惯5.2 视频基础理论5.2.1 什么是帧视频本质上不是一张完整大图是由很多张静态图像连续播放形成。其中每一张图像就叫做一帧frame。依靠人眼的视觉暂留特性短时间内连续切换大量图片人就感知到连续动态画面。帧率 FPS每秒播放多少帧图片FPS 越高视频画面越流畅。5.2.2 OpenCV 处理视频的逻辑OpenCV 处理视频本质就是循环不断读取每一帧图像。拿到每一帧frame之后它就等价于imread读取的普通图片之前学习的灰度转换、缩放、色彩变换全部都可以直接作用在帧上。5.2.3 视频读取OpenCV 提供cv2.VideoCapture()专用接口实现视频读取是处理视频流的核心方法。video_capture cv2.VideoCapture(r视频路径)创建视频捕获对象绑定指定视频文件用于加载、读取视频全部帧数据。ret, frame video_capture.read()逐帧读取视频画面每次调用仅读取一帧重复调用可依次读取后续画面。返回两个核心参数ret为布尔值标记是否读取到有效帧判断是否到达视频末尾frame为当前读取的图像帧数组和静态图片数据格式完全一致。通过while循环持续读取帧画面配合cv2.waitKey(ms)控制单帧画面展示时长以此调节视频播放速度。播放窗口需保持同名确保画面实时覆盖刷新实现流畅的视频播放效果。5.3业务流程创建VideoCapture对象传入视频路径判断视频是否正常打开while循环不停调用read()读取帧判断ret读到末尾退出循环imshow展示当前帧监听 ESC 按键实现手动退出用waitKey检测键盘ASSII机制退出视频播放释放资源video_capture.release()不然会堆积在计算机中关闭窗口5.3.1 完整实战代码5.3.1 完整实战代码import cv2 # 传入视频文件路径创建视频读取对象 video_capture cv2.VideoCapture(rD:\pythoncode2\bigdata_ai40\data\wa.mp4) # 判断视频是否成功打开路径错误、文件损坏都会打开失败 if not video_capture.isOpened(): print(无法打开视频) exit() # 循环读取视频画面 while True: # 读取一帧画面 ret, frame video_capture.read() # ret为False代表读到视频末尾结束循环 if not ret: break cv2.imshow(video, frame) # 等待60ms按下ESC键(ASCII27)退出播放 if cv2.waitKey(60) 27: break # 释放资源关闭窗口 video_capture.release() cv2.destroyAllWindows()5.3.2 帧图像处理演示每一帧frame就是普通图像可以直接做各类图像处理示例转为灰度播放import cv2 video_capture cv2.VideoCapture(rD:\pythoncode2\bigdata_ai40\data\wa.mp4) if not video_capture.isOpened(): print(无法打开视频) exit() while True: ret, frame video_capture.read() if not ret: break # 直接对帧做图像处理 gray_frame cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow(gray_video, gray_frame) if cv2.waitKey(60) 27: break video_capture.release() cv2.destroyAllWindows()5.4 调用摄像头5.4.1 理论说明调用摄像头的逻辑和读取本地视频几乎完全一致。区别VideoCapture不再传入文件路径传入数字。0代表本机默认摄像头外接多个摄像头依次尝试1、2摄像头属于实时流没有 “视频末尾”只能通过按键手动结束循环。5.4.2 完整实战代码import cv2 # 0代表本机摄像头 cap cv2.VideoCapture(0) if not cap.isOpened(): print(摄像头打开失败请检查摄像头权限与设备) exit() while True: ret, frame cap.read() if not ret: break cv2.imshow(camera, frame) # ESC按键退出 if cv2.waitKey(20) 27: break cap.release() cv2.destroyAllWindows()5.5注意视频路径写错、视频损坏isOpened()返回 False无法播放。不要忘记release()否则视频 / 摄像头资源不会释放程序卡死。播放视频时waitKey不能写 0写 0 会一直等待按键画面不会自动刷新。一定要判断if not ret: break读到视频结尾及时跳出循环避免死循环。5.6 本章小结视频由大量图像帧构成依靠连续播放帧实现动态效果。使用cv2.VideoCapture(路径)读取本地视频.isOpened()判断是否打开成功。read()得到ret状态和frame图像帧可以复用所有图片处理代码。调用摄像头只需要把参数改为数字0其余逻辑和读视频完全一致。waitKey(毫秒)控制播放速度、监听 ESC 退出结束必须release()释放资源。
RELATED

相关推荐

3分钟搞定网易云音乐NCM解密:ncmdump终极免费方案

3分钟搞定网易云音乐NCM解密:ncmdump终极免费方案

3分钟搞定网易云音乐NCM解密:ncmdump终极免费方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的加密NCM格式音乐无法在其他播放器播放而烦恼吗?ncmdump是一个简单高效的免费开源解密…

📅 2026/10/8 16:53:36
信号处理基础:从概念到工程实践

信号处理基础:从概念到工程实践

1. 信号处理基础概念解析 "假设我们有一个信号x"这个看似简单的陈述,实际上包含了信号处理领域最核心的研究对象。在工程实践中,信号x可以代表任何随时间或空间变化的物理量——从音频波形到心电图数据,从雷达回波到股票价格曲线。…

📅 2026/10/5 19:37:04
ChatGPT如何优化电商推荐与Google Shopping算法

ChatGPT如何优化电商推荐与Google Shopping算法

1. ChatGPT如何重塑电商购物推荐逻辑 当我在2023年初第一次将ChatGPT集成到电商推荐系统时,意外发现了一个有趣现象:用户对AI推荐商品的点击率比传统算法高出37%。这背后是ChatGPT对购物行为的全新理解方式——它不再只是简单匹配关键词,而是…

📅 2026/10/7 18:58:24
MORE NEWS

更多资讯

📰

Themida WinLicense脱壳实战:V1.8与V2.X工具链选择与避坑指南

简介:本资源是面向逆向分析工程师、安全研究人员及软件保护技术学习者的Themida与WinLicense 1.8.x–2.x版本专用脱壳工具集,聚焦于解决主流商业壳在新版环境下的动态脱壳与静态分析难题。压缩包共301个文件,总计32.77MB,涵盖核心…

📰

相机标定板选型全解析:棋盘格、圆点与ArUco/ChArUco对比

相机标定这块,大家在网上搜到的教程十有八九都是拿棋盘格开场的,OpenCV官方文档里那几张棋盘格照片都快被用烂了。但等你自己真正上手做项目,不管是接了个机械臂抓取的活儿,还是搞双目测距、视觉SLAM,你会发现标定板选…

📰

STM32直流电机PID闭环控制实战:从编码器测速到参数整定

STM32直流电机PID控制这个坑,我前前后后跳进去爬出来好几回。从最初用开环PWM调速,到后来上编码器做闭环,再到PID参数现场调得头皮发麻,每一步都踩出了经验。这篇就把我基于stm32f103控制板做直流电机转数PID闭环控制的全过程记录…

📰

行波测距仿真全解析:小波分解与卡伦堡变换在配网故障定位中的应用

做配网故障分析和保护原理研究的人,基本都绕不开行波测距这个方向。这几年行波法在电力系统故障定位里被反复提起,但真正上手做过仿真、跑出过稳定波形的朋友都知道,这里面的坑一点都不少。小波分解与重构、卡伦堡变换、行波测距这几个词串在…

📰

洗衣机里的“智慧大脑”:单片机控制源码与状态机全解析

前阵子家里那台用了快六年的波轮洗衣机,突然在脱水阶段罢工,嗡嗡响几声就停,面板上的故障码一闪一闪。拆开背部盖板一看,主控板上一颗40脚的单片机芯片几乎承担了所有决策。那一刻我意识到,我们每天都在用的洗衣机&…

📰

AI论文写作工具有哪些?4类工具实测拆解与避坑指南

写论文这件事,说实话,绝大多数人卡住的环节根本不是“写”,而是“从零到一”那段最黑暗的启动期:题目定了却理不清逻辑,文献读了不少但捋不出主线,终于憋出几百字又觉得不像人话。我自己带过不少学生&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬