计算图像分割mask的灰度级个数、以及删除空的分割数据

2024-08-31 17:04

本文主要是介绍计算图像分割mask的灰度级个数、以及删除空的分割数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、查询mask类别

图像分割的mask是图片格式的话,往往是阈值图像,这样有几个阈值就是分割几个类别的

这里提供代码检测mask的类别个数

摆放如上(只要有mask即可),然后copy下面代码,放在data的同级目录即可:

import os
import numpy as np
from PIL import Image
from tqdm import tqdmdef fun(pth):root = pthro = [os.path.join(root,y) for y in os.listdir(root)]la = []for i in tqdm(ro):j = Image.open(i).convert('L')j = np.unique(np.array(j))for iii in j:if iii not in la:la.append(iii)print(la)if __name__ == '__main__':root = './data/masks'fun(pth=root)

输出如下,可以看出这个数据分割是2类的(加上背景nc=3)

2、删去空的data

其实分割的mask中,如果有label是空,也是数据增广的一种,并不是什么坏事。

就像分类中,还有一个其他类别,里面存放的乱七八糟的图片。

目标检测也是,label里面bbox和class全部为空即可。

不过,要是删去这些空的话,也很简单,这里提供图像分割的代码

摆放如下:

复制下面代码,放在data的同级目录即可:

import os
from tqdm import tqdm
import cv2
import numpy as npdef main(pth,im,ms):img_path = [os.path.join(pth,i) for i in os.listdir(pth)]for i in tqdm(img_path):j = i.replace('images','masks').replace(im,ms)tmp = cv2.imread(j)if len(np.unique(tmp)) ==1 :os.remove(i)os.remove(j)if __name__=='__main__':root = './data/images'          # data 路径img_fm = '.jpg'                 # data 的后缀偏移mask_fm = '_mask.png'           # mask 的后缀偏移main(pth=root,im=img_fm,ms=mask_fm)

这里的img_fm,mask_fm 是data到mask图片的偏移路径 

运行如下,就可以删除了

这篇关于计算图像分割mask的灰度级个数、以及删除空的分割数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124483

相关文章

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2