下面我将详细讲解OpenCV实现简单摄像头视频监控程序的完整攻略。
1. 安装OpenCV
要实现摄像头视频监控,首先需要安装OpenCV库。可以在官网(https://opencv.org/)下载安装包,也可以通过 pip 命令进行安装:
pip install opencv-python
2. 开始编写代码
2.1 导入库并打开摄像头
import cv2
cap = cv2.VideoCapture(0) # 打开摄像头,0表示第一个摄像头(若有多个可换成1、2等)
2.2 循环读取视频流
while True:
ret, frame = cap.read() # 读取视频帧
if not ret:
break # 如果读取失败,则退出循环
cv2.imshow('frame', frame) # 显示当前帧
if cv2.waitKey(1) == ord('q'): # 按下 q 键退出循环
break
2.3 释放摄像头
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 关闭所有窗口
3. 完整示例
下面给出完整示例代码:
import cv2
cap = cv2.VideoCapture(0) # 打开摄像头,0表示第一个摄像头(若有多个可换成1、2等)
while True:
ret, frame = cap.read() # 读取视频帧
if not ret:
break # 如果读取失败,则退出循环
cv2.imshow('frame', frame) # 显示当前帧
if cv2.waitKey(1) == ord('q'): # 按下 q 键退出循环
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 关闭所有窗口
4. 示例说明
示例1:保存视频
假设现在要将摄像头拍摄的视频保存下来,可以添加以下代码:
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) == ord('q'):
break
cap.release()
out.release() # 释放VideoWriter
cv2.destroyAllWindows()
以上代码中,首先使用 VideoWriter
创建一个视频写入对象,并指定保存的视频名称、帧率和分辨率。然后在循环中,在显示当前帧的同时,使用 out.write(frame)
将当前帧写入视频文件。最后在释放摄像头之前,要记得释放 VideoWriter
。
示例2:窗口缩放
有时候我们需要对窗口进行缩放。可以使用以下代码实现:
import cv2
def resize(img, scale_percent):
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
return resized
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
resized = resize(frame, 50) # 缩小一半
cv2.imshow('frame', resized)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
以上代码中,resize
函数实现了窗口缩放功能。在循环中,读取每一帧图像后,使用 resize
函数缩小一半,并显示缩小后的图像。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenCV实现简单摄像头视频监控程序 - Python技术站