本文主要是介绍使用OpenCV库来捕获摄像头视频流,并按指定格式保存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天我们来使用OpenCV库来捕获摄像头视频流,并将其保存为AVI格式的视频文件,
代码的主要功能包括:
- 初始化摄像头捕获对象。
- 设置视频编解码器和输出文件路径。
- 循环读取视频帧,处理并保存到文件中。
- 显示处理后的视频帧。
- 按下'q'键退出程序。
- 释放资源并关闭所有窗口。
- 运行环境需要安装OpenCV库,可以通过
pip install opencv-python
安装。
下面这份代码的保存视频的格式是AVI
import numpy as np
import cv2 # 初始化摄像头
cap = cv2.VideoCapture(0) # 检查摄像头是否成功打开
if not cap.isOpened(): print("Error: Cannot open camera.") exit() # 设置视频编码、输出路径、帧率、分辨率
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('path\output.avi', fourcc, 30.0, (640, 480)) while cap.isOpened(): ret, frame = cap.read() # 检查是否成功读取到帧 if ret: # 水平翻转帧 frame = cv2.flip(frame, 1) # 写入翻转后的帧到视频文件 out.write(frame) # 显示帧 cv2.imshow('frame', frame) # 按'q'键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break else: # 如果读取帧失败,则跳出循环 break # 释放摄像头和视频写入对象
cap.release()
out.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
但是往往这种格式我们不是想要的,更多的是使用MP4格式
import numpy as np
import cv2 # 初始化摄像头
cap = cv2.VideoCapture(0) # 检查摄像头是否成功打开
if not cap.isOpened(): print("Error: Cannot open camera.") exit() # 设置视频编码、输出路径、帧率、分辨率
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('path\\output.mp4', fourcc, 30.0, (640, 480)) while cap.isOpened(): ret, frame = cap.read() # 检查是否成功读取到帧 if ret: # 水平翻转帧 frame = cv2.flip(frame, 1) # 写入翻转后的帧到视频文件 out.write(frame) # 显示帧 cv2.imshow('frame', frame) # 按'q'键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break else: # 如果读取帧失败,则跳出循环 break # 释放摄像头和视频写入对象
cap.release()
out.release()
# 关闭所有OpenCV窗口
cv2.destroyAllWindows()
代码中的path就是你实际想要保存视频的路径 ,如果实在不知道路径,可以打开资源管理器进行查看,如下图所示
这两份代码只是保存的视频格式不一样,处理方法都是一样的,运行完以后会有一个叫frame的cv窗口出现,这里显示的图像是实时进行录制的图像
注意如果需要录制多个视频,需要修改代码中视频的命名,也就是这一行
out = cv2.VideoWriter('path\\output.mp4', fourcc, 30.0, (640, 480))
把output改个命名,否则下一次保存视频会把上一次的视频进行覆盖
运行完这两份代码后,对应的路径下保存的文件就会呈现出两个不同格式的视频文件
这篇关于使用OpenCV库来捕获摄像头视频流,并按指定格式保存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!