首页 > 其他分享 >labelme转coco数据集的那些事·其一

labelme转coco数据集的那些事·其一

时间:2023-08-13 17:44:41浏览次数:30  
标签:其一 os js json file coco path labelme data

1.因为发现布置的任务的具体要求没有被组员理解,导致所有180反转后的标签都变为了:
image
一个json文件有好几个这样的标签
image
那如果人手一个个这样处理,真的是要累死,所以就写了这个代码

import os
import json
path = 'J:\\final_tomato_data\\test'


json_files = sorted([pos_json for pos_json in os.listdir(path) if pos_json.endswith('.json')])

for index, js in enumerate(json_files):
    with open(os.path.join(path, js)) as json_file:

        data = json.load(json_file)

        if "shapes" in data:
            data['shapes']['label'] = "Bacterial_spot"
    with open(os.path.join(path, js), 'w') as json_file:
        json.dump(data, json_file)

但是会运行报错,然后我们看下报错信息:
image
接下来定位到位置单步调试:
image
发现在第二次进入时出现了报错,
image

那么查看data的结构,
image
找到了data
image
点开shape
image
点开0
image

综上所述
image

label在dict_data的shapes键值为0,1两个dict组成的一个list内的一对key-value对内

image

那么问题就很明显了,改为image
就可以指定好对应的位置。
啊哈,原来问题是看json文件内容虽然只有两层
image

但是实际上是经过python处理后又多了一层

所见非真,此见即幻!这便是code的奥秒

再次运行:
image

不再报错!
看看json:
image

处理成功!

因为我们只是指定了第一个,image
下面所有都没变,那么就在加层循环。

image

大功告成!
运行成功!
image
所有的都被修改了:
image

这里放上最终的代码:

import os
import json
path = '*****'


json_files = sorted([pos_json for pos_json in os.listdir(path) if pos_json.endswith('.json')])

for index, js in enumerate(json_files):
    with open(os.path.join(path, js)) as json_file:

        data = json.load(json_file)

        if "shapes" in data:
        	data1= data['shapes']
		for i in data1:
			i['label']= "Bacterial_spot"
    with open(os.path.join(path, js), 'w') as json_file:
        json.dump(data, json_file)

标签:其一,os,js,json,file,coco,path,labelme,data
From: https://www.cnblogs.com/E-Sheep/p/17626876.html

相关文章

  • 代码覆盖率-Jacoco
    Jacoco1、什么是jacocojacoco是一个免费、开源java代码覆盖率工具。2、什么是代码覆盖率覆盖率是用来衡量测试代码对功能代码的测试情况,通过统计测试中对功能代码中行、分支、类等模拟场景数量,来量化说明测试的充分度。代码覆盖率=代码的覆盖程度,一种度量方式覆盖率简单说:跑......
  • 『推歌』其一
    Alwaysonline-林俊杰变色的生活任性的挑拨疯狂的冒出了头单方的守候试探的温柔还是少了点什么遥远两端爱挂在天空飞风停了也无所谓只因为你总说Everythingwillbeokay准备好了threetwooneI'malwaysonline和你onetoone爱开始扩散我们连结了穿越天空......
  • 『杂谈』其一——关于我有些文章挂上了密码
    Q:为啥变成其一了?A:因为原来的其一跟我别的随笔内容有重复,就给删了。不是不想给大家公开,是真的不能让大家看啊啊啊,有些人可能会问我为什么不隐藏,我只能说习惯了哈哈哈(密码:我的小锦鲤的全拼)(想想为啥我修改了发布日期捏~)......
  • cocoapi-pycocotools使用
    cocoapi-pycocotools使用安装pipinstallpycocotools==2.0.0orpipinstallpycocotools-windowsfrompycocotools.cocoimportCOCO函数和说明#这个文件实现了访问COCO数据集的接口.可以进行COCO标注信息的加载,解析和可视化操作classCOCO:#用于加载COCO标......
  • Cocoapods同时导入静态库和动态库
    platform:ios,'14.1'target:'LGNetworkManager'douse_frameworks!#静态库、动态库#指定需要被编译成static_framework的库$static_framework=['AFNetworking']pre_installdo|installer|installer.pod_targets.eachdo|pod|......
  • 理解coalpress其一
    目录整体项目views.py初始化函数init工作面钻孔输出函数TBase分析一个Django,从视图开始整体项目结构如图示views.pydefget_json_values(request):Gzm_s=''Zk_s=''Zj_s=''Ex_Guid=TGuid_StopeClass()#创建一个实例在get_json_values......
  • 理解coalpress(其一)
    分析一个Django,从视图开始整体项目结构如图示get_json_values:defget_json_values(request):Gzm_s=''Zk_s=''Zj_s=''Ex_Guid=TGuid_StopeClass()#创建一个实例在get_json_values函数中,将空字符串分配给三个变量:Gzm_s,Zk_s和Zj_s。......
  • cocos creator 资源加载函数 resources.load 注意该函数为异步
    constanimationComponent=i.addComponent(Animation);if(animationComponent){constcomponent=animationComponent.getComponent(Animation);if(component){resources.load("An......
  • vs2022使用cocos2d-x4.0创建新项目
    cocos源码编译方法:cocos2d-x-4.0.zip解压到如:E:\cocos2d-x-4.0, 进入目录运行下setup.py设置cocos环境变量(这个要python2.x,要先安装python)创建个目录,如win32-build,进入win32-build,运行cmd,然后再运行cmake(cmake后面..表示运行上一级目录的cmake脚本)cmake..-G"Vi......
  • jacoco+ant 构建java覆盖率
    所需工具:JacocoAnt2020.5.26:踩坑报错Unabletodumpcoveragedata,经过查证修改后发现为tomcat需用tomcat自带startup.bat启动,用eclipse启动仿佛插件无效。 Tomcat修改setJAVA_OPTS="-javaagent:[yourPath/]jacocoagent.jar=includes=com.companyName.*,output=tcpserv......