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

使用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的figureaxis,然后绘制图像并在其上添加矩形边界框。最后显示绘制边界框的图像。

在示例的最后部分,我们创建了一个随机的图像,并调用draw_bounding_box_on_image()函数来绘制边界框。边界框的坐标为(20, 30)到(80, 70)。

通过运行以上代码,我们可以在图像中看到一个带有选定坐标和样式的边界框。可以根据自己的需求修改坐标、颜色、线条宽度等参数,以满足实际应用的要求。