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

使用AnnotationBbox()函数在Python中给图像添加多个标注框

发布时间:2024-01-17 17:56:20

在Python中,可以使用matplotlib库来给图像添加标注框。其中,可以使用AnnotationBbox()函数来添加多个标注框。AnnotationBbox()函数的参数包括图像、文本、文本位置和文本样式等。下面是一个使用例子:

首先,导入需要的库:

import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnnotationBbox, OffsetImage

然后,加载图像和创建画布:

# 加载图像
image_path = 'example.png'
image = plt.imread(image_path)

# 创建画布
fig, ax = plt.subplots()

接着,设置标注框的位置和样式,并使用OffsetImage()函数创建一个偏移图像对象:

# 设置标注框的位置和样式
x1, y1 = 0.2, 0.2
x2, y2 = 0.8, 0.8
box_style = dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5)

# 创建一个偏移图像对象
imagebox = OffsetImage(image, zoom=0.2)

然后,使用AnnotationBbox()函数来创建一个标注框对象,并将其添加到坐标系中:

# 创建标注框对象
ab = AnnotationBbox(imagebox, (x1, y1), boxcoords="data", bboxprops=box_style)

# 添加标注框到坐标系中
ax.add_artist(ab)

接下来,可以添加多个标注框,只需要重复上述步骤:

# 创建标注框对象
ab = AnnotationBbox(imagebox, (x2, y2), boxcoords="data", bboxprops=box_style)

# 添加标注框到坐标系中
ax.add_artist(ab)

最后,可以设置坐标轴范围和标题,并展示图像:

# 设置坐标轴范围
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)

# 设置标题
ax.set_title('Multiple Annotation Boxes')

# 展示图像
plt.show()

这样,就可以在Python中给图像添加多个标注框了。注意,要确保标注框的位置在合适的范围内,以便完整显示在图像上。