批量删除labelme标注格式标签

如题,假设需要删除的标签名称为"area", "exit"。沿用前一篇文章中提到的文件结构。则批量删除labelme标签可使用如下代码:

批量删除labelme标签:

import os
import json

# 基本路径
base_path = "E:/yolov8/20240624/escala/"
label_dirs = ["labelmes/test", "labelmes/train", "labelmes/val"]
new_label_dirs = ["labelmes_new/test", "labelmes_new/train", "labelmes_new/val"]

# 创建新的标注目录
for new_label_dir in new_label_dirs:
    os.makedirs(os.path.join(base_path, new_label_dir), exist_ok=True)

# 需要删除的标签
labels_to_remove = {"area", "exit"}

# 遍历所有标注目录
for label_dir, new_label_dir in zip(label_dirs, new_label_dirs):
    label_dir_path = os.path.join(base_path, label_dir)
    new_label_dir_path = os.path.join(base_path, new_label_dir)

    for label_file in os.listdir(label_dir_path):
        if label_file.endswith('.json'):
            labelme_anno_path = os.path.join(label_dir_path, label_file)
            new_labelme_anno_path = os.path.join(new_label_dir_path, label_file)

            with open(labelme_anno_path, 'r') as f:
                labelme_annotations = json.load(f)

            # 过滤掉指定标签
            new_shapes = [shape for shape in labelme_annotations["shapes"] if shape["label"] not in labels_to_remove]
            labelme_annotations["shapes"] = new_shapes

            # 将处理后的标注文件保存到新的目录
            with open(new_labelme_anno_path, 'w') as f:
                json.dump(labelme_annotations, f, indent=2)

            print(f"Processed {label_file} and saved to {new_labelme_anno_path}")
@ 1313
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇