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

使用draw_bounding_box_on_image()函数在Python中绘制边界框样式

发布时间:2024-01-04 06:00:50

在Python中,可以使用draw_bounding_box_on_image()函数绘制边界框样式。该函数主要用于在图像上绘制边界框,可以设置边界框的位置、颜色、线宽等参数。

下面是一个使用draw_bounding_box_on_image()函数绘制边界框样式的例子:

import tensorflow as tf
import numpy as np
from PIL import Image, ImageDraw

def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color=(0, 255, 0), thickness=2):
    # 将PIL图像转换为numpy数组
    np_img = np.array(image)
    draw = ImageDraw.Draw(image)
    
    # 计算边界框的像素坐标
    height, width, _ = np_img.shape
    ymin = int(ymin * height)
    xmin = int(xmin * width)
    ymax = int(ymax * height)
    xmax = int(xmax * width)
    
    # 绘制边界框
    for i in range(thickness):
        draw.rectangle([xmin + i, ymin + i, xmax - i, ymax - i], outline=color)
    
    # 将图像转换回PIL格式,并返回
    return image

# 加载图像数据
image_path = 'image.jpg'
image = Image.open(image_path)

# 边界框坐标(取值范围为0-1)
ymin = 0.25
xmin = 0.25
ymax = 0.75
xmax = 0.75

# 绘制边界框
image_with_bbox = draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax)

# 显示图像
image_with_bbox.show()

在上面的例子中,首先定义了一个draw_bounding_box_on_image()函数,用于在图像上绘制边界框。该函数接受一个PIL图像对象以及边界框的坐标作为输入,并返回绘制了边界框的新图像。

在代码的主体部分,首先加载了一个图像文件,然后定义了边界框的坐标(取值范围为0-1)。接下来,调用draw_bounding_box_on_image()函数绘制边界框,并将结果赋值给image_with_bbox变量。最后,调用show()方法显示带有边界框的图像。

可以根据实际的需求,在draw_bounding_box_on_image()函数中设置不同的参数,如边界框的颜色、线宽等,以及绘制多个边界框。这样就可以实现不同样式的边界框绘制。