码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 入侵检测代码


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

    1. from matplotlib import pyplot as plt, patches
    2. from shapely.geometry import Polygon, Point
    3. def is_intrusion(target_box, intrusion_area):
    4. # 判断目标框的多个个角是否在入侵区域内
    5. for point in [(target_box[0], target_box[1]), (target_box[2], target_box[3]),
    6. (target_box[0], target_box[3]), (target_box[2], target_box[1])]:
    7. if point_in_polygon(point, intrusion_area):
    8. return True
    9. # 判断入侵区域是否与目标框相交
    10. intrusion_polygon = Polygon(intrusion_area)
    11. target_polygon = Polygon([(target_box[0], target_box[1]), (target_box[2], target_box[1]),
    12. (target_box[2], target_box[3]), (target_box[0], target_box[3])])
    13. return intrusion_polygon.intersects(target_polygon)
    14. def point_in_polygon(point, polygon):
    15. # 使用 shapely 库检查点是否在多边形内
    16. point = Point(point)
    17. polygon = Polygon(polygon)
    18. return point.within(polygon)
    19. # 示例用法
    20. target_box = (100, 100, 200, 200) # 目标框坐标 (x_min, y_min, x_max, y_max)
    21. intrusion_area_hexagon = [(150, 150), (200, 190), (250, 150), (250, 200), (200, 220), (150, 1000), (100, 220), (150, 190)] # 六边形区域坐标
    22. result = is_intrusion(target_box, intrusion_area_hexagon)
    23. print("是否入侵:", result)
    24. # 创建一个新的图
    25. fig, ax = plt.subplots()
    26. # 绘制目标框
    27. target_rect = patches.Rectangle((target_box[0], target_box[1]), target_box[2] - target_box[0],
    28. target_box[3] - target_box[1], linewidth=1, edgecolor='r', facecolor='none')
    29. ax.add_patch(target_rect)
    30. # 绘制六边形区域
    31. intrusion_area_polygon = patches.Polygon(intrusion_area_hexagon, closed=True, linewidth=1, edgecolor='b',
    32. facecolor='none')
    33. ax.add_patch(intrusion_area_polygon)
    34. # 设置图的坐标轴范围
    35. ax.set_xlim(0, 1920)
    36. ax.set_ylim(0, 1080)
    37. # 显示图
    38. plt.show()

    效果如下:

  • 相关阅读:
    MockingBird,手把手教你克隆您的声音,AI代言人,惊艳你的耳朵!
    【vue网站优化】秒开网页
    ClickHouse 创建数据库建表视图字典 SQL
    postman|接口测试 | pre-request script 场景应用
    Docker操作相关命令
    uni-app:服务器端数据绘制多个echarts图标(renderjs解决手机端无法显示问题)
    Lyft Presto Gateway源码机制分析
    【C++】泛型编程 ⑪ ( 类模板的运算符重载 - 函数实现 写在类外部的不同的 .h 头文件和 .cpp 代码中 )
    抽奖中的分布式锁应用
    SSI漏洞之[BJDCTF2020]EasySearch1
  • 原文地址:https://blog.csdn.net/qq_33023933/article/details/133883100
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号