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

在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中绘制图像中的边界框。