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

如何在Python中绘制带有bbox的图像标注

发布时间:2023-12-18 13:49:24

在Python中绘制带有bounding box (bbox)的图像标注可以使用OpenCV库。OpenCV是一个广泛使用的计算机视觉库,它提供了许多图像处理和计算机视觉算法。

首先,您需要安装OpenCV库。在终端中运行以下命令来安装OpenCV库:

pip install opencv-python

接下来,您需要导入所需的库和模块。

import cv2
import matplotlib.pyplot as plt

下面是一个例子,展示了如何使用OpenCV和matplotlib绘制带有bbox的图像标注:

# 读取图像
image = cv2.imread('image.jpg')

# 定义bbox坐标(左上角和右下角)
bbox = [(100, 100), (200, 200)]

# 在图像上绘制bbox
cv2.rectangle(image, bbox[0], bbox[1], (0, 255, 0), 2)

# 将OpenCV图像格式转换为RGB格式
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 显示图像
plt.imshow(image_rgb)
plt.axis('off')
plt.show()

在此示例中,我们首先使用cv2.imread()函数读取图像。然后,我们定义了bbox的坐标,即框选区域的左上角和右下角坐标。接下来,我们使用cv2.rectangle()函数在图像上绘制bbox。此函数的参数依次是:图像、bbox的左上角坐标、bbox的右下角坐标、颜色(此处为绿色)、线条宽度(此处为2)。

绘制完bbox后,我们需要将OpenCV图像格式转换为matplotlib所需的RGB格式。这可以通过使用cv2.cvtColor()函数来完成,其中的参数cv2.COLOR_BGR2RGB将BGR颜色空间转换为RGB颜色空间。

最后,我们使用matplotlib.pyplot.imshow()函数来显示图像,并使用plt.axis('off')函数去除坐标轴标签。最后,通过调用plt.show()函数显示图像。

您可以根据需要修改bbox的坐标和颜色。还可以通过添加更多的bbox来标注多个对象。

注意:在使用OpenCV库时,坐标表示为(x,y),其中x是图像的列数,y是图像的行数。而在大多数计算机视觉库和软件中,坐标表示为(y,x),y表示行数,x表示列数。因此,在定义bbox坐标时,请确保对应正确的坐标。