import numpy as np import cv2 def draw_grid(img: np.ndarray, grid_w: int, grid_h:int): """划格网""" img_h, img_w, _ = img.shape # 绘制横向网格线 for i in range((img_h // grid_h)+1): cv2.line(img, (0, i*grid_h), (img_w, i*grid_h), (0, 255, 0), 2) # 绘制纵向网格线 for i in range((img_w // grid_w)+1): cv2.line(img, (i*grid_w, 0), (i*grid_w, img_h), (0, 255, 0), 2) return img def draw_predict_grid(img, patches_index, predicted_class, confidence): """在img上绘制预测结果""" for i, (idx_w, idx_h) in enumerate(patches_index): cv2.circle(img, (idx_w, idx_h), 10, (0, 255, 0), -1) text1 = f'cls:{predicted_class[i]}' text2 = f'prob:{confidence[i] * 100:.1f}%' color = (0, 0, 255) if predicted_class[i] else (255, 0, 0) cv2.putText(img, text1, (idx_w, idx_h + 128), cv2.FONT_HERSHEY_SIMPLEX, 1.0, color, 2) cv2.putText(img, text2, (idx_w, idx_h + 128 + 25), cv2.FONT_HERSHEY_SIMPLEX, 1.0, color, 2) return img