这个问题通常出现在使用OpenCV等库绘制边界框时。解决方法是在绘制矩形框时,将标签也同时绘制出来。以下是一个示例代码:
import cv2
img = cv2.imread('image.jpg')
x,y,w,h = 100,100,200,200
label = 'cat'
color = (0,255,0)
font = cv2.FONT_HERSHEY_SIMPLEX
thickness = 2
text_size, _ = cv2.getTextSize(label, font, 1, thickness)
cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness)
cv2.rectangle(img, (x-thickness, y-text_size[1]-thickness), (x+text_size[0]+thickness, y), color, -1)
cv2.putText(img, label, (x, y-thickness), font, 1, (255,255,255), thickness)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个示例代码中,首先读入一张图片,然后定义矩形框的位置、标签、颜色等参数。接着使用cv2.rectangle
函数绘制矩形框,用cv2.putText
函数绘制标签,并将标签的背景颜色设为与矩形框同色。其中cv2.getTextSize
函数可以获取标签在图像中占用的像素大小,以便按比例分配标签的位置。最后使用cv2.imshow
函数显示结果。
上一篇:边界矩形碰撞检测