YOLOV5中获取det结果时*xyxy格式转化普通列表

YOLOV5中获取det结果时*xyxy格式转化普通列表

 for det in pred:
     if det is not None and len(det):
          det[:,:4]=scale_coords(img.shape[2:],det[:,:4],img0.shape).round()
          xyxy_point = []
          center_point = []
          im0s = img0
          # im0s = cv2.cvtColor(im0s, cv2.COLOR_BGR2RGB)
          for *xyxy,conf,cls in det:
              cls_id=int(cls)
              label = f'{conf:.2f} {self.names[cls_id]}'
              dyd1, dyd2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
              xyxy_point.append([dyd1, dyd2])
              plot_one_box(x=xyxy, img=im0s, color=colors[cls_id], label=label, line_thickness=2)

              X = (int(xyxy[0]) + int(xyxy[2])) / 2
              Y = (int(xyxy[1]) + int(xyxy[3])) / 2
              print(f"\n{label}:{X},{Y}")
              center_point.append([X, Y])
              # xyxy = [(int(xyxy[i]), int(xyxy[i + 1])) for i in range(0, len(xyxy), 2)]#实现上面dyd1dyd2同样功能
              # print(xyxy)
              annotator.box_label(xyxy, depth_image, label)
              # if self.names[int(cls)]=="person" or self.names[int(cls)]=="car" or self.names[int(cls)]=="bicycle":
              #     label=(f'{conf:.2f} {self.names[cls_id]}')
              #     annotator.box_label(xyxy, depth_image,label, color=colors(cls_id, True))
  result= annotator.result()
  return xyxy_point,center_point,result

对xyxy进行print,输出如下:

[tensor(237., device=‘cuda:0’), tensor(4., device=‘cuda:0’), tensor(634., device=‘cuda:0’), tensor(478., device=‘cuda:0’)]

改为普通列表格式,有两种:

dyd1, dyd2 = (int(xyxy[0]), int(xyxy[1])), (int(xyxy[2]), int(xyxy[3]))
xyxy = [(int(xyxy[i]), int(xyxy[i + 1])) for i in range(0, len(xyxy), 2)]

以上两行代码都实现转为普通列表格式:

[[(237, 4), (634, 478)]]

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值