吉祥猴378 2024-07-09 20:42 采纳率: 95.8%
浏览 2
已结题

哪位大姥,知道yolov5如何在目标身上出现方框,目标坐标如何表示

def plot_one_box(xyxy, frame, label, color, line_thickness):
top, left, bottom, right = xyxy

scr = mss.mss()  # 创建屏幕截图对象
monitor = {  # 定义屏幕的坐标范围,根据你的需要进行调整
    "left": 0,
    "top": 0,
    "width": 2560,
    "height": 1440 }
cv2.namedWindow('SF_TRT', cv2.WND_PROP_VISIBLE)  # 创建显示窗口
while True:# 持续截图并进行目标检测
    img = scr.grab(monitor)  
    results=model(img
    pt_one_box(xyxy,img, 'jiangshi', (0, 255, 0), 2)  # 使用绿色绘制边框,线条粗细为2
    cv2.imshow("SF_TRT", img)  # 显示图像并等待按键关闭窗口或退出循环
    k = cv2.waitKey(1)
  
   
  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-07-09 20:42
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    你好!很高兴你对使用 YOLOv5 进行目标检测感兴趣。YOLOv5 是一种非常流行的目标检测算法,它能够快速准确地在图像中识别和定位对象。下面我会根据你的问题,逐一解释如何实现你的需求。

    1. 定义 plot_one_box 函数以绘制目标方框plot_one_box 函数是用来在图像上绘制矩形框的。参数 xyxy 表示矩形框的四个坐标点,格式为 (top, left, bottom, right),其中 topbottom 是矩形框的上下边界,leftright 是左右边界。frame 是原始图像,label 是标签,color 是矩形框的颜色,line_thickness 是线条的粗细。

      import cv2
      
      def plot_one_box(xyxy, frame, label, color, line_thickness):
          top, left, bottom, right = xyxy
          cv2.rectangle(frame, (left, top), (right, bottom), color, line_thickness)
          cv2.putText(frame, label, (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1)
      
    2. 使用 mss 库创建屏幕截图对象并定义屏幕坐标范围mss 是一个 Python 库,用于捕获屏幕截图。首先需要安装 mss 库,然后可以创建一个 mss 对象,并定义屏幕截图的坐标范围。

      from mss import mss
      
      scr = mss()
      monitor = {
          "left": 0,
          "top": 0,
          "width": 2560,
          "height": 1440
      }
      
    3. 在循环中持续截图并使用模型进行目标检测: 你可以使用一个无限循环来持续截图,并使用你的模型(比如 YOLOv5)对截图进行目标检测。results 变量应该是模型检测的结果。

      while True:
          img = scr.grab(monitor)
          results = model(img)  # 这里需要替换为你的模型调用代码
          # 假设 results 是一个包含检测框和标签的列表
          for result in results:
              plot_one_box(result['bbox'], img, result['label'], (0, 255, 0), 2)
      
    4. 创建显示窗口并使用 cv2.imshow 显示图像: 使用 cv2.namedWindow 创建一个窗口,然后使用 cv2.imshow 将图像显示在这个窗口中。

      cv2.namedWindow('SF_TRT', cv2.WND_PROP_VISIBLE)
      cv2.imshow('SF_TRT', img)
      
    5. 使用 cv2.waitKey 等待按键操作以关闭窗口或退出循环cv2.waitKey 函数用于等待键盘输入。如果参数是 1,它将等待 1 毫秒。如果在这个时间内有按键按下,它将返回按键的 ASCII 码,否则返回 -1。

      k = cv2.waitKey(1)
      if k == 27:  # 27 是 ESC 键的 ASCII 码
          cv2.destroyAllWindows()
          break
      

    请注意,上述代码只是一个示例,你需要根据你的具体情况进行调整。例如,model(img) 应该替换为你调用 YOLOv5 模型的代码。

    至于参考链接,你可以查看以下资源来获取更多信息:

    希望这能帮助到你!如果你还有其他问题,随时欢迎提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月18日
  • 已采纳回答 7月10日
  • 创建了问题 7月9日

悬赏问题

  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件