使用Python的draw_bounding_box_on_image()函数绘制图像中的边界框
发布时间:2024-01-04 05:56:47
draw_bounding_box_on_image()函数是在Python中用于绘制图像中边界框的一个函数。它可以方便地绘制矩形或矩形形状的边界框,并根据指定的参数设置样式、颜色和边框宽度。
下面是使用Python的draw_bounding_box_on_image()函数的一个示例:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red', thickness=2):
"""
在图像上绘制边界框
参数:
- image: numpy数组,表示要绘制边界框的图像
- ymin, xmin, ymax, xmax: 边界框的坐标
- color: 边界框的颜色
- thickness: 边界框的线条宽度
"""
# 创建一个matplotlib figure和axis
fig, ax = plt.subplots(1)
# 显示图像
ax.imshow(image)
# 创建一个矩形路径并添加到axis
rect = patches.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, linewidth=thickness, edgecolor=color, facecolor='none')
ax.add_patch(rect)
# 可选的:调整坐标轴刻度
ax.set_xticks(np.arange(image.shape[1]))
ax.set_yticks(np.arange(image.shape[0]))
# 可选的:添加刻度标签
ax.set_xticklabels([])
ax.set_yticklabels([])
# 设置刻度标签可见性
plt.tick_params(top=False, bottom=False, left=False, right=False, labelleft=False, labelbottom=False)
# 可选的:显示网格线
plt.grid(False)
# 可选的:设置图像显示比例
plt.axis('equal')
# 显示绘制边界框的图像
plt.show()
# 创建一个示例图像
image = np.random.random((100, 100, 3))
# 绘制边界框
draw_bounding_box_on_image(image, 20, 30, 80, 70)
在这个示例中,我们首先导入了必要的模块和函数。然后定义了一个draw_bounding_box_on_image()函数来绘制边界框。这个函数接收一个表示图像的numpy数组作为输入,以及边界框的坐标、颜色和线条宽度等参数。函数内部会创建一个matplotlib的figure和axis,然后绘制图像并在其上添加矩形边界框。最后显示绘制边界框的图像。
在示例的最后部分,我们创建了一个随机的图像,并调用draw_bounding_box_on_image()函数来绘制边界框。边界框的坐标为(20, 30)到(80, 70)。
通过运行以上代码,我们可以在图像中看到一个带有选定坐标和样式的边界框。可以根据自己的需求修改坐标、颜色、线条宽度等参数,以满足实际应用的要求。
