python OpenCV画 bounding box并标明数据类

时间:2025-04-11 14:55:24
import cv2 class_name = "car" # b_box 左上角坐标 ptLeftTop = np.array([40, 145]) # 文本框左上角坐标 textleftop = [] # b_box 右下角坐标 ptRightBottom =np.array([365, 400]) # 框的颜色 point_color = (0, 255, 0) # 线的厚度 thickness = 2 # 线的类型 lineType = 4 # (500, 375, 3) -> h w c src = cv2.imread('data/detect/') cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE) src = np.array(src) # 画 b_box cv2.rectangle(src, tuple(ptLeftTop), tuple(ptRightBottom), point_color, thickness, lineType) # 获取文字区域框大小 t_size = cv2.getTextSize(class_name, 1, cv2.FONT_HERSHEY_PLAIN, 1)[0] # 获取 文字区域右下角坐标 textlbottom = ptLeftTop + np.array(list(t_size)) # 绘制文字区域矩形框 cv2.rectangle(src, tuple(ptLeftTop), tuple(textlbottom), point_color, -1) # 计算文字起始位置偏移 ptLeftTop[1] = ptLeftTop[1] + (t_size[1]/2 + 4) # 绘字 cv2.putText(src, class_name , tuple(ptLeftTop), cv2.FONT_HERSHEY_PLAIN, 1.0, (255, 0, 255), 1) # 打印图片的shape print(src.shape) cv2.imshow('image', src) cv2.waitKey(0) cv2.destroyAllWindows()