上海网站建设外贸,多功能创意产品设计,wordpress 国内主机,中国建设银行手机网站下载第一章
目标#xff1a;为了查看自己在标注标签时是否准确#xff0c;写了这段代码来将标注的框打到原图上
第二章
步骤#xff1a;进行反归一化得到坐标画出矩形框
第二行是目标图片对应的txt,第三行是目标图片
第三章
全部代码如下#xff1a;
import cv2
import …第一章
目标为了查看自己在标注标签时是否准确写了这段代码来将标注的框打到原图上
第二章
步骤进行反归一化得到坐标画出矩形框
第二行是目标图片对应的txt,第三行是目标图片
第三章
全部代码如下
import cv2
import numpy as nplabel_path C:/Users/23918/Desktop/01_missing_hole_01.txt
image_path C:/Users/23918/Desktop/01_missing_hole_01.jpg# 坐标转换原始存储的是YOLOv5格式
# Convert nx4 boxes from [x, y, w, h] normalized to [x1, y1, x2, y2] where xy1top-left, xy2bottom-right
def xywh2xyxy(x, y, w, h, w1, h1, img):print(原图宽高:\nw1{}\nh1{}.format(w1, h1))# 边界框反归一化x_t x * w1y_t y * h1w_t w * w1h_t h * h1print(反归一化后输出\n第一个:{}\t第二个:{}\t第三个:{}\t第四个:{}\t\n\n.format(x_t, y_t, w_t, h_t))# 计算坐标top_left_x x_t - w_t / 2top_left_y y_t - h_t / 2bottom_right_x x_t w_t / 2bottom_right_y y_t h_t / 2print(左上x坐标:{}.format(top_left_x))print(左上y坐标:{}.format(top_left_y))print(右下x坐标:{}.format(bottom_right_x))print(右下y坐标:{}.format(bottom_right_y))# 绘图 rectangle()函数需要坐标为整数cv2.rectangle(img, (int(top_left_x), int(top_left_y)), (int(bottom_right_x), int(bottom_right_y)), (0, 255, 0), 2)# cv2.imshow(show, img)cv2.imwrite(11.png, img)cv2.waitKey(0) # 按键结束cv2.destroyAllWindows()# 读取labels
with open(label_path, r) as f:lines f.read().strip().splitlines()lb np.array([x.split() for x in lines], dtypenp.float32) # labelsprint(lb)# 读取图像文件
img cv2.imread(str(image_path))
h, w img.shape[:2]# 反归一化并得到左上和右下坐标画出矩形框
for label in lb:x, y, width, height label[:4]xywh2xyxy(x, y, width, height, w, h, img)