批量处理:读取文件夹,将json文件转化为txt文件

该博客展示了如何将包含多个样本的JSON标注文件转换为TXT格式,适用于不同的数据结构,包括单个矩形框、多个多边形和特定标记点的数据。通过读取JSON文件,解析关键数据,然后将它们写入TXT文件,实现数据格式的转换,以适应不同的目标检测和图像识别任务。
该文章已生成可运行项目,

一 样例1 json文件只有一个样本

1 json文件内容

{
   
   
  "version": "4.5.7",
  "flags": {
   
   },
  "shapes": [
    {
   
   
      "label": "car",
      "points": [
        [
          737.3076923076923,
          244.8461538461538
        ],
        [
          1028.076923076923,
          555.6153846153846
        ]
      ],
      "group_id": null,
      "shape_type": "rectangle",
      "flags": {
   
   }
    }
  ],
  "imagePath": "..\\..\\images\\train2017\\000001.jpg",
  "imageData": "/9j/4AAQSkZJR"

2 代码转化

读取文件夹,将json文件转化为txt文件,即将JSON的关键数据读出

import os
import json


json_dir = 'C:/Users/YourName/Desktop/coco128/labels/train2017/'  # json文件路径
out_dir = 'C:/Users/YourName/Desktop/output/'  # 输出的 txt 文件路径

def get_json(json_file, filename):
    # 读取 json 文件数据
    with open(json_file, 'r') as load_f:
        content = json.load(load_f)
    
    # # 循环处理
    tmp = filename
    filename_txt = out_dir + tmp + '.txt'
    #创建txt文件
    fp = open(filename_txt, mode="w", encoding="utf-8")
    #将数据写入文件
    # 计算 yolo 数据格式所需要的中心点的 相对 x, y 坐标, w,h 的值
    x = (content["shapes"][0])["points"][0][0]  
    y = (content["shapes"][0])["points"][0][1] 
    w = (content["shapes"][0])["points"][1][0] - (content["shapes"][0])["points"][0][0] 
    h = (content["shapes"][0])["points"][1][1] - (content["shapes"][0])["points"][0][1]
    fp = open(filename_txt, mode="r+", encoding="utf-8")
    file_str = str(filename) + ' ' + str(round(x, 6)) + ' ' + str(round(y, 6)) + ' ' + str(round(w, 6)) + \
            ' ' + str(round(h, 
本文章已经生成可运行项目
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值