labelme標簽批量轉換數據集json_to_dataset

文章目錄

  • labelme標簽批量轉換數據集json_to_dataset
    • 轉換原理
    • 單張圖片轉換
    • 多張圖片批量轉換
      • bat腳本循環法
    • 標注圖片提取
    • 標注圖片轉單通道

labelme標簽批量轉換數據集json_to_dataset

轉自labelme批量制作數據集教程。

轉換原理

在安裝了labelme的虛擬環境中有一個labelme_json_to_dataset.exe文件可以將json文件轉成png文件【分割掩碼(mask)】,但這個過程一次只能轉換一個文件,因此這里提出批量轉換的方法。(labelme_json_to_dataset.exe文件的所在目錄是conda\envs\labelme\Scripts\labelme_json_to_dataset.exe)。

單張圖片轉換

json文件需要轉換成png文件【分割掩碼(mask)】,基本轉換方法是在安裝了labelme的環境下,輸入下面的代碼:

labelme_json_to_dataset E:\test\image\001.json

在001.json所在文件夾內,會生成一個001_json的文件夾,里面有5個文件,其中的label.png為所要的分割掩膜,label_viz.png是通道融合圖,新版本的labelme沒有.yaml文件(因此新版本的labelme中僅會生成4個文件)。

分割掩膜示意圖:
在這里插入圖片描述

多張圖片批量轉換

但是當數據文件很多時,需要批量處理的方法。這種方法需要原始圖片與對應的json文件在同一個文件夾下

bat腳本循環法

@echo off
for %%i in (*.json)  do labelme_json_to_dataset %%i
pause

新建一個txt文件,把這個復制進去,然后改名為test.bat,和要轉換的文件放在一起。然后在激活相應環境下,進入所在文件目錄,命令行輸入test.bat就可以了

標注圖片提取

生成的label圖片均在文件中,且圖片名均是label.png,所以需要批量提取label.png,其他4個文件沒有用,代碼如下

# 將標簽圖從json文件中批量取出
import os
import shutilpath = r'D:\postgraduate\test'  # 生成的*_json文件夾路徑
dirpath = r'D:\postgraduate\test\output'  # 分割掩碼放置的目標文件夾路徑# 確保目標目錄存在
os.makedirs(dirpath, exist_ok=True)for eachfile in os.listdir(path):if os.path.isdir(os.path.join(path, eachfile)):source_file = os.path.join(path, eachfile, 'label.png')destination_file = os.path.join(dirpath, eachfile.split('_')[0] + '.png')if os.path.exists(source_file):try:shutil.copy(source_file, destination_file)print(eachfile + ' successfully moved')except Exception as e:print(f'Error moving {eachfile}: {e}')

使用時,只需將path和dirpath修改為你自己的路徑即可。

標注圖片轉單通道

關于圖片的概念見單通道、三通道、灰度圖、黑白圖、三通道轉灰度圖(單通道)。
圖片的轉換隨便搜索就有。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63504.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63504.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63504.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Apache Kylin最簡單的解析、了解

官網:Overview | Apache Kylin 一、Apache Kylin是什么? 由中國團隊研發具有濃厚的中國韻味,使用神獸麒麟(kylin)為名 的一個OLAP多維數據分析引擎:(據官方給出的數據) 亞秒級響應&#xff…

01云計算HCIA學習筆記

筆者今年7月底考取了華為云計算方向的HCIE認證,回顧從IA到IE的學習和項目實戰,想整合和分享自己的學習歷程,歡迎志同道合的朋友們一起討論! 第一章 云計算概述 ICT:ICT是世界電信協會在2001年的全球會議中提出的一個綜…

php生成圖片

前提 開啟dg2庫 去掉前面的;注釋&#xff0c;有的可能會帶.dll后綴影響不大 extensiongd2代碼 <?php $file imagecreate(100,50); //先生成圖片資源$color imagecolorallocate($file,255,255,255); //白色$c imagecolorallocate($file,0,100,255);imagefill($file,0…

免費GIS工具箱:輕松將glb文件轉換成3DTiles文件

在GIS地理信息系統領域&#xff0c;GLB文件作為GLTF文件的二進制版本&#xff0c;主要用于3D模型數據的存儲和展示。然而&#xff0c;GLB文件的使用頻率相對較低&#xff0c;這是因為GIS系統主要處理的是地理空間數據&#xff0c;如地圖、地形、地貌、植被、水系等&#xff0c;…

為何VisualRules更適合技術人員使用

什么是規則引擎 規則引擎是一種軟件組件&#xff0c;它允許將業務規則從應用程序的核心代碼中分離出來&#xff0c;以一種更加靈活、易于管理和維護的方式來定義、存儲和執行這些規則。簡單來說&#xff0c;它就像是一個專門處理規則的 “大腦”&#xff0c;可以根據預先設定的…

prometheus 搭建監控

prometheus 下載 prometheus-3.0.0.linux-amd64.tar.gztar -zxvf prometheus-3.0.0.linux-amd64.tar.gzmv prometheus-3.0.0.linux-amd64 prometheus-3vim /etc/systemd/system/prometheus.serviceprometheus.service [Unit] DescriptionPrometheus Wantsnetwork-online.t…

游戲何如防抓包

游戲抓包是指在游戲中&#xff0c;通過抓包工具捕獲和分析游戲客戶端與服務器之間傳輸的封包數據的過程。抓包工具可實現攔截、篡改、重發、丟棄游戲的上下行數據包&#xff0c;市面上常見的抓包工具有WPE、Fiddler和Charles Proxy等。 抓包工具有兩種實現方式&#xff0c;一類…

RestTemplate實時接收Chunked編碼傳輸的HTTP Response

學習調用AI接口的時候&#xff0c;流式響應都是使用的 Transfer-Encoding: chunked&#xff0c;圖方便想用RestTemplate&#xff0c;但是平時用到的都是直接返回響應對象的類型。使用bing搜索到一種方式&#xff0c;使用下面的代碼來讀取&#xff0c;于是掉這個坑里了&#xff…

request.setAttribute()和session.setAttribute()的區別

request.setAttribute() 作用&#xff1a;request.setAttribute()是在一次請求內共享數據 解釋&#xff1a;例如將一個數據保存request域中&#xff0c;然后請求轉發至前端頁面&#xff0c;則數據轉發至前端頁面后會被自動銷毀。簡單點說就是&#xff0c;數據只能用一次就不能…

Java中的Consumer接口應該如何使用(通俗易懂圖解)

應用場景&#xff1a; 第一次程序員A寫好了個基礎的遍歷方法&#xff1a; public class Demo1 {public static void main(String[] args) {//假設main方法為程序員B寫的,此時需要去調用A寫好的一個遍歷方法//1.如果此時B突然發現想將字符串以小寫的形式打印出來&#xff0c;則…

【常微分方程講義1.1】方程的種類發展與完備

方程在數學歷史中不斷發展&#xff0c;逐步趨于完備。從最初的簡單代數方程到包含函數、算子甚至泛函的更復雜方程&#xff0c;數學家通過不斷的擴展和深化&#xff0c;逐漸建立起更為豐富和多元的方程類型體系。方程的種類之所以不斷演變&#xff0c;部分是因為解決實際問題的…

通過移除 -march=native 解決 Ubuntu 20.04 程序運行“段錯誤 (核心已轉儲)”問題的詳解

通過移除 -marchnative 解決 Ubuntu 20.04 程序運行“段錯誤 (核心已轉儲)”問題的詳解 在Ubuntu 20.04系統中&#xff0c;開發和編譯C/C程序時&#xff0c;常見的編譯選項可能會影響程序的穩定性和兼容性。特別是在使用CMake構建系統時&#xff0c;某些編譯標志可能導致程序在…

Linux下學【MySQL】表的必備操作( 配實操圖和SQL語句)

緒論? “Patience is key in life &#xff08;耐心是生活的關鍵&#xff09;”。本章是MySQL中非常重要且基礎的知識----對表的操作。再數據庫中表是存儲數據的容器&#xff0c;我們通過將數據填寫在表中&#xff0c;從而再從表中拿取出來使用&#xff0c;本章主要講到表的增…

深度學習之目標檢測篇——殘差網絡與FPN結合

特征金字塔多尺度融合特征金字塔的網絡原理 這里是基于resnet網絡與Fpn做的結合&#xff0c;主要把resnet中的特征層利用FPN的思想一起結合&#xff0c;實現resnet_fpn。增強目標檢測backone的有效性。代碼實現如下&#xff1a; import torch from torch import Tensor from c…

游戲AI實現-尋路算法(BFS)

廣度優先搜索算法&#xff08;英語&#xff1a;Breadth-first search&#xff0c;縮寫&#xff1a;BFS&#xff09;&#xff0c;又譯作寬度優先搜索&#xff0c;或橫向優先搜索&#xff0c;是一種圖形搜索算法。 尋路地圖搭建&#xff1a; 游戲AI實現-尋路地圖搭建-CSDN博客 …

CMake的INSTALL FILES和INSTALL DIRECTORY有什么區別

在 CMake 中&#xff0c;install() 命令用于安裝構建的目標文件、頭文件、庫等到指定的目標路徑。install(FILES ...) 和 install(DIRECTORY ...) 都是 install() 命令的具體用法&#xff0c;它們的功能和適用場景不同。 以下是兩者的詳細區別和用法說明&#xff1a; 1. insta…

主流網絡安全產品

目前市場上也出現了品類豐富的安全產品&#xff0c;如“防火墻、抗D、負載均衡、WAF、數據庫審計、漏掃、網頁防篡改、上網行為管理、堡壘機等”這些產品由于功能不同在網絡中部署的位置也有區別。下面來簡單聊一下每類產品的功能和部署位置。 &#xff08;1&#xff09;防火墻…

利用git上傳項目到GitHub

GitHub是基于git實現的代碼托管。git是目前最好用的版本控制系統了&#xff0c;非常受歡迎&#xff0c;比之svn更好。 GitHub可以免費使用&#xff0c;并且快速穩定。 利用GitHub&#xff0c;你可以將項目存檔&#xff0c;與其他人分享交流&#xff0c;并讓其他開發者幫助你一…

《Vue3實戰教程》13:Vue3偵聽器

如果您有疑問&#xff0c;請觀看視頻教程《Vue3實戰教程》 偵聽器? 基本示例? 計算屬性允許我們聲明性地計算衍生值。然而在有些情況下&#xff0c;我們需要在狀態變化時執行一些“副作用”&#xff1a;例如更改 DOM&#xff0c;或是根據異步操作的結果去修改另一處的狀態。…

uboot 打開log 的 方法

uboot 版本 commit f919c3a889f0ec7d63a48b5d0ed064386b0980bd (HEAD -> v2024.10, tag: v2024.10) Author: Tom Rini <trinikonsulko.com> Date: Mon Oct 7 08:54:35 2024 -0600 Prepare v2024.10 Signed-off-by: Tom Rini <trinikonsulko.com> 開啟的選項…