首页 > 其他分享 >labelme标注的文件去按面积除大颗粒或者小颗粒

labelme标注的文件去按面积除大颗粒或者小颗粒

时间:2025-01-21 16:43:03浏览次数:1  
标签:除大 shapes json 颗粒 import path folder labelme data

去除大颗粒脚本

点击查看代码
import cv2
import numpy as np
import json
import os


def list_jsons(folder_path):
    for filename in os.listdir(folder_path):
        if filename.endswith(('.json',)):
            yield os.path.join(folder_path, filename)


def remove_specific_labels(json_file):
    # 读取JSON文件
    with open(json_file, 'r') as f:
        data = json.load(f)
        data_small = data
    if "shapes" in data:
        new_shapes = []
        new_shapes_small = []
        # 提取闭合区域的轮廓
        contours = []
        for shape in data['shapes']:
            points = np.array(shape['points'], np.int32)
            area = cv2.contourArea(points)
            if (area > 1600):  # 过滤的颗粒面积
                new_shapes.append(shape)

        data["shapes"] = new_shapes
        # data_small["shapes"]=new_shapes_small
    with open(json_file, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=4)


if __name__ == '__main__':
    # 使用例子
    folder_path = '/home/administrator/gzj/pic/primary_ban/big_particle/src_1600/src'  # 替换为你的文件夹路径
    for json_path in list_jsons(folder_path):
        remove_specific_labels(json_path)


去除小颗粒脚本
点击查看代码
import cv2
import numpy as np
import json
import os
def list_jsons(folder_path):
    for filename in os.listdir(folder_path):
        if filename.endswith(('.json',)):
            yield os.path.join(folder_path, filename)

def remove_specific_labels(json_file):
    # 读取JSON文件
    with open(json_file, 'r') as f:
        data = json.load(f)
        data_small=data
    if"shapes" in data:
        new_shapes=[]
        new_shapes_small=[]
        # 提取闭合区域的轮廓
        contours = []
        for shape in data['shapes']:
            points = np.array(shape['points'], np.int32)
            area=cv2.contourArea(points)
            if(area<1600):  #按面积过滤
                new_shapes.append(shape)
            # else:
            #     shape["label"]="small_ban"
            #     new_shapes.append(shape)
            #     print("")
            # print("闭合区域的面积为", cv2.contourArea(points))
            # contours.append(points)
        data["shapes"]=new_shapes
        # data_small["shapes"]=new_shapes_small
    with open(json_file,'w',encoding='utf-8')as f:
        json.dump(data,f,ensure_ascii=False,indent=4)


    # with open(r"D:\gzj\pic\SEE\0827\backup\small.json",'w',encoding='utf-8')as f:
    #     json.dump(data_small,f,ensure_ascii=False,indent=4)
if __name__ == '__main__':
# 使用例子
    folder_path = '/home/administrator/gzj/pic/primary_ban/src/'  # 替换为你的文件夹路径
    for json_path in list_jsons(folder_path):
         remove_specific_labels(json_path)
    #remove_specific_labels('/home/administrator/gzj/pic/primary_ban/src_copy')
    #E:\SVN\08代码交接\granule_server_cngr_2\granule_server_cngr_2

标签:除大,shapes,json,颗粒,import,path,folder,labelme,data
From: https://www.cnblogs.com/SunshineWeather/p/18683807

相关文章

  • 如何消除大型语言模型(LLM)中的幻觉现象
    大型语言模型(LargeLanguageModels,简称LLM)已逐渐成为自然语言处理领域的重要基石。它们能够生成连贯、有逻辑的文本,甚至在某些情况下展现出令人惊叹的创造力。然而,LLM的“幻觉”(hallucinations)(LLM幻觉:现象剖析、影响与应对策略)问题一直是AI开发者们面临的巨大挑战。幻觉现......
  • Sigrity System SI Parallel Bus Analysis模式进行DDR3 FlyBy拓扑地址组仿真分析-4个
    SigritySystemSIParallelBusAnalysis模式进行DDR3FlyBy拓扑地址组仿真分析-4个颗粒SigritySystemSIParallelBusAnalysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍addr_bus_sparam_4mem模板的使用,是一个4颗粒的Fly-By......
  • 使用CSS3实现全屏颗粒的动画效果
    要使用CSS3实现全屏颗粒的动画效果,你可以通过以下步骤来完成:HTML结构:首先,在HTML中,你需要为颗粒创建一个容器,并在其中添加多个颗粒元素。<divclass="particle-container"><divclass="particle"></div><divclass="particle"></div><!--重复添加......
  • Labelme 图片批量缩放脚本
    Labelme标注文件,批量resize图片和对应标签,可以得到更多的训练数据importcv2importosimportjsondefresize_image(image,size):#计算新的尺寸,保持宽高比r=min(size[0]/image.shape[1],size[1]/image.shape[0])dim=(int(image.shape[1]*......
  • labelme标注后的数据只剩下面积1600像素以内的小颗粒
    点击查看代码importcv2importnumpyasnpimportjsonimportosdeflist_jsons(folder_path):forfilenameinos.listdir(folder_path):iffilename.endswith(('.json',)):yieldos.path.join(folder_path,filename)defremove_spec......
  • PM2.5(细颗粒物)是空气质量监测中的一个重要指标,主要是指空气中直径小于或等于2.5微米的
    PM2.5英文全称:PM2.5代表ParticulateMatter2.5。ParticulateMatter(PM) 指的是悬浮在空气中的微小固体颗粒或液滴。2.5 表示这些颗粒的直径为 2.5微米或更小。PM2.5简称:PM2.5是常用来表示直径为2.5微米或更小的颗粒物的缩写。这个术语广泛应用于环境科学、空......
  • 【YOLO】-目标检测数据集格式转换:将labelme格式转为YOLO以及VOC格式
    前言一个目标检测项目需要自己找图片标注数据进行训练,训练需要YOLO格式,但数据增广需要VOC格式,该文记录如何将labelme标注的数据格式转为YOLO格式,再从YOLO格式转为VOC格式,只作为自己用的记录,如果你刚好也需要这么干,或者需要文中提到的某一种转换,也可以参考一下。文中有些代码是参考......
  • 三轴应力作用下颗粒离散元PFC矩张量声发射模拟
    本文摘要(由AI生成):本文利用矩张量分析方法,深入探讨了岩石破坏产生的AE事件的震源机制。通过模拟颗粒间的接触,研究了不同岩石破坏类型,并定量分析了AE事件的震源行为。模拟试样的尺寸与实验试样相同,破坏模式、力-位移曲线和震级通过模拟得出。进一步,根据矩张量文件中的mag列数据,......
  • SM2268XT2量产工具找到了,SM2268XT2量产工具下载,支持B58R闪存颗粒开卡,SM2268XT2开卡工
    前一阵买了一个固态硬盘,主控是SM2268XT2,闪存颗粒是B58R的,由于自己之前量产过SM2263XT主控,所以这次也想玩一下量产。找了半天,才发现这个主控目前还没有公开的SM2268XT2量产工具下载。就在快要放弃的时候,在网上查到量产部落发布了慧荣SM2268XT2主控支持YMTC_WDS闪存的量产工具,......
  • 七彩虹SL300固态硬盘不认盘修复,SM2256K量产工具,支持AD,3A,18,A3,61,25颗粒H27QFG8PDM
    固态硬盘里采用慧荣主控的品牌很多,其中常见的慧荣主控型号有SM2246XT、SM2256K、SM2258XT、SM2259XT、SM2259XT2、SM2259XT3、SM2263XT等等,这些主控的固态硬盘要是坏了,在保质期里的可以返厂维修,如果过保了,我们还是有办法自己修复的,方法就是从量产部落下载量产工具,用量产工具来......