使用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()函数中设置不同的参数,如边界框的颜色、线宽等,以及绘制多个边界框。这样就可以实现不同样式的边界框绘制。
