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

同一ip大量访问网站做原创品牌服饰的网站

同一ip大量访问网站,做原创品牌服饰的网站,400元做网站送网推,石家庄网站制作官网摄像头监视脚本,若检测到摄像头画面有变化,保存这一段视频 一、使用方法 1.运行脚本 默认参数Threshold3, Period3, path./recordings python cam.py --threshold30 --period3 --path./recordings 2.参数说明 threshold:摄像头捕获到的画面变化量阈值…

摄像头监视脚本,若检测到摄像头画面有变化,保存这一段视频

一、使用方法

1.运行脚本
默认参数Threshold=3, Period=3, path=./recordings

python cam.py --threshold=30 --period=3 --path=./recordings
2.参数说明
threshold:摄像头捕获到的画面变化量阈值,阈值越小越敏感
period:摄像头捕获周期,单位秒
path:捕获图片保存路径


import cv2
import numpy as np
import time
import argparse
import osdef detect_motion(img1, img2, threshold=25):"""检测两帧之间的变化区域:param img1: 当前帧:param img2: 上一帧:param threshold: 像素差异阈值:return: 变化区域掩码和是否检测到变化"""# 转换为灰度图gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)# 计算差异frame_diff = cv2.absdiff(gray1, gray2)# 应用阈值_, thresh = cv2.threshold(frame_diff, threshold, 255, cv2.THRESH_BINARY)# 应用形态学操作去噪kernel = np.ones((5, 5), np.uint8)thresh = cv2.dilate(thresh, kernel, iterations=2)thresh = cv2.erode(thresh, kernel, iterations=1)# 找到轮廓contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 判断是否检测到显著变化has_motion = Falsemin_area = 500  # 最小变化区域面积for contour in contours:if cv2.contourArea(contour) > min_area:has_motion = Truebreakreturn thresh, has_motiondef camera_monitor(period=3, video_duration=5):"""监视程序入口:param period: 检查周期(秒):param video_duration: 录制视频长度(秒)"""print(f'监视器启动!\nParams:\nThreshold={args.threshold}, Period={period}, Save Path={args.path}')# 构建RTSP URLrtsp_url = f'rtsp://{args.username}:{args.password}@{args.ip}:{args.port}{args.channel}'print(f'连接到 RTSP 流: {rtsp_url}')# 设置RTSP连接cap = cv2.VideoCapture(rtsp_url)# 设置RTSP缓冲区大小cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)if not cap.isOpened():print('错误:无法连接到 RTSP 流')return# 获取视频参数frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))fps = 20.0# 读取第一帧_, last_frame = cap.read()while True:ret, current_frame = cap.read()if not ret:print('错误:无法读取帧')break# 检测变化motion_mask, has_motion = detect_motion(current_frame, last_frame, args.threshold)if has_motion:print("检测到运动!录制视频...")# 创建视频写入器,修改为MP4格式timestamp = time.strftime('%Y_%m_%d_%H_%M_%S', time.localtime())video_path = os.path.join(args.path, f'motion_{timestamp}.mp4')# 使用H.264编码器if os.name == 'nt':  # Windows系统video_writer = cv2.VideoWriter(video_path,cv2.VideoWriter_fourcc(*'H264'),fps,(frame_width, frame_height))else:  # Linux/Mac系统video_writer = cv2.VideoWriter(video_path,cv2.VideoWriter_fourcc(*'avc1'),fps,(frame_width, frame_height))# 记录检测到运动的时间点start_time = time.time()# 录制视频片段while time.time() - start_time < video_duration:ret, frame = cap.read()if not ret:break# 标记变化区域motion_mask, _ = detect_motion(frame, last_frame, args.threshold)contours, _ = cv2.findContours(motion_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 在原图上画出变化区域frame_marked = frame.copy()for contour in contours:if cv2.contourArea(contour) > 500:cv2.drawContours(frame_marked, [contour], -1, (0, 255, 0), 2)video_writer.write(frame_marked)last_frame = frame.copy()video_writer.release()print(f'视频保存到: {video_path}')last_frame = current_frame.copy()time.sleep(period)cap.release()# 参数设置
parser = argparse.ArgumentParser(description='移动侦测摄像机监视器')
parser.add_argument('--threshold', type=int, default=3, help='移动侦测阈值')
parser.add_argument('--period', type=int, default=1, help='监控周期(秒)')
parser.add_argument('--path', type=str, default='./recordings', help='保存录制文件的路径')# 添加RTSP相关参数
parser.add_argument('--ip', type=str, default='192.168.11.23', help='摄像机的 IP 地址')
parser.add_argument('--port', type=str, default='554', help='RTSP 端口(默认值:554)')
parser.add_argument('--username', type=str, default='admin', help='RTSP 用户名')
parser.add_argument('--password', type=str, default='admin123', help='RTSP 密码')
parser.add_argument('--channel', type=str, default='/cam/realmonitor?channel=1&subtype=1', help='RTSP 通道或流路径')args = parser.parse_args()# 确保存储目录存在
if not os.path.exists(args.path):os.makedirs(args.path)if __name__ == '__main__':try:camera_monitor(period=args.period)except KeyboardInterrupt:print("\n用户停止的监控")finally:cv2.destroyAllWindows()
http://www.yayakq.cn/news/671070/

相关文章:

  • 国内哪家公司做网站最好跟我一起做网站
  • 免费页面网站opencart做视频网站
  • 企业网站建设定制开发服务建站行业有哪些
  • 网站自助授权系统读书网站如何做
  • 保定企业建网站做家务的男人网站
  • 郑州网站外包公司国家企业信用公示网官网
  • 网站建设领先wordpress能做app吗
  • 平度市城市建设局网站重庆市建筑信息网查询
  • 怎么做服务器网站上海网站建设哪个平台好
  • 电影网站建设教学视频聊城做手机网站
  • 高校保卫处网站建设工作总结dll网站服务
  • 黑龙江省营商环境建设监察局网站网站制作泉州公司
  • 池州网站建设价格手机网站建设服务电话
  • 网站开发项目的规划与设计文档低价建站在哪里买
  • 福州建设发展集团有限公司网站百度网址大全手机浏览器
  • 泉州地区网站建设公司有做lol直播网站有哪些人
  • 洛阳做网站公司商务网站设计特色
  • 菜鸟式网站建设图书退役厅网站建设中标公告
  • 自适应全屏网站公司形象vi设计
  • 织梦做网站简单吗wordpress 无限下拉菜单
  • 企业网站怎么建郑州最好的男科医院哪家好
  • 营销型网站收费app制作教学课程
  • 营销型网站要点辽宁建设厅证件查询网站
  • 网站建设基本流程包括哪几个步骤手机一键生成户型图
  • 做淘宝券推广的网站有哪些cms文章管理系统
  • 建网站需要服务器吗用npp做网站
  • 湖南建设厅网站勘查设计wordpress菜单怎么设置中文
  • 网站开发表格整体页面居中阿里云的国际网站建设
  • 做初中题赚钱的网站百度云搜索引擎入口盘多多
  • 企业网站建设及运营现状分析极验验证 wordpress