当前位置: 首页 > article >正文

计算机视觉处理----OpenCV(从摄像头采集视频、视频处理与视频录制)

一、采集视频

        VideoCapture 用于从视频文件、摄像头或其他视频流设备中读取视频帧。它可以捕捉来自 多种源的视频。

cv2.VideoCapture()

         打开摄像头或视频文件。

cap = cv2.VideoCapture(0)  # 0表示默认摄像头,1是第二个摄像头,传递视频文件路径也可以
cv.VideoCapture(		) ->	<VideoCapture object>
cv.VideoCapture(	filename[, apiPreference]	) ->	<VideoCapture object>
cv.VideoCapture(	filename, apiPreference, params	) ->	<VideoCapture object>
cv.VideoCapture(	index[, apiPreference]	) ->	<VideoCapture object>
cv.VideoCapture(	index, apiPreference, params	) ->	<VideoCapture object>
参数描述
0表示默认摄像头(电脑上通常是第一个摄像头)。
1表示第二个摄像头(如果有的话)。
文件路径如果你要打开本地视频文件,传入视频文件路径。

 cap.isOpened()

        检查摄像头或视频文件是否成功打开。 

cv.VideoCapture.isOpened(		) ->	retval
如果已初始化视频捕获,则返回 true。

如果上次对 VideoCapture 构造函数或 VideoCapture::open() 的调用成功,则该方法返回 true。

if not cap.isOpened():print("无法打开摄像头")exit()

cap.read() 

        读取视频流中的一帧。 

ret, frame = cap.read()
参数描述
ret布尔值,表示读取是否成功
frame当前帧图像(numpy 数组),如果读取成功,返回该帧图像数据。
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)# 检查摄像头是否打开
if not cap.isOpened():print("摄像头打开失败")exit()while True:# 读取每一帧ret,frame = cap.read()# 判断图像是否读取成功if not ret:print("图像读取失败")break# 显示图像cv2.imshow("frame",frame)if cv2.waitKey(1) == ord('q'):break# 释放摄像头
cap.release()
cv2.destroyAllWindows()

二、视频录制

        cv2.VideoWriter 和 cv2.VideoWriter_fourcc 是 OpenCV 中用于视频录制的重要函数,它们结合使用来 捕捉和保存视频流。

cv2.VideoWriter_fourcc 

        cv2.VideoWriter_fourcc 用来设置视频文件的编码格式。OpenCV 支持多种视频编码方式,通过这 个函数,你可以指定一个四字符代码(FOURCC),以告知 OpenCV 如何压缩视频数据。 每种编码方式对应一个四字符代码(如 'XVID' , 'MJPG' )。 

cv2.VideoWriter_fourcc(*'FOURCC')
参数描述
'XVID'一种常用的 MPEG-4 视频编码格式,支持较好的压缩效率和质量。
'MJPG'Motion JPEG,一种基于 JPEG 图像编码的视频格式,压缩率较低,但图像质量较好。
'H264'一种高效的视频编码标准,提供高压缩率和较高的图像质量(通常需要额外的库,如ffmpeg)
'DIVX'与 'XVID' 类似,基于 MPEG-4 的编码格式。
'MP4V'用于 .mp4 文件的 MPEG-4 视频编码格式。

cv2.VideoWriter

        cv2.VideoWriter 用于创建一个视频写入对象,用于将帧写入到视频文件中。该对象需要指定编 码格式、输出文件名、帧率和视频尺寸等信息。

cv.VideoWriter(		) ->	<VideoWriter object>
cv.VideoWriter(	filename, fourcc, fps, frameSize[, isColor]	) ->	<VideoWriter object>
cv.VideoWriter(	filename, apiPreference, fourcc, fps, frameSize[, isColor]	) ->	<VideoWriter object>
cv.VideoWriter(	filename, fourcc, fps, frameSize, params	) ->	<VideoWriter object>
cv.VideoWriter(	filename, apiPreference, fourcc, fps, frameSize, params	) ->	<VideoWriter object>
参数描述
filename输出视频文件的名称。
fourcc用于压缩帧的编解码器的 4 个字符代码。例如,VideoWriter::fourcc('P','I','M','1') 是 MPEG-1 编解码器,VideoWriter::fourcc('M','J','P','G') 是 motion-jpeg 编解码器等。代码列表可以在 MSDN 页面或通过 fourcc 站点的此页面获取,以获取更完整的列表)。带有 MP4 容器的 FFMPEG 后端原生使用其他值作为 fourcc 代码:请参阅 ObjectType,因此您可能会收到来自 OpenCV 的有关 fourcc 代码转换的警告消息。
fps创建的视频流的帧率。
frameSize视频帧的大小。
isColor如果它不为零,则编码器将期望并编码彩色帧,否则它将与灰度帧一起使用。
import cv2# 打开摄像头
cap = cv2.VideoCapture(0)# 检查摄像头是否打开
if not cap.isOpened():print("打开摄像头失败")exit()# 设置视频编码
fourcc = cv2.VideoWriter_fourcc(*"XVID")
# 设置视频保存位置
out = cv2.VideoWriter("output.avi",fourcc,20.0,(640,480))while True:# 读取每一帧ret,frame = cap.read()# 判断图像是否读取成功if not ret:print("图像读取失败")break# 把读取视频帧写入视频文件out.write(frame)# 显示图像cv2.imshow("frame",frame)if cv2.waitKey(1) == ord('q'):break# 释放摄像头
cap.release()
out.release()
cv2.destroyAllWindows()

http://www.lryc.cn/news/2404405.html

相关文章:

  • elasticsearch基本操作笔记
  • LVGL手势识别事件无上报问题处理记录
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- 第一篇:MIPI CSI-2基础入门
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(一)
  • 开源技术驱动下的上市公司财务主数据管理实践
  • 婚恋小程序直播系统框架搭建
  • day46 python预训练模型补充
  • CCPC chongqing 2025 H
  • Java建造者模式(Builder Pattern)详解与实践
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • 使用ORM Bee (ormbee) ,如何利用SQLAlchemy的模型生成数据库表.
  • 【win | 自动更新关闭】win11
  • win32相关(IAT HOOK)
  • 大模型高效提示词Prompt编写指南
  • 零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • ESP32开发之LED闪烁和呼吸的实现
  • 【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录、退款业务记录
  • 2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
  • Linux安装jdk、tomcat
  • WebRTC通话原理与入门难度实战指南
  • N元语言模型 —— 一文讲懂!!!
  • .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
  • Mac 安装git心路历程(心累版)
  • 计算机网络第2章(下):物理层传输介质与核心设备全面解析
  • Qt Creator 11.0创建ROS2 Humble工程
  • C# 类和继承(扩展方法)
  • 机器学习复习3--模型的选择
  • MySQL复杂SQL(多表联查/子查询)详细讲解
  • STM32使用土壤湿度传感器