使用Python的draw_bounding_box_on_image()函数在图像上绘制框样式
发布时间:2024-01-04 06:01:34
draw_bounding_box_on_image()是一个在图像上绘制框样式的函数,可以使用Python语言编写。该函数可以用于在给定图像上绘制边界框,用来标记感兴趣的区域。下面是一个使用draw_bounding_box_on_image()函数的例子:
import numpy as np
from PIL import Image, ImageDraw
def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red', thickness=2):
"""
在给定图像上绘制边界框
参数:
image:要绘制的图像,可以是numpy数组或PIL图像对象
ymin, xmin, ymax, xmax:边界框的坐标,取值范围为[0, 1],表示相对于图像尺寸的比例
color:绘制颜色,默认为'red',可以是一个包含3个整数值的列表/元组,分别表示红、绿、蓝的通道值
thickness:绘制线条的宽度,默认为2
返回:
绘制完边界框的图像
"""
if isinstance(image, np.ndarray):
image = Image.fromarray(image)
draw = ImageDraw.Draw(image)
im_width, im_height = image.size
left = int(xmin * im_width)
right = int(xmax * im_width)
top = int(ymin * im_height)
bottom = int(ymax * im_height)
for i in range(thickness):
draw.rectangle([left + i, top + i, right - i, bottom - i], outline=color)
return image
# 读取图像
image_path = "example.jpg"
image = Image.open(image_path)
# 定义边界框坐标
ymin = 0.1
xmin = 0.2
ymax = 0.8
xmax = 0.7
# 使用draw_bounding_box_on_image()函数绘制边界框
image_with_box = draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax)
# 显示绘制完边界框的图像
image_with_box.show()
以上代码演示了如何使用draw_bounding_box_on_image()函数在给定的图像上绘制边界框。在代码中,首先使用Image.open()函数读取了一张图像,然后定义了边界框的坐标。最后,调用draw_bounding_box_on_image()函数,将图像、边界框坐标传入,得到绘制完边界框的图像。使用show()方法可以显示图像。
在上述代码中,我们传入了默认的绘制颜色(红色)和线条宽度(2个像素)。你可以根据需要自定义这些参数,比如传入不同的颜色值或线条宽度,以满足特定的绘制需求。
使用draw_bounding_box_on_image()函数可以方便地在图像上绘制边界框,帮助我们标记感兴趣的区域并进行后续处理。
