这段代码的主要目的是处理一个数据集中的图像和标签文件,将标签文件中定义的边界框(Bbox)绘制到对应的图像上,并保存这些带有边界框的图像。通过这种方式,可以将数据集中的标签信息可视化,便于进一步的分析和处理。常用于CV中的目标检测数据集的标签质量检查。
这是我们常见是标签格式是yolo的数据集的格式:
目录:
dataset:绝对路径:"C:\Desktop\dataset"
--images:绝对路径:"C:\Desktop\dataset\images"
----.jpg
--labels:绝对路径:"C:\Desktop\dataset\labels"
.....txt
.txt文件的标签格式yolo格式(例子):
3 0.385417 0.498148 0.0625 0.033333
数据集是这样子的,同时给出了标签的格式。labels目录中的.txt中的数据是目标检测的标签数据,每一行数据分别对应一个GT框,每一行数据从左到右分别是:id, x,y,w,h。列1 - 目标类别id , 列2 - 目标中心位置x, 列3 - 目标中心位置y, 列4 - 目标宽度w,列5 - 目标高度h。x,y,w,h是小于1的浮点数,因为是经过对图像进行了归一化处理得到的值,也就是目标的真实的x,w值除以图像的宽度,y,h除以图像的高度。
以下是代码的详细思路和步骤:
-
定义路径:
root_dir
:数据集的根目录路径(需要用户自行指定)。images_dir
:存放原始图像的目录路径。labels_dir
:存放标签文件的目录路径。output_images_plot_dir
:存放绘制了边界框的图像的输出目录路径。
-
创建