数据集制作——语义分割前png、jpg格式标签图转yolo格式.txt文件(附代码)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《暗光增强》
📝《模型优化》
📝《模型实战部署》


在这里插入图片描述

目录

  • 一、YOLO格式
  • 二、实现步骤
  • 三、代码
    • 3.1 参数修改
    • 3.2 代码
  • 四、转换结果
  • 五、总结

一、YOLO格式

YOLO格式的数据集通常包含两部分:图像文件和对应的文本标注文件。每个文本标注文件中包含了图像中每个物体的类别和位置信息。每一行代表一个物体,格式如下:

<class_id> <x_center> <y_center> <width> <height>

其中,<class_id>是物体类别的ID,<x_center>和<y_center>是物体中心点的坐标,和是物体的宽度和高度。所有的坐标和尺寸都需要被归一化,即除以图像的宽度和高度,因此它们的值都在0到1之间。

二、实现步骤

要将.png格式的标签图转换为YOLO格式的.txt文件,需要以下步骤:

(1)读取.png标签图,每个物体应该被标记为不同的颜色;

(2)解析标签图,对每种颜色进行遍历,找出所有像素点的坐标;

(3)对每种颜色的像素点坐标进行分析,计算出对应的bounding box(通过找到最小和最大的x,y坐标来实现);

(4)将bounding box的坐标和尺寸归一化,然后保存为.txt文件。

三、代码

3.1 参数修改

在这里插入图片描述

3.2 代码

注:.png格式个标签图像,必须是单通道图像。

import os
import cv2
import numpy as npdef convert_segmentation_to_yolo(img_path, output_path, num_classes):# 读取标签图img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)height, width = img.shape# 创建用于存储YOLO格式的列表yolo_labels = []# 遍历每个类别for class_id in range(num_classes):# 找到当前类别的所有像素位置class_pixels = np.where(img == class_id)# 如果当前类别不存在,跳过if len(class_pixels[0]) == 0:continue# 找到类别的最小和最大边界x_min = np.min(class_pixels[1])x_max = np.max(class_pixels[1])y_min = np.min(class_pixels[0])y_max = np.max(class_pixels[0])# 计算中心点和宽高,并归一化x_center = (x_min + x_max) / 2 / widthy_center = (y_min + y_max) / 2 / heightbbox_width = (x_max - x_min) / widthbbox_height = (y_max - y_min) / height# 保存YOLO格式的标签yolo_labels.append(f"{class_id} {x_center} {y_center} {bbox_width} {bbox_height}")# 将YOLO标签写入.txt文件txt_file = os.path.splitext(os.path.basename(img_path))[0] + ".txt"with open(os.path.join(output_path, txt_file), "w") as f:for label in yolo_labels:f.write(label + "\n")# 示例调用
# img_folder = 'path/to/your/png/folder'
# output_folder = 'path/to/your/txt/folder'
img_folder = 'Images/Segment_Images/image_png'
output_folder = 'Images/Segment_Images/label_txt'
# num_classes = 21  # 假设有21个类别
num_classes = 2  # 假设有21个类别if not os.path.exists(output_folder):os.makedirs(output_folder)# 遍历标签图文件夹并转换
for img_file in os.listdir(img_folder):if img_file.endswith('.png'):img_path = os.path.join(img_folder, img_file)convert_segmentation_to_yolo(img_path, output_folder, num_classes)

四、转换结果

下面是原始的png格式标签图和转换后的yolo格式.txt文件。

在这里插入图片描述

五、总结

以上就是语义分割前png、jpg格式标签图转yolo格式.txt文件的详细过程,希望能帮到你!

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0开始C++(二):类、对象、封装

目录 类&对象的概念 类的内容 对象的创建 ● 栈内存对象 ● 堆内存对象 封装 类&对象的概念 类和对象是一个比较抽象的概念&#xff0c;这里直接用一个实例方便理解。 类&#xff1a;类是一个抽象的概念&#xff0c;用来描述同一类对象的特点&#xff08;比如&am…

第九届信也科技杯全球AI算法大赛——语音深度鉴伪识别参赛A榜 0.968961分

遗憾没有进复赛&#xff0c;只是第41名。先贴个A榜的成绩。A榜的前三十名晋级&#xff0c;个个都是99分的大佬&#xff0c;但是B榜的成绩就有点低了&#xff0c;应该是数据不同源的问题&#xff0c;第一名0.78分。官网链接&#xff1a;语音深度鉴伪识别 官方baselin:https://g…

Springboot 权限认证框架 -- SA-Token 简介(一)

引言 现今的软件开发中&#xff0c;权限认证与访问控制是每一个应用都必不可少的功能。SA-Token是一个简单、安全、易用的权限认证框架&#xff0c;它主要解决登录认证、权限认证、Session会话、单点登录等功能。SA-Token以其轻量级、零学习成本的特点&#xff0c;迅速赢得了开…

Linux mongodb安装及简单使用

说明&#xff1a;本文章主要是对mongodb的单击安装 1.创建文件夹&#xff0c;准备安装包 cd /user/local mkdir tools 2.解压mongodb包 mkdir mongodb tar -xvf mongodb-linux-x86_64-rhel70-5.0.11.tgz -C mongodb 3.进入解压目录 cd mongodb cd mongodb-linux-x86_64-…

emm, ComfyUI的作者从Stability.AI离职了

&#x1f356;背景 今天在更新ComfyUI的过程中&#xff0c;看到Manager中有这样一段描述&#xff1a; 嗯&#xff1f;做了新的官方网站&#xff1f;然后开始新篇章&#xff1f; 难道说ComfyUI的作者从Stability.AI离职了&#xff1f; 赶紧点开链接看了下&#xff0c;emm&…

24.bytebuf创建

1.byteBuf创建方法 2.自动动态扩容的 package com.xkj.bound;import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import lombok.extern.slf4j.Slf4j;@Slf4j public class TestByteBuf {public static void main(String[] args) {//bytebuf可以不指定…

Java集合框架源码分析:LinkedList

文章目录 一、LinkedList特性二、LinkedList底层数据结构三、LinkedList继承关系参考&#xff1a; 一、LinkedList特性 特性描述是否允许为空允许是否允许重复数据允许是否有序有序是否线程安全非线程安全 二、LinkedList底层数据结构 LinkedList同时实现了List接口和Deque接…

基于PLC的全自动洗衣机控制系统课设

一、设计题目 1.1课题内容 根据设计参数和控制要求&#xff0c;设计一全自动洗衣机&#xff0c;画出其运行框图及梯形图控制程序的编制&#xff0c;并画出硬件接线图。 1.2设计参数 1.3控制要求 &#xff08;1&#xff09;按下启动按扭及水位选择开关&#xff0c;开始进水直…

「51媒体-年中大促」天津有哪些媒体资源-媒体宣传服务公司

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 天津的媒体资源相当丰富&#xff0c;涵盖了报纸、电视、广播、新闻门户网站、央媒驻天津机构、视频媒体以及全国媒体资源等多个方面。以下是详细的媒体资源分类和具体信息&#xff1a; 一…

嵌入式web 服务器boa的编译和移植

编译环境&#xff1a;虚拟机 ubuntu 18.04 目标开发板&#xff1a;飞凌OKA40i-C开发板&#xff0c; Linux3.10 操作系统 开发板本身已经移植了boa服务器&#xff0c;但是在使用过程中发现POST方法传输大文件时对数据量有限制&#xff0c;超过1M字节就无法传输&#xff0c;这是…

Nginx-Rewrite

1、Rewrite的定义 rewrite功能就是使用nginx提供的全局变量或自己设置的变量&#xff0c;结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在 server { }, location { }, if { }中&#xff0c;并且只能对域名后边的除去传递的参数外的字符串起作用。 例如location…

进阶必看,3种灵活操作PyTorch张量的高级方法

大家好&#xff0c;在PyTorch中进行高级张量操作时&#xff0c;开发者经常面临这样的问题&#xff0c;如何根据一个索引张量从另一个张量中选取元素。 例如有一个包含数千个特征的大规模数据集&#xff0c;需要根据特定的索引模式快速提取信息。本文将介绍三种索引选择方法来解…

matlab编写微分方程椭圆型方程(一维形式)

文章目录 理论编程实例原代码 理论 椭圆型方程一维格式即常微分方程&#xff0c;边值问题&#xff0c;方程如下所示&#xff1a; 截断误差&#xff1a; 当 h → ∞ h\rightarrow\infty h→∞时&#xff0c;截断误差趋于零&#xff0c;离散方程组成立&#xff0c; 写成矩阵&…

鸿蒙小案例-短视频

参加泡泡玛特写了个小demo,然后给它稍微完善了一下 基于API11 演示效果 hfvideo演示视频 主要功能集中在4个tab页内 1.首页-视频播放页 2.朋友-关注、朋友、粉丝聚合 3.消息-聊天列表 4.我的-当前用户信息展示 主页页面 1.用户主页 2.聊天页面 3.朋友页面 4.视频播放页 因为不…

闲置资源共享平台

摘 要 随着共享经济的高速发展以及人们对物品的需求方面也越来也丰富&#xff0c;而且各大高校的大学生们的购买力也越来越强&#xff0c;随之而来的问题就是身边的闲置资源也越来越多&#xff0c;但是也有许多的大学生对物品的要求方面不是很高&#xff0c;也愿意买下经济实惠…

【计算机网络体系结构】计算机网络体系结构实验-DNS模拟器实验

一、DNS模拟器实验 拓扑图 1. 服务器ip 2. 服务器填写记录 3. 客户端ip以及连接到DNS服务器 4. ping测试

hadoop Yarn资源调度器

概述 Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等运算程序相当于操作系统之上的应用程序 Yarn基本架构 YARN 主要由ResourceManager、NodeManager、ApplicationMaster、Container …

C++基础编程100题-010 OpenJudge-1.3-08 温度表达转化

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/08/ 描述 利用公式 C 5 * (F-32) / 9 &#xff08;其中C表示摄氏温度&#xff0c;F表示华氏温度&#xff09; 进行计算转化。 输入 输入一行&#xff0c;包含一个实数f&#xff0c;表示华氏温度。&…

06 PXE高效批量网络装机

目录 6.1 部署PXE远程安装服务 6.1.1 搭建PXE远程安装服务器 1. 准备CentOS 7安装源 2. 安装并启用TFTP服务 3. 准备Linux内核、初始化镜像文件 4. 准备PXE引导程序 5. 安装并启用DHCP服务 6. 配置启动菜单文件 6.1.2 验证PXE网络安装 6.2 实现Kickstart无人值守安装 6.2.1 准…

STM32学习记录(八)————定时器输出PWM及舵机的控制

文章目录 前言一、PWM1.工作原理2.内部运作机制3. PWM工作模式4.PWM结构体及库函数 二、PWM控制舵机 前言 一个学习STM32的小白~ 有错误评论区或私信指出提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、PWM 1.工作原理 以向上计数为例&#xff0…