当前位置: 首页 > news >正文

json_to_mask

'''
修改后的json_to_dataset文件,直接复制替换你自己原始的json_to_dataset,建议保存一下原版
'''
import argparse
import base64
import json
import os
import os.path as ospimport imgviz
import PIL.Imagefrom labelme.logger import logger
from labelme import utilsdef main():"""logger.warning("This script is aimed to demonstrate how to convert the ""JSON file to a single image dataset.")logger.warning("It won't handle multiple JSON files to generate a ""real-use dataset.")"""parser = argparse.ArgumentParser()parser.add_argument("json_file")parser.add_argument("-o", "--out", default=None)args = parser.parse_args()json_file = args.json_fileprint(osp.dirname(json_file))if osp.isdir(osp.join(osp.dirname(json_file), 'json_data')) is False:os.mkdir(osp.join(osp.dirname(json_file), 'json_data'))else:print("文件已存在")if args.out is None:out_dir = osp.basename(json_file).replace(".", "_")out_dir1 = osp.join(osp.dirname(json_file), 'json_data')out_dir = osp.join(out_dir1, out_dir)print(out_dir)print("#" * 10)else:out_dir = args.outif not osp.exists(out_dir):os.mkdir(out_dir)data = json.load(open(json_file))imageData = data.get("imageData")if not imageData:imagePath = os.path.join(os.path.dirname(json_file), data["imagePath"])with open(imagePath, "rb") as f:imageData = f.read()imageData = base64.b64encode(imageData).decode("utf-8")img = utils.img_b64_to_arr(imageData)label_name_to_value = {"_background_": 0}for shape in sorted(data["shapes"], key=lambda x: x["label"]):label_name = shape["label"]if label_name in label_name_to_value:label_value = label_name_to_value[label_name]else:label_value = len(label_name_to_value)label_name_to_value[label_name] = label_valuelbl = utils.shapes_to_label(img.shape, data["shapes"], label_name_to_value)label_names = [None] * (max(label_name_to_value.values()) + 1)for name, value in label_name_to_value.items():label_names[value] = namelbl_viz = imgviz.label2rgb(lbl, imgviz.asgray(img), label_names=label_names, loc="rb")PIL.Image.fromarray(img).save(osp.join(out_dir, "img.png"))utils.lblsave(osp.join(out_dir, "label.png"), lbl)PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, "label_viz.png"))with open(osp.join(out_dir, "label_names.txt"), "w") as f:for lbl_name in label_names:f.write(lbl_name + "\n")logger.info("Saved to: {}".format(out_dir))if __name__ == "__main__":main()

修改地方:删除lbl后的“,-” ,只让lbl接受函数结果,要不然会报返回值与接受值不匹配的错误,ValueError: too many values to unpack (expected 2)。这类错误出现原因是比如返回三个值,但你用2个变量接受。

http://www.lryc.cn/news/241128.html

相关文章:

  • Camtasia2024免费版mac电脑录屏软件
  • 拦截器的使用
  • R语言——taxize(第四部分)
  • C++学习 --list
  • Springboot集成swagger之knife4j
  • 多线程 02
  • 车辆管控大数据可视化平台案例源码分析【可视化项目案例-10】
  • 链表的回文结构
  • CSS特效017:球体涨水的效果
  • Windows下安装Anaconda3并使用JupyterNoteBook
  • 什么年代了,还不会 CI/CD 么?
  • centos 7.7 安装Python-3.7.4
  • git的用法
  • 管道在Vue和Angular中的作用及React的替代方案
  • 计算机基础知识57
  • Flutter 小技巧之 3.16 升级最坑 M3 默认适配技巧
  • 激光雷达与惯导标定 | Lidar_IMU_Init : 编译
  • 进程池,线程池与跨进程数据共享爬取某岸网图片
  • 【 图片加载】Vue前端各种图片引用
  • thinkphp6生成PDF自动换行
  • wpf devexpress实现输入验证使用验证规则
  • Vue表单的整体处理
  • 探索实人认证API:保障在线交互安全的关键一步
  • XDR 网络安全:技术和最佳实践
  • 【如何学习Python自动化测试】—— 警告框处理
  • Jenkins Ansible 参数构建
  • 第十五届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组(详细分析解答)
  • 2023亚太杯数学建模B题思路+模型+代码+论文
  • GitHub 报告发布:TypeScript 取代 Java 成为第三受欢迎语言
  • 配置hikari数据库连接池时多数据源不生效