📅  最后修改于: 2023-12-03 15:19:10.122000             🧑  作者: Mango
OpenCV 是一个强大的计算机视觉库,提供了各种图像处理和分析功能。在本篇文章中,我们将使用 OpenCV 在图像上绘制所有边界框的坐标,并将其保存为一个文本文件。
在计算机视觉中,边界框是一个矩形框,用于表示图像中的对象/目标。在深度学习中,边界框通常与目标检测和图像分割任务一同使用。
OpenCV 提供了绘制边界框的功能。我们可以使用这个功能来写入图像中所有边界框的坐标信息。
import cv2
import os
import glob
image_path = "path/to/image"
img = cv2.imread(image_path)
# 具体的坐标信息格式为:[x1, y1, x2, y2]
# 例如:[[10, 20, 100, 200], [50, 60, 150, 250], ...]
bbox = [[10, 20, 100, 200], [50, 60, 150, 250], ...]
for box in bbox:
x1, y1, x2, y2 = box
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.imwrite("path/to/output/image", img)
# 打开文件
with open("path/to/output/bbox.txt", "w") as f:
# 遍历所有边界框
for box in bbox:
# 写入坐标信息
f.write("{}\n".format(",".join(str(b) for b in box)))
下面是完整的代码片段:
import cv2
import os
import glob
# 图像文件路径
image_path = "path/to/image"
# 加载图像
img = cv2.imread(image_path)
# 边界框坐标信息
bbox = [[10, 20, 100, 200], [50, 60, 150, 250], ...]
# 遍历所有边界框
for box in bbox:
# 提取坐标信息
x1, y1, x2, y2 = box
# 在图像中绘制边界框
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 保存图像
cv2.imwrite("path/to/output/image", img)
# 写入边界框坐标信息
with open("path/to/output/bbox.txt", "w") as f:
# 遍历所有边界框
for box in bbox:
# 写入坐标信息
f.write("{}\n".format(",".join(str(b) for b in box)))
本文介绍了如何使用 OpenCV 在图像上绘制所有边界框的坐标,并将其保存为一个文本文件。这是一个很有用的工具,在目标检测和图像分割中经常使用。您只需要调整边界框坐标信息,并保存即可。