欢迎访问宙启技术站
智能推送

在Python中绘制图像数组上的边界框与标签

发布时间:2023-12-15 19:07:48

在Python中,可以使用matplotlib库来绘制图像数组上的边界框和标签。下面是一个使用例子,该例子假设有一个图像数组img和一组边界框bbox以及相应的标签labels。

首先,我们需要导入必要的库并创建一个示例图像数组和一组示例边界框和标签。

import numpy as np
import matplotlib.pyplot as plt

# 创建示例图像数组
img = np.zeros((100, 100))

# 创建示例边界框和标签
bbox = np.array([[10, 10, 30, 30], [60, 60, 80, 80]])  # 边界框格式为[x_min, y_min, x_max, y_max]
labels = ['A', 'B']

接下来,我们可以使用matplotlib的imshow函数显示图像数组。然后,使用matplotlib的Rectangle函数来绘制边界框,并使用annotate函数添加标签。

# 显示图像
plt.imshow(img, cmap='gray')

# 绘制边界框与标签
for i, box in enumerate(bbox):
    x_min, y_min, x_max, y_max = box
    width = x_max - x_min
    height = y_max - y_min
    
    # 创建边界框矩形
    rect = plt.Rectangle((x_min, y_min), width, height, fill=False, edgecolor='red')
    plt.gca().add_patch(rect)
    
    # 添加标签
    label = labels[i]
    plt.annotate(label, (x_min, y_min), color='red', weight='bold')

# 显示图像与边界框
plt.show()

运行以上代码,将绘制带有边界框和标签的图像数组。边界框将以红色矩形的形式显示在图像上,并且每个边界框上方会有相应的标签。

这只是一个基本的示例,可以根据具体需求进行修改和扩展。例如,可以使用不同的颜色和样式来绘制边界框,或者根据标签来选择不同的颜色。还可以使用不同的字体和样式来添加标签。此外,还可以将此代码封装为一个函数,以便在需要时重复使用。

总结起来,使用matplotlib库可以方便地在Python中绘制图像数组上的边界框和标签。这对于可视化和分析图像数据中的目标位置和属性非常有用。