在计算机视觉领域中,我们经常需要对不同类别的物体进行分类和定位。其中一种常见的方法是在图像上使用多个颜色的边界框来标示不同类别的物体。 下面是一个使用OpenCV库在Python中绘制多色边界框的示例代码:
import cv2
import numpy as np
# 颜色名称和RGB颜色值的字典
COLORS = {
'red': (0, 0, 255),
'green': (0, 255, 0),
'blue': (255, 0, 0),
# 新加颜色
'yellow': (0, 255, 255)
}
# 边界框列表,格式为:[x1, y1, w, h, class_name]
boxes = [
[100, 100, 50, 50, 'red'],
[200, 200, 70, 70, 'green'],
[300, 300, 90, 90, 'blue'],
# 新加边界框
[150, 150, 80, 80, 'yellow']
]
# 读取图像
img_path = 'test.jpg'
img = cv2.imread(img_path)
# 在图像上绘制边界框和类别标签
for box in boxes:
x1, y1, w, h, class_name = box
x2, y2 = x1 + w, y1 + h
color = COLORS[class_name]
cv2.rectangle(img, (x1, y1), (x2, y2), color, thickness=2)
text = f"{class_name} ({w}*{h})"
cv2.putText(img, text, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, thickness=1)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个示例代码中,我们首先定义了一个颜色字典,每种颜色都对应一个RGB值。我们还定义了一个边界框列表boxes,包含了四个边界框的位置、大小和类别信息。 然后,我们读取了一张名为test.jpg的图像,并逐个遍历边界框列表中的元素,使用cv
上一篇:不同类别对象的引用