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

入侵检测代码

在人工智能中有个入侵检测:当检测到的目标位于指定区域内才算是入侵,思路很简单,判断相关坐标即可:

from matplotlib import pyplot as plt, patches
from shapely.geometry import Polygon, Pointdef is_intrusion(target_box, intrusion_area):# 判断目标框的多个个角是否在入侵区域内for point in [(target_box[0], target_box[1]), (target_box[2], target_box[3]),(target_box[0], target_box[3]), (target_box[2], target_box[1])]:if point_in_polygon(point, intrusion_area):return True# 判断入侵区域是否与目标框相交intrusion_polygon = Polygon(intrusion_area)target_polygon = Polygon([(target_box[0], target_box[1]), (target_box[2], target_box[1]),(target_box[2], target_box[3]), (target_box[0], target_box[3])])return intrusion_polygon.intersects(target_polygon)def point_in_polygon(point, polygon):# 使用 shapely 库检查点是否在多边形内point = Point(point)polygon = Polygon(polygon)return point.within(polygon)# 示例用法
target_box = (100, 100, 200, 200)  # 目标框坐标 (x_min, y_min, x_max, y_max)
intrusion_area_hexagon = [(150, 150), (200, 190), (250, 150), (250, 200), (200, 220), (150, 1000), (100, 220), (150, 190)]  # 六边形区域坐标result = is_intrusion(target_box, intrusion_area_hexagon)
print("是否入侵:", result)# 创建一个新的图
fig, ax = plt.subplots()# 绘制目标框
target_rect = patches.Rectangle((target_box[0], target_box[1]), target_box[2] - target_box[0],target_box[3] - target_box[1], linewidth=1, edgecolor='r', facecolor='none')
ax.add_patch(target_rect)# 绘制六边形区域
intrusion_area_polygon = patches.Polygon(intrusion_area_hexagon, closed=True, linewidth=1, edgecolor='b',facecolor='none')
ax.add_patch(intrusion_area_polygon)# 设置图的坐标轴范围
ax.set_xlim(0, 1920)
ax.set_ylim(0, 1080)# 显示图
plt.show()

效果如下:

http://www.lryc.cn/news/195858.html

相关文章:

  • 数字孪生技术如何提高化工生产安全性?
  • PHP 如何查看php函数源码
  • 前端web自动化测试:selenium怎么实现关键字驱动
  • C++标准模板(STL)- 类型支持 (数值极限,min,lowest,max)
  • 国际SPEC CPU创榜以来整机最高纪录!浪潮信息八路服务器TS860G7刷新权威算力基准评测性能
  • 【linux】重定向+缓冲区
  • 【vim 学习系列文章 10 -- vim 将代码中空格高亮显示方法】
  • 吴恩达深度学习笔记
  • 基于SpringBoot的医疗预约服务管理系统
  • Java本地缓存的使用
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:281-300)
  • 【分享Python代码】图片转化为素描画
  • 汇川Easy521PLC与压力传感器485通讯实例
  • 创意作品管理软件 Bridge 2024 mac中文版 br2024功能特色
  • 【分享】教你加速访问GitHub,进来学!
  • 利用在线培训系统提升员工技能,助力企业发展
  • 深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
  • c# WPF 应用程序在屏幕上居中显示
  • JVM之class文件结构剖析
  • TDengine 签约中石化,支撑八大油田 PCS 系统
  • win11 定时计划任务
  • C++入门之引用与内联函数
  • 浅谈智能照明控制系统应用在城市轨道交通
  • macos 中ios系统升级,但是macos还是老系统,在手机上无法安装ios软件
  • Pytest+Allure生成可添加附件的测试报告
  • Spacedrive:开源跨平台文件管理 | 开源日报 No.57
  • c# 同步异步锁
  • 【Spring AOP】统⼀数据返回格式
  • python+django高校体育乒乓球场地预约管理系统_s2409
  • Python Selenium设计模式-POM