将labelme json文件转为mask掩模图

1、打开cmd 切换到要转化的json文件路径下

2、>activate labelme #启动labelme

3、 > labelme_json_to_dataset 文件名.json

4、在该目录下会生成一个与文件名对应的文件夹,里面有4个文件。

  • img.png,源文件图像
  • label.png,标签图像
  • label_names.txt,标签中的各个类别的名称
  • label_viz.png,源文件与标签融合文件

 现在解决了如何对一个json文件生成mask,下面来解决如何对多个json批量生成掩膜图片,思路就是在python中使用os.system()语句来执行cmd命令,执行成功返回0

最开始一直报错“labelme不是内部或外部命令的解决方法”,后来想了一下应该是环境变量没有添加,没有办法打开labelme于是在系统和用户中添加labelme的环境变量 C:\Users\dell\anaconda3\envs\labelme\Scripts

成功!

注意:在python中调用os打开的路径为此时的python文件路径os.getcwd

即使使用os.system强行更改路径也无效,所以应该提前更改好路径,否则就会出现找不到文件的情况

会报错:

FileNotFoundError: [Errno 2] No such file or directory: 'IM_0163_Frame115.json'

在意识到这一点之后,在编程的过程中还出现了几个模块没有的情况,比如报错:

ModuleNotFoundError: No module named 'matplotlib_inline'

这个时候直接在cmd中pip install 就可以了

很快在当前文件路径下生成了json文件对应的掩膜文件夹

将labelme json文件转为mask掩模图_第1张图片

批量将labelme中的json文件转为png掩膜图片,代码如下:

import os

path=r"D:\Merak\项目组\data\data for QX\2D label\A2C\10a" #文件路径
os.chdir(path) #更改路径
FileNameList = os.listdir(path) # 获取文件夹内的文件名

os.system("activate labelme") #  激活labelme环境   
for i in range(len(FileNameList)):
    if(".json" in FileNameList[i]): #  判断当前文件是否为json文件
        os.system("labelme_json_to_dataset %s"%(FileNameList[i])) #  将该json文件转为png

你可能感兴趣的:(学习,python,mysql,cmd)