html5网站动态效果,折扣网站怎么做,郑州模板建站代理,广西壮族自治区官网此代码的功能是标注信息验证#xff0c;将原图和YOLOv8标注文件#xff08;txt#xff09;放在同一个文件夹中#xff0c;作为输入文件夹 程序将标注的信息还原到原图中#xff0c;并将原图和标注后的图像一同保存#xff0c;以便查看
两个draw_labels函数#xff0c;分…此代码的功能是标注信息验证将原图和YOLOv8标注文件txt放在同一个文件夹中作为输入文件夹 程序将标注的信息还原到原图中并将原图和标注后的图像一同保存以便查看
两个draw_labels函数分别是将目标区域轮廓标出来或者颜色填充
import cv2
import numpy as np
import osdef read_txt_labels(txt_file):从 txt 标注文件中读取标签:param txt_file: txt 标注文件路径:return: 标签列表with open(txt_file, r) as f:labels []for line in f.readlines():label_data line.strip().split( )class_id int(label_data[0])# 解析边界框坐标coordinates [float(x) for x in label_data[1:]]labels.append([class_id, coordinates])return labelsdef draw_labels(image, labels):在图像上绘制分割区域轮廓:param image: 图像:param labels: 标签列表for label in labels:class_id, coordinates label# 将坐标转换为整数并重新塑形为多边形points [(int(x * image.shape[1]), int(y * image.shape[0])) for x, y in zip(coordinates[::2], coordinates[1::2])]# 使用多边形绘制轮廓cv2.polylines(image, [np.array(points)], True, (0, 0, 255), 2) # 红色表示分割区域轮廓# def draw_labels(image, labels):
#
# 在图像上绘制分割区域
# :param image: 图像
# :param labels: 标签列表
#
# for label in labels:
# class_id, coordinates label
# # 将坐标转换为整数并重新塑形为多边形
# points [(int(x * image.shape[1]), int(y * image.shape[0])) for x, y in zip(coordinates[::2], coordinates[1::2])]
# # 使用多边形填充
# cv2.fillPoly(image, [np.array(points)], (0, 255, 0)) # 绿色表示分割区域def process_and_save_image(image_path, txt_path, output_folder):# 读取图像image cv2.imread(image_path)labels read_txt_labels(txt_path)# 复制原始图像以进行绘制image_with_labels image.copy()# 绘制分割区域draw_labels(image_with_labels, labels)# 创建一个新的图像左侧是原图右侧是带标注的图combined_image np.concatenate((image, image_with_labels), axis1)# 定义输出图像路径base_filename os.path.basename(image_path)output_image_path os.path.join(output_folder, base_filename)# 保存图像cv2.imwrite(output_image_path, combined_image)def main(input_folder, output_folder):# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_folder)# 获取输入文件夹中的所有图片文件image_files [f for f in os.listdir(input_folder) if f.lower().endswith((.png, .jpg, .jpeg))]for image_file in image_files:# 构建图像和标注文件的路径image_path os.path.join(input_folder, image_file)txt_file os.path.splitext(image_path)[0] .txt# 检查标注文件是否存在if os.path.exists(txt_file):process_and_save_image(image_path, txt_file, output_folder)else:print(f标注文件 {txt_file} 不存在跳过图像 {image_file})if __name__ __main__:input_folder_path D:\Desktop\images # 替换为实际的输入文件夹路径output_folder_path D:\Desktop\images_02 # 替换为实际的输出文件夹路径main(input_folder_path, output_folder_path)示例