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

网站建设技术人员招聘wordpress淘客主题

网站建设技术人员招聘,wordpress淘客主题,wordpress p,链接生成器在这篇博客中#xff0c;我们将使用Python编程语言和一些常用的库来实现一个简单的区域监控和变化报警系统。我们将使用Tkinter库创建一个图形界面#xff0c;允许用户选择监控区域#xff0c;并使用OpenCV库进行图像处理和相似性比较#xff0c;以检测区域内的变化#x…在这篇博客中我们将使用Python编程语言和一些常用的库来实现一个简单的区域监控和变化报警系统。我们将使用Tkinter库创建一个图形界面允许用户选择监控区域并使用OpenCV库进行图像处理和相似性比较以检测区域内的变化并通过播放声音进行报警。 实现效果 运行程序后可以看到一个菜单界面 点击开始识别按钮后可以选择你想要监控的区域 如图所示红色部分是点击开始按钮后拖动鼠标会显示的选择范围框选择好区域后就开始识别该区域前后5秒内的变化。 程序还可以切换模式可以监控摄像头画面的视频是否有变化有变化也会报警。 程序运行后 准备工作 在开始之前确保你已经安装了Python以及以下所需的库 tkinter: 用于创建图形界面numpy: 用于处理图像数据cv2 (OpenCV): 用于图像处理和相似性比较pyautogui: 用于截取屏幕图像pygame: 用于播放声音PIL (Python Imaging Library): 用于图像处理 你可以使用pip命令来安装这些库 pip install tkinter numpy opencv-python pyautogui pygame pillow选择监控区域 首先让我们创建一个函数来选择监控区域。我们使用Tkinter库创建一个全屏的图形窗口让用户通过鼠标点击和拖拽来选择监控区域。我们将保存选定的区域的坐标以供后续使用。 import tkinter as tk from PIL import Image, ImageTkstart_x, start_y, end_x, end_y None, None, None, Nonedef select_screen_region():global start_x, start_y, end_x, end_ydef on_press(event):global start_x, start_ystart_x, start_y event.x, event.ydef on_move(event):global end_x, end_yend_x, end_y event.x, event.ycanvas.coords(rect, start_x, start_y, end_x, end_y)def on_release(event):global end_x, end_yend_x, end_y event.x, event.ycanvas.coords(rect, start_x, start_y, end_x, end_y)root tk.Tk()root.title(选择监控区域)root.attributes(-fullscreen, True)screenshot pyautogui.screenshot()screenshot.save(desktop_screenshot.png, formatpng)canvas tk.Canvas(root, bgwhite)canvas.pack(filltk.BOTH, expandTrue)desktop_image ImageTk.PhotoImage(filedesktop_screenshot.png)canvas.create_image(0, 0, anchortk.NW, imagedesktop_image)rect canvas.create_rectangle(0, 0, 0, 0, outlinered)canvas.bind(ButtonPress-1, on_press)canvas.bind(B1-Motion, on_move)canvas.bind(ButtonRelease-1, on_release)root.mainloop()调用select_screen_region()函数后会弹出一个全屏的窗口你可以通过鼠标点击和拖拽来选择监控区域。选定区域后关闭窗口即可。 监控区域变化 接下来我们将创建一个函数来监控选定区域内的变化。我们将使用OpenCV库对图像进行处理并使用相似性比较来检测区域内的变化。如果检测到较大的变化我们将播放声音进行报警。 import cv2 import numpy as np import threading# 初始化pygame库 pygame.init() pygame.mixer.init()# 全局变量加载MP3文件 def load_alarm_sound(file_path):try:pygame.mixer.music.load(file_path)except pygame.error:print(f无法加载音频文件{file_path})# 封装一个播放MP3警报的函数 def play_alarm():try:# 播放MP3文件pygame.mixer.music.play()except pygame.error:print(播放警报音频失败)# 调用load_alarm_sound函数加载警报音频 load_alarm_sound(警报声.mp3)should_exit False is_alarm False prev_frame_image, current_frame_image None, Nonedef monitor(data_source):global should_exit, is_alarm, prev_frame_image, current_frame_imageif data_source screenshot:prev_frame capture_screen()elif data_source camera:cap cv2.VideoCapture(0)prev_frame capture_video_frame(cap)while not should_exit:current_frame Noneif data_source screenshot:current_frame capture_screen()elif data_source camera:current_frame capture_video_frame(cap)if current_frame is not None:prev_gray cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY)current_gray cv2.cvtColor(current_frame, cv2.COLOR_BGR2GRAY)similarity ssim(prev_gray, current_gray)threshold 0.95if similarity threshold and not is_alarm:print(检测到较大变化进行报警)is_alarm Trueplay_alarm()# 保存变化前后的照片prev_frame_image prev_frame.copy()current_frame_image current_frame.copy()# 在5秒后重置is_alarm标志threading.Timer(5, reset_alarm_flag).start()else:print(没有变化)# 更新前一帧图像prev_frame current_frametime.sleep(5) # 等待5秒后再获取下一帧# 释放资源if data_source camera:cap.release()cv2.destroyAllWindows()def start_recognition():global should_exitshould_exit Falseprint(开始监控)th_monitor threading.Thread(targetmonitor, args(screenshot,))th_monitor.daemon Trueth_monitor.start()def end_program():global should_exitshould_exit Trueprint(结束程序)sys.exit(1)现在我们已经准备好了选择监控区域和监控区域变化的功能。你可以将它们集成到完整的应用程序中例如创建一个Tkinter界面提供开始监控和结束程序的按钮。 import sys import tkinter as tk import time import cv2 import numpy as np import pyautogui import pygame from skimage.metrics import structural_similarity as ssim from PIL import Image, ImageTk# ... 在此添加上面的选择监控区域和监控区域变化的函数 ...# 创建主窗口 root tk.Tk() root.title(区域监控和变化报警)# 添加按钮 btn_start tk.Button(root, text开始监控, commandstart_recognition) btn_end tk.Button(root, text结束程序, commandend_program)# 使用pack布局并设置side参数为LEFT实现横向排列 btn_start.pack(sidetk.LEFT, padx10, pady10) btn_end.pack(sidetk.LEFT, padx10, pady10)# 进入事件循环 root.mainloop() 这样我们就实现了一个简单的区域监控和变化报警系统。当你点击开始监控按钮后可以选择监控区域然后程序会持续监测该区域的变化并在检测到较大变化时进行报警。点击结束程序按钮后程序将退出。希望这篇博客对你有所帮助欢迎探索更多有趣的Python项目
http://wiki.neutronadmin.com/news/103486/

相关文章:

  • 杭州网站关键词推广网站开发文档撰写模板
  • 关于外贸公司的网站建设工程其它费计算网站
  • 网站前台怎么套用织梦后台万网如何上传静态网站
  • 贸易公司如何做网站只做绿色食品的网站
  • 一级域名的网站怎么做国内老牌的网站制作
  • 网站标题怎么设置免费制作主图的网站
  • net网站开发框架网络营销解释
  • 深圳企业网站公司wordpress侧边栏二级菜单
  • 网站建设完工报告网站开发晋升空间 路径
  • 网站模板 phpcmsiis7创建网站
  • 沧州网站域名注册服务公司网站关键词更改
  • 仿99健康网网站源码网站美化教程下载
  • 美的集团网站建设团购网站短信平台
  • 网站建设费用包括哪些方面做网站上面图片的软件
  • 合肥住房城乡建设部的网站智慧团建网站登录平台pc端
  • 网站建设 昆明 价格wordpress插件浏览权限
  • 可以看设计的网站有哪些网站搭建培训学校
  • 东莞设计网站服务的公司达内前端
  • 西安易码建站网站工作室和网络公司
  • 手机网站安全证书过期怎么处理西安专业做网站的公司
  • 简历做的很棒的网站1688网站一起做网店
  • 企业网站备案好不好郑州的建设网站有哪些手续费
  • 广州优化网站建设怎么做网站安全检测
  • 催收网站开发教师进修学校网站建设方案
  • 郑州通告最新seo是什么意思啊视频教程
  • 网站设计 验收标准淘宝网站建设的目标什么
  • 网站开发html书籍下载有什么网站用名字做图片
  • 做问卷美观的网站推介网手机版
  • 深圳做网站企业女教师遭网课入侵视频大全
  • 免费网站建站方法寿光 网站建设