OpenCv:采集摄像头视频、读取视频帧与视频录制
发布人:shili8
发布时间:2024-12-01 05:03
阅读次数:0
**OpenCV:摄像头视频采集、视频帧读取与视频录制**
在本文中,我们将介绍如何使用 OpenCV 库来实现摄像头视频的采集、视频帧的读取以及视频录制。这些功能对于许多计算机视觉应用都是必不可少的。
### 一、摄像头视频采集首先,我们需要打开摄像头并开始采集视频。OpenCV 提供了 `cv2.VideoCapture()` 函数来实现这一点。
import cv2# 打开摄像头cap = cv2.VideoCapture(0) if not cap.isOpened(): print("无法打开摄像头") else: while True: #读取一帧视频 ret, frame = cap.read() if not ret: break # 显示视频帧 cv2.imshow('frame', frame) # 等待按键输入 if cv2.waitKey(1) &0xFF == ord('q'): break #释放摄像头资源 cap.release() # 关闭窗口 cv2.destroyAllWindows()
在上述代码中,我们使用 `cv2.VideoCapture(0)` 打开了第一个摄像头(通常是内置摄像头)。然后我们进入一个循环,读取视频帧并显示它们。用户可以按下 'q' 键退出循环。
### 二、视频帧读取在上一节中,我们已经展示了如何从摄像头采集视频帧。现在,让我们看看如何读取预先录制的视频文件。
import cv2# 打开视频文件cap = cv2.VideoCapture('video.mp4') if not cap.isOpened(): print("无法打开视频文件") else: while True: #读取一帧视频 ret, frame = cap.read() if not ret: break # 显示视频帧 cv2.imshow('frame', frame) # 等待按键输入 if cv2.waitKey(1) &0xFF == ord('q'): break #释放摄像头资源 cap.release() # 关闭窗口 cv2.destroyAllWindows()
在上述代码中,我们使用 `cv2.VideoCapture()` 打开了一个预先录制的视频文件(例如 'video.mp4')。然后我们进入一个循环,读取视频帧并显示它们。用户可以按下 'q' 键退出循环。
### 三、视频录制最后,让我们看看如何使用 OpenCV 来录制视频。
import cv2# 打开摄像头cap = cv2.VideoCapture(0) if not cap.isOpened(): print("无法打开摄像头") else: # 设置视频编码器和分辨率 fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc,20.0, (640,480)) while True: #读取一帧视频 ret, frame = cap.read() if not ret: break # 写入视频帧 out.write(frame) # 显示视频帧 cv2.imshow('frame', frame) # 等待按键输入 if cv2.waitKey(1) &0xFF == ord('q'): break #释放摄像头资源 cap.release() # 关闭输出流 out.release() # 关闭窗口 cv2.destroyAllWindows()
在上述代码中,我们使用 `cv2.VideoCapture()` 打开了第一个摄像头。然后我们创建了一个视频输出流,设置了编码器和分辨率。最后,我们进入一个循环,读取视频帧并写入它们。用户可以按下 'q' 键退出循环。
以上就是 OpenCV 库中关于摄像头视频采集、视频帧读取与视频录制的基本介绍。这些功能对于许多计算机视觉应用都是必不可少的。