您的位置:首页 > 娱乐 > 八卦 > YoloV8如何将标签绘制在原图中

YoloV8如何将标签绘制在原图中

2024/10/6 16:31:29 来源:https://blog.csdn.net/qq_40938217/article/details/141829108  浏览:    关键词:YoloV8如何将标签绘制在原图中

为了对比训练结果和标签是否一致,有时候需要可视化标签图像进行对比查看,可通过如下代码查看自己标签在图像中的具体框

import os
import cv2
import numpy as np# 输入和输出路径
images_path = 'images/val'  # 图像文件夹路径
labels_path = 'labels/val'  # 标签文件夹路径
output_path = 'output'      # 输出文件夹路径# 确保输出文件夹存在
os.makedirs(output_path, exist_ok=True)# 获取所有图像文件
image_files = [f for f in os.listdir(images_path) if f.endswith(('.bmp', '.jpg', '.jpeg', '.png'))]for image_file in image_files:# 读取图像image_path = os.path.join(images_path, image_file)image = cv2.imread(image_path)height, width, _ = image.shape# 标签文件路径(假设标签文件名与图像文件名相同但扩展名为.txt)label_file = os.path.splitext(image_file)[0] + '.txt'label_path = os.path.join(labels_path, label_file)# 如果标签文件存在,读取标签if os.path.exists(label_path):with open(label_path, 'r') as f:lines = f.readlines()for line in lines:# 解析标签:类别 左上x 左上y 右上x 右上y 右下x 右下y 左下x 左下yparts = line.strip().split()class_id = int(parts[0])points = list(map(float, parts[1:]))# 归一化坐标转换为图像坐标points = [(int(p[0] * width), int(p[1] * height)) for p in zip(points[::2], points[1::2])]# 绘制多边形points = [(points[0][0], points[0][1]), (points[1][0], points[1][1]), (points[2][0], points[2][1]), (points[3][0], points[3][1])]cv2.polylines(image, [np.array(points, np.int32)], isClosed=True, color=(0, 255, 0), thickness=2)# 保存标注后的图像output_image_path = os.path.join(output_path, image_file)cv2.imwrite(output_image_path, image)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com