在Python中使用draw_bounding_box_on_image()绘制图像中的边界线
发布时间:2024-01-04 05:59:42
在Python中,可以使用draw_bounding_box_on_image()函数来在图像上绘制边界框。这个函数是TensorFlow Object Detection API的一部分,用于可视化目标检测结果。
下面是一个使用draw_bounding_box_on_image()函数绘制边界框的例子:
import tensorflow as tf
import matplotlib.pyplot as plt
from PIL import Image
def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red', thickness=2):
"""
在图像上绘制边界框
:param image: PIL Image对象
:param ymin: 边界框左上角的y坐标
:param xmin: 边界框左上角的x坐标
:param ymax: 边界框右下角的y坐标
:param xmax: 边界框右下角的x坐标
:param color: 边界框颜色
:param thickness: 边界框线宽
"""
draw = tf.image.draw_bounding_boxes(tf.expand_dims(tf.convert_to_tensor(image, dtype=tf.float32), 0),
tf.expand_dims(tf.convert_to_tensor([[ymin, xmin, ymax, xmax]], dtype=tf.float32),
0),
colors=tf.convert_to_tensor([color]))
plt.imshow(draw[0])
plt.axis('off')
plt.show()
# 读取图像
image_path = 'image.jpg'
image = Image.open(image_path)
# 在图像上绘制边界框
draw_bounding_box_on_image(image, 100, 200, 300, 400)
在这个例子中,首先引入了必要的库:TensorFlow、matplotlib和PIL库。然后定义了draw_bounding_box_on_image()函数,该函数接受一个PIL Image对象和边界框的坐标作为参数。函数通过调用tf.image.draw_bounding_boxes()函数将边界框绘制在图像上,并使用matplotlib将处理后的图像显示出来。
在最后的代码块中,通过给定的边界框坐标调用draw_bounding_box_on_image()函数进行绘制。这里假设边界框的左上角坐标为(100, 200),右下角坐标为(300, 400)。你可以根据需要修改这些坐标为实际的值。
绘制出来的图像将显示边界框,边界框默认使用红色标记,线宽为2。你可以在调用draw_bounding_box_on_image()函数时指定不同的颜色和线宽来自定义边界框的外观。
希望这个例子可以帮助你使用draw_bounding_box_on_image()函数在Python中绘制图像中的边界框。
