labelme的使用

server/2025/3/10 5:22:21/

labelme的使用

打开labelme

  • 在anaconda prompt中输入
labelme

pEt1SRU.png

  • labelme打开界面
    pEt1PsJ.png

利用labelme获得json文件

  • 打开目录文件
    pEt1EIx.png
    pEt1eJK.png
  • 利用labelme标注
    pEt1mRO.png
    • 先绘制多边形在标注标签
      pEt1KQe.png
      然后保存这样就会得到我们的json文件

json文件的操作

numpy_24">json文件转numpy文件

下面这个代码可以将json文件转换为numpy文件

python">import numpy as np
import cv2
import os
import jsondef json_to_mask(img_path, json_path, mask_value=1):"""生成掩码"""img = cv2.imread(img_path)   #读取图片if img is None:raise FileNotFoundError(f"图片读取失败: {img_path}")h, w = img.shape[:2]    #切片操作获取图片的高度和宽度mask = np.zeros((h, w), dtype=np.uint8)with open(json_path, 'r', encoding='utf-8') as f:data = json.load(f)for shape in data.get('shapes', []):points = np.array(shape['points'], dtype=np.int32)cv2.fillPoly(mask, [points], color=mask_value)return maskdef process_directory(json_folder_path,image_folder_path, mask_root, mask_value):os.makedirs(mask_root,exist_ok=True)for files in os.listdir(json_folder_path):if files.endswith('.json'):json_path = os.path.join(json_folder_path,files)for files in os.listdir(image_folder_path):if files.endswith('.jpg'):image_path = os.path.join(image_folder_path,files)base_name = os.path.splitext(files)[0]mask_path = os.path.join(mask_root, f"{base_name}.npy")mask = json_to_mask(image_path,json_path,mask_value)np.save(mask_path,mask)

利用process_directory函数可以批量转换json文件为numpy文件
输入是json文件夹路径,图片文件夹路径,输出文件夹路径,掩码标签
不过要注意的是json文件和图片文件的名字要对应上

json文件转图片

python">import os
import numpy as np
import matplotlib.pyplot as plt# 定义包含 .npy 文件的文件夹路径
folder_path = "./numpy"
# 定义保存图像的文件夹路径
output_folder = "./images"# 如果输出文件夹不存在,则创建它
if not os.path.exists(output_folder):os.makedirs(output_folder)# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):if filename.endswith('.npy'):# 构建完整的文件路径file_path = os.path.join(folder_path, filename)# 从 .npy 文件中加载 numpy 矩阵matrix = np.load(file_path)# 显示矩阵对应的图像(可根据需要选择是否显示)plt.imshow(matrix, cmap='gray')# 关闭坐标轴plt.axis('off')# 构建输出图像的文件名output_filename = os.path.splitext(filename)[0] + '.png'output_path = os.path.join(output_folder, output_filename)# 保存图像plt.imsave(output_path, matrix, cmap='gray')# 关闭当前图像窗口,避免内存占用plt.close()print("批量处理完成!")

如果需要用这个代码的话需要改变folder_path和output_folder为你自己的文件夹路径

效果展示

  • numpy文件
    由于我numpy文件是二进制文件没法通过编辑器直接打开,这里不进行展示
  • png文件
    pEtGkZj.png

http://www.ppmy.cn/server/173854.html

相关文章

华为欧拉系统 Tomcat 安装详解

1. 安装或确认安装 Java Tomcat 需要 Java 环境(JDK 或 JRE)才能运行。如果系统尚未安装 Java,可以使用以下命令安装 OpenJDK: # 更新软件包索引 yum update -y# 安装 OpenJDK 21(可根据需求安装其他版本,如 8、11、17 等) yum install -y java-21-openjdk java-21-op…

【SpringBoot】统一功能处理

目录 一、什么是统一功能处理 二、统一用户登录权限验证 2.1 定义拦截器 2.2 制定拦截规则 2.3 创建请求 2.4 拦截器实现原理 三、统一异常处理 四、统一数据格式返回 一、什么是统一功能处理 SpringBoot 统一功能处理: 定义:指在SpringBoot应…

系统架构设计师—系统架构设计篇—软件可靠性

文章目录 软件可靠性的定义软件可靠性定量描述可靠度失效强度平均失效前时间平均恢复前时间平均故障间隔时间 可靠性测试广义的可靠性测试狭义的可靠性测试可靠性测试的目的 影响软件可靠性的因素软件可靠性的建模方法可靠性模型的组成好的可靠性模型可靠性模型分类 软件可靠性…

golang从入门到做牛马:第三篇-Go程序的“骨骼架构”

在编程的世界里,Go语言就像一位优雅的舞者,它的每一个动作都简洁而高效。而要真正领略Go语言的魅力,我们得先从它的基本结构开始。Go程序的结构清晰、逻辑严谨,就像一座精心设计的建筑,每一部分都有其独特的功能和位置。接下来,就让我们一起拆解Go程序的“骨骼架构”,看…

html流程图

要创建一个HTML流程图&#xff0c;你可以使用HTML、CSS&#xff0c;不过&#xff0c;对于简单的流程图&#xff0c;你也可以直接使用HTML和CSS来手动布局。下面是一个使用纯HTML和CSS创建简单流程图的示例&#xff1a; 效果图 html <!DOCTYPE html> <html> <h…

2025最新群智能优化算法:海市蜃楼搜索优化(Mirage Search Optimization, MSO)算法求解23个经典函数测试集,MATLAB

一、海市蜃楼搜索优化算法 海市蜃楼搜索优化&#xff08;Mirage Search Optimization, MSO&#xff09;算法是2025年提出的一种基于海市蜃楼物理现象的元启发式优化算法&#xff0c;于2025年2月在线发表在JCR一区、中科院2区SCI期刊《Advances in Engineering Software》上。海…

RCE漏洞

RCE漏洞学习笔记 1. 基本概念 定义&#xff1a;攻击者通过漏洞在目标服务器上执行任意命令或代码 危害等级&#xff1a;高危&#xff08;直接影响服务器控制权&#xff09; 常见场景&#xff1a; Web应用参数未过滤&#xff08;如URL、表单、HTTP头&#xff09; 反序列化漏…

大模型工程师学习日记(十五):Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析)

1. datasets 库核心方法 1.1. 列出数据集 使用 d atasets 库&#xff0c;你可以轻松列出所有 Hugging Face 平台上的数据集&#xff1a; from datasets import list_datasets# 列出所有数据集 all_datasets list_datasets()print(all_datasets)1.2. 加载数据集 你可以通过 l…