gpt4 book ai didi

python - 使用 anaconda prompt 将批 Labelme json 文件转换为一组图像和标签

转载 作者:行者123 更新时间:2023-12-04 17:28:47 26 4
gpt4 key购买 nike

我有一个由 Labelme 工具作为 JSON 文件生成的图像掩码数据集,在 Github 教程 (https://github.com/wkentaro/labelme/tree/master/examples/tutorial) 上,它显示将 JSON 文件更改为我们使用以下命令行代码的图像文件

labelme_json_to_dataset apc2016_obj3.json -o apc2016_obj3_json

然而,这一次只适用于一个文件,所以我一直试图找到一种使用一组代码处理所有文件的方法,我尝试了以下代码
setlocal
set "yourDir=C:\Users\Acer\Desktop\datasets\combined masks\"
set "yourExt=*.json"
pushd %yourDir%
for %%a in (*%yourExt%)do labelme_json_to_dataset %%a -o %%a
popd
endlocal

该代码现在通过读取文件名并添加文件扩展名 .json 来工作,但是,将文件保存到具有相同名称的目录(包括 .json 扩展名)给我以下错误
Traceback (most recent call last):
File "c:\users\acer\.conda\envs\labelme\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\acer\.conda\envs\labelme\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\ACER\.conda\envs\labelme\Scripts\labelme_json_to_dataset.exe\__main__.py", line 7, in <module>
File "c:\users\acer\.conda\envs\labelme\lib\site-packages\labelme\cli\json_to_dataset.py", line 65, in main
PIL.Image.fromarray(img).save(osp.join(out_dir, 'img.png'))
File "c:\users\acer\.conda\envs\labelme\lib\site-packages\PIL\Image.py", line 2131, in save
fp = builtins.open(filename, "w+b")
FileNotFoundError: [Errno 2] No such file or directory: '000828.json\\img.png'

我不熟悉 cmd,需要帮助将输出保存到文件名没有 .json 扩展名的目录

下面是一个单文件示例,显示了成功运行的样子
enter image description here
(labelme) C:\Users\ACER\Desktop\datasets\combined masks>labelme_json_to_dataset 000814.json -o 000814
[[1m[33mWARNING[0m] [36mjson_to_dataset[0m:[36mmain[0m:[36m15[0m - [1m[33mThis script is aimed to demonstrate how to convert the JSON file to a single image dataset.[0m
[[1m[33mWARNING[0m] [36mjson_to_dataset[0m:[36mmain[0m:[36m17[0m - [1m[33mIt won't handle multiple JSON files to generate a real-use dataset.[0m
[[1m[37mINFO [0m] [36mjson_to_dataset[0m:[36mmain[0m:[36m73[0m - [1m[37mSaved to: 000814[0m

(labelme) C:\Users\ACER\Desktop\datasets\combined masks>

最佳答案

使用命令 FOR /?阅读 substitution of FOR variable references在帮助输出的最后一页。要获得文件基名,%%~na可以使用。在没有 ECHO OFF 的情况下运行它以便您可以看到每个命令。

setlocal
set "yourDir=C:\Users\Acer\Desktop\datasets\combined masks\"
set "yourExt=*.json"
pushd %yourDir%
for %%a in (*%yourExt%) do (labelme_json_to_dataset %%a -o %%~na)
popd
endlocal

关于python - 使用 anaconda prompt 将批 Labelme json 文件转换为一组图像和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com