python监控拍摄视频

1年前 (2023-09-06)阅读67回复0
张子龙
张子龙
  • 注册排名10012
  • 经验值0
  • 级别
  • 主题0
  • 回复0
楼主

随着科技的发展,监控摄像是越来越普及的一种安全保障方式。而使用Python编程语言可以很方便地实现监控拍摄视频的功能。

# 导入必要的模块
import cv2
import time
# 设置摄像头
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
# 设置帧差法阈值
threshold = 30
# 初始化
first_frame = None
# 循环监控拍摄
while True:
# 获取当前帧
ret, frame = capture.read()
if not ret:
break
# 灰度化处理
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (21, 21), 0)
# 初始化第一帧
if first_frame is None:
first_frame = gray
continue
# 计算差异帧
frame_delta = cv2.absdiff(first_frame, gray)
# 阈值过滤
thresh = cv2.threshold(frame_delta, threshold, 255, cv2.THRESH_BINARY)[1]
# 膨胀处理
thresh = cv2.dilate(thresh, None, iterations=2)
# 获取轮廓
contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓并画出矩形框
for c in contours:
if cv2.contourArea(c)< 1000:
continue
(x, y, w, h) = cv2.boundingRect(c)
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示图像
cv2.imshow("video", frame)
key = cv2.waitKey(1) & 0xFF
# 退出循环
if key == ord("q"):
break
# 释放资源
capture.release()
cv2.destroyAllWindows()

通过上述代码,我们就能够调用电脑摄像头并实现监控拍摄视频的功能。代码中使用的是帧差法算法,通过比较不同时间段的帧图像差异,实现了检测物体移动的功能。同时,我们还可以通过改变阈值等参数,调整检测效果,实现更高精度的监控。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/1532.html

0
回帖

python监控拍摄视频 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息