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

在Python中使用draw_bounding_box_on_image()绘制图像上的框

发布时间:2024-01-04 05:57:08

在Python中,我们可以使用TensorFlow库的Object Detection API来绘制图像上的边界框。TensorFlow提供了一个非常方便的函数draw_bounding_box_on_image(),该函数接受一张图像、边界框的坐标和一个可选的标签作为输入,并在图像上绘制带有边界框的图像。

要使用draw_bounding_box_on_image()函数,我们首先需要安装TensorFlow库。可以使用以下命令来安装TensorFlow:

pip install tensorflow

安装完成后,我们可以在Python程序中导入所需的库并使用draw_bounding_box_on_image()函数。

import tensorflow as tf
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# 加载图像
image_path = 'image.jpg'
image = mpimg.imread(image_path)

# 创建一个图形
plt.figure()

# 显示原始图像
plt.subplot(1, 2, 1)
plt.imshow(image)
plt.axis('off')
plt.title('Original Image')

# 绘制边界框的坐标
boxes = [(100, 100, 200, 200), (300, 300, 400, 400)]
labels = ['Box 1', 'Box 2']

# 调用draw_bounding_box_on_image()函数绘制边界框
image_with_boxes = tf.image.draw_bounding_boxes(
    tf.expand_dims(image, 0), 
    tf.constant(boxes)
)

# 显示带有边界框的图像
plt.subplot(1, 2, 2)
plt.imshow(image_with_boxes[0].numpy())
plt.axis('off')
plt.title('Image with Boxes')

# 显示图形
plt.show()

在上面的代码中,我们首先加载了一张图像并显示了原始图像。然后,我们定义了一些边界框的坐标和标签。最后,我们调用draw_bounding_boxes()函数来绘制带有边界框的图像,并显示出结果。

注意,draw_bounding_boxes()函数需要接受一个4个元素的元组作为边界框的坐标,表示边界框的左上角和右下角的像素坐标。我们可以指定多个边界框并为每个边界框指定一个标签。

运行以上代码,你将得到一个包含绘制边界框的图像的Matplotlib图形。 个子图显示原始图像,而第二个子图显示带有边界框的图像。

总结起来,使用draw_bounding_box_on_image()函数可以方便地在Python中绘制图像上的边界框,这对于图像识别、目标检测和计算机视觉任务非常有用。