python中skimage包的小优化(1):模仿remove_small_objects()函数去除图片边缘不感兴趣区域

segment anything环境配置与使用测试 硬件:RTX3070 i9-11900H 内存16G。 阅读详情

python模仿skimage包中的remove_small_objects()函数去除图片边缘不感兴趣区域

图片难免会有噪声,python的skimage包提供了名为morphology的子模块,可以通过调用该模块的remove_small_objects()进行图片去噪。具体使用方法请查看:

图像处理中媲美matlab的python包——scikit-image(skimage)包的用法详解

但是,在实际情况中,我们往往也会遇到需要去除的噪点和图像本身前景的连通域大小相同的情况,比如·这样:

这里写图片描述

对于上图来说,希望保留中心完整的鱼,但是对噪点连通域的阈值大小很难把握,稍有不慎就会把需要保留的完整鱼的图像一并删掉。除此之外,甚至还会有中心鱼的连通域小于需要去除的鱼的连通域大小的情况,增加了噪点的去除难度。

但是,可能因为这个需求还是有些小众,skimage包并没有提供这样的函数,这样就需要自己实现一个,实现过程借鉴了remove_small_objects()的源码,利用与中心坐标的距离作为是否删除该连通域的条件,具体实现如下:

#这里以输入大小为160*160的图像为例
def remove_objects(img):
    labels = measure.label(img) #返回打上标签的img数组

    jj = measure.regionprops(labels)  # 找出连通域的各种属性。  注意,这里jj找出的连通域和原本的连通域会差一个
    is_del = False #标记是否有删掉的连通域
    if len(jj)== 1:
        out = img
        is_del = False
    else:
        # 通过与质心之间的距离进行判断
        num = labels.max()
        del_array = np.array([0] * (num+1))
        center= np.array([80,80])
        for k in range(num):
            if k == 0:
                temp_centroid = np.array(jj[0].centroid,dtype=float)  #将元组转换成array

                save_index = 1
            else:
                k_centroid = np.array(jj[k].centroid, dtype=float)  # 将元组转换成array
               #计算距离
                tp1 = np.sqrt(np.sum(np.square(temp_centroid-center)))
                tp2 = np.sqrt(np.sum(np.square(k_centroid - center)))
                if  tp1 > tp2 and jj[k].area > 200:

                    temp_centroid = k_centroid
                    save_index = k+1
        del_array[save_index] = 1
        del_mask = del_array[labels]
        out = img * del_mask
        is_del = True
    return out ,is_del
AI项目工程化骨架:Cookiecutter+Poetry+FastAPI实战指南 AI项目工程化是指将模型开发、依赖管理、服务部署等环节系统化、标准化的过程,其核心原理在于分离探索性工作与生产交付、锁定可重现的运行环境、并以异步IO高效调度GPU/CPU/I/O资源。技术价值体现在显著降低团队协作成本、杜绝环境不一致导致的线上故障、提升服务吞吐与资源利用率。典型应用场景包括工业质检API、边缘推理服务、多模型调度平台等需持续迭代与多人协作的智能系统。本文聚焦AI工程化落地中最关键的三大支柱——项目结构模板化(Cookiecutter)、依赖确定性管理(Poetry)、高性能推理服务构建( 阅读详情

相关推荐

CNN在脑瘤MRI分割中的临床落地实践

卷积神经网络(CNN)作为医学图像分析的基础架构,其局部感受野与平移不变性天然适配MRI影像的物理特性——如T1/T2信号差异、病灶空间约束与解剖结构先验。不同于通用视觉任务,医学影像AI需从信号建模出发,理解弛豫时间映射而非RGB纹理;技术价值体现在毫米级边界分割精度、多序列生理对齐能力及可嵌入PACS的临床闭环输出。典型应用场景包括胶质瘤术前规划、放疗靶区划定与无创病理分型预判。本文聚焦CNN在脑肿瘤MRI分割中的工程化实现,涵盖DICOM物理量纲校准、自监督预训练替代ImageNet迁移、U-Net+

cumian9828的博客 446

morphology.remove_small_objects输入数组的数据类型对结果的影响

​skimage中morphology.remove_small_objects,当输入数组的数据类型不同时,对结果影响不可忽略。 ​

Radio_PaPa的博客 1081

基于混合模型策略的遥感影像建筑自动提取:Grounding DINO+SAM+U-Net+Mask R-CNN实战

在计算机视觉领域,语义分割和实例分割是处理像素级图像理解的核心技术,其原理是通过深度学习模型对图像中的每个像素进行分类或为每个对象实例生成掩码。这些技术的价值在于能够自动化地从图像中提取结构化信息,极大地提升了地理空间分析、城市规划等领域的效率。在遥感影像解译这一具体应用场景中,建筑轮廓提取面临着目标尺度多变、形态复杂、背景干扰等挑战。针对这些挑战,一种结合了零样本检测、通用分割与监督学习的混合模型策略应运而生。该策略巧妙地利用了Grounding DINO的零样本定位能力,结合SAM(Segment An

weixin_30254435的博客 401

【小知识】opencv里去掉小连通区域的函数remove_small_objects()解析

网上搜了好多都没有详细的解释函数里面参数的,参考的python数字图像处理(18):高级形态学处理,码下来省得以后再找了。 有些时候,我们只需要一些大块区域,那些零散的、小块的区域,我们就需要删除掉,则可以使用morphology子模块的remove_small_objects()函数。 函数格式:skimage.morphology.remove_small_objects(ar, min_...

qq_33329896的博客 1万+

让书和背景分离/去除大区域中小的连通区域(python实现)

删除小块区域 有些时候,我们只需要一些大块区域,那些零散的、小块的区域,我们就需要删除掉, 则可以使用morphology子模块的remove_small_objects函数。 让书和背景分离 对图片做了二值化,腐蚀,膨胀操作 使用remove_small_objects函数 import numpy import numpy as np import scipy.ndimage as ndi from skimage import morphology import matplo

weixin_48262500的博客 2231

基于PyTorch与MONAI的医学图像分割实战:多模态CMR心肌与病灶分析

图像分割是计算机视觉的核心任务之一,旨在将图像划分为具有不同语义的区域。其原理通常基于深度学习模型,通过学习图像特征来对每个像素进行分类。这项技术在自动驾驶、遥感监测等领域具有重要价值,而在医疗健康领域,其应用尤为关键,能够辅助医生进行精准诊断。医学图像分割,特别是心脏磁共振图像分析,是当前的研究热点。它通过对多模态影像(如Cine、LGE序列)进行自动分析,实现心肌结构轮廓与内部病灶区域的精准识别。这不仅能提升诊断效率,也为心血管疾病的治疗规划提供了量化依据。本文聚焦于利用PyTorch深度学习框架和MO

weixin_34293911的博客 486

【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?

【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同对象进行保存?

阿旭的博客 1万+

opencv 去除面积小的区域

本程序是去除二值图像中面积较小的区域,有利于后续的工作,本方法是一个好方法

skimage包的小优化(2):模仿remove_small_objects()函数保留图片中连通域最大的区域

python模仿remove_small_objects()函数保留图片中连通域最大的区域 skimage包的morphology子模块中,提供了一个remove_small_objects()函数,可以通过自己设定的连通域面积阈值有效去掉图片中的噪点,但是在具体使用过程中会发现:这个函数使用起来还有诸多的不便,好在这个函数的源代码并不长,在在skimage包的小优化(一):模仿remove_s...

u013044310的博客 6250

使用Python-OpenCV消除图像中孤立的小区域操作

之前一直使用Skimage中的形态学处理来进行孤立小区域的去除,代码如下 img = morphology.remove_small_objects(img, size) img = morphology.remove_small_holes(img, size) 后面需要将相应算法翻译到C++环境中,而Skimage没有对应的C++版本,为了确保python算法和C++算法结果的一致性,需要进行迁移,因而打算使用OpenCV来重写去除孤立小区域的代码。代码如下: _,binary = cv2.threshold(img,0.1,1,cv2.THRESH_BINARY) image,

相机基础知识讲解:CMOS和CCD

相机基础知识讲解:CMOS和CCD

Coppa的博客 5万+

Python图像处理核心技术与实战应用指南

数字图像处理是通过算法对像素矩阵进行数学运算的技术,其核心原理涉及色彩空间转换、卷积运算和形态学变换等计算机视觉基础。在工程实践中,Python凭借OpenCV、Pillow等专业库实现了从科研分析到工业自动化的全场景覆盖,特别是在与AI模型协同和批量处理场景展现独特优势。通过NumPy矩阵运算和PyTorch的标准化预处理,开发者能高效完成医学影像分析、电商图片优化等专业任务。本文以OpenCV边缘检测和Pillow图像增强为例,详解如何构建高可靠性的图像处理流水线,并分享工业级项目中的性能优化与异常处理

weixin_30603633的博客 441

告别臃肿!保姆级教程:用NTLite深度精简Win10,打造你的专属纯净系统(附完整组件移除清单)

本文提供了一份详细的NTLite教程,帮助用户深度精简Windows10系统,移除冗余组件并优化性能。从准备工作到组件移除清单,再到系统配置优化和无人值守安装,逐步指导用户打造专属纯净系统。附完整组件移除清单和实战经验,确保系统稳定高效运行。

weixin_30945039的博客 859

scikit-image图像工程:构建可复现的Python图像处理流水线

图像处理不仅是调色修图,更是基于像素数据的科学计算工程。其核心原理在于将图像建模为数值矩阵,通过滤波、变换、分割等数学操作提取语义信息。scikit-image凭借纯函数式设计、清晰模块划分与可验证输出,成为实现可复现图像工程的理想工具——它规避了GUI工具的不可追溯性与OpenCV的复杂API陷阱,天然支持科研复现与工业部署。典型应用场景包括医学影像增强、显微图像分析、批量实验图标准化等,尤其适合需稳定输出、参数可量化、流程可审计的技术实践者。

weixin_30621711的博客 500

在昇腾910B服务上部署搭建适配PDF解析工具Mineru2.5开源项目

本文介绍了在昇腾910B服务器上部署开源PDF解析工具Mineru2.5的过程。首先从昇腾社区下载mindie镜像并运行容器,安装系统依赖。针对部署过程中遇到的多个报错问题(如torchvision与torch版本不匹配、昇腾软件栈与NumPy 2.0不兼容等),提供了具体解决方案和兼容版本。通过设置环境变量、安装指定版本的Python依赖包,成功部署Mineru项目并下载模型。最后运行测试,验证了在NPU设备上运行pipeline的可行性。整个过程详细记录了版本适配和错误处理方法,为类似部署场景提供了参考

一起加油吧 2164

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

WW、forever的博客 285

napari细胞标注:生物图像多维空间建模的Python实践

细胞标注是生物图像分析的数据基石,其本质是对亚细胞结构在三维空间与时间维度中的形态、位置及生物学语义进行精准建模。传统工具如ImageJ依赖静态像素操作,难以保障Z轴连续性、跨图层空间关系与多人协作可追溯性;而napari以声明式架构、分层标签(Labels Layer)和原生Python集成,将标注升维为可计算、可验证、可复现的科学过程。它支持3D/4D实时同步渲染、RegionProps自动形态计量、属性驱动可视化,并深度整合aicsimageio、dask-image等生物图像专用库,使‘标注即分析’

weixin_33696106的博客 299

Python爬虫实战:逆向工程与异步处理攻克Pinterest无限滚动瀑布流

我们将从零开始,逐步分析其数据接口,构建一个功能完整的爬虫,并深入探讨反爬虫策略的应对、性能优化以及数据存储等高级主题。: 在实际爬取中,你需要先访问一次Pinterest主页,获取初始的Cookie和CSRF Token,然后再发起API请求。: Python爬虫,Pinterest,无限滚动,瀑布流,异步IO,httpx,逆向工程,API接口,动态内容,反爬虫。你会很快发现一些关键的请求模式。:页面初始加载有限内容,随着用户滚动,新的图片块通过AJAX动态加载,实现“永无止境”的浏览。

2201_76125261的博客 551

Python批量图像处理实战:电商主图自动化流水线

图像批量处理是数字内容生产中的基础工程能力,其核心在于将重复性视觉操作转化为可复现、可扩展、可嵌入工作流的代码逻辑。基于PIL、OpenCV、scikit-image和torchvision四大库的协同分工,开发者能实现尺寸归一化、自动白平衡、智能抠图与语义感知水印等关键功能。技术价值不仅在于效率跃升(如万级图片处理从数小时压缩至分钟级),更在于构建确定性强、错误可追溯、配置即代码的生产级管道。典型应用场景覆盖电商主图生成、社交媒体素材标准化、教育课件自动化合成等高频需求。本文聚焦Massive Image

weixin_30555515的博客 325

Qt实现YOLO目标检测及其界面制作(附完整源码)

Qt实现YOLO目标检测及其界面制作(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 2739

基于STM32、HAL库、I2C接口的姿态传感器/陀螺仪之ICM-42670-P驱动 C语言程序设计

/ 设置加速度计和陀螺仪的工作模式。// 读取加速度计和陀螺仪数据。

corlin6688的博客 1180

morphology.remove_small_objects的使用——和numpy转换为bool

仅作为记录,大佬请跳过。 文章目录该函数使用numpy转换为bool 该函数使用 用morphology.remove_small_objects去除小于某一面积的连通域 from skimage import morphology dst=morphology.remove_small_objects(data,min_size=300,connectivity=1) # 去除面积小于300的连通域 注 里面的data是numpy的同时—各元素只能是True或False(不能是数字,否则去除不了)

weixin_41529093的博客 4318

MFC 中实现 WebSocket 客户端以支持实时双向通信

3. **协议兼容**:若服务器使用 `wss://`(加密),需在 `lws_client_connect_info` 中配置 SSL 相关参数(`ssl_connection = LCCSCF_USE_SSL`)。- 编辑框(`m_editUrl`):输入 WebSocket 服务器地址(如 `ws://echo.websocket.events`)。2. 将编译后的库文件(`.lib`、`.dll`)和头文件路径添加到 MFC 项目中(项目属性 -> VC++ 目录)。// UI:服务器地址。

寒寒豆豆软件公司的博客 202

python模仿remove_small_objects()函数去除图片中离散点

skimage包的morphology子模块中,提供了一个remove_small_objects()函数,可以通过自己设定的连通域面积阈值有效去掉图片中的噪点。但是在实际中,我们有时候发现只需要删除最远的那个离散点,这个离散点明显就属于噪点了。于是通过模仿模仿remove_small_objects()函数去除图片边缘不感兴趣区域。实现去除图片中离散点。 具体实现代码如下 def remo...

skyfengye的博客 6978

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

skimage.morphology.remove_small_objects移除面积小的连通区域无效

使用remove_small_objects函数移除二值图像中小的连通域时发现用后并没有得到所期待的结果,经检索发现类似的问题: https://stackoverflow.com/questions/55056456/failed-to-remove-noise-by-remove-small-objects 即如果输入图像本身就是一个二值图像,该函数仍然会先进行二值标记,而这个标记的过程可能并不是像我们原来产生二值图像的过程一样balabala,总而言之,可以借助skimage.measure.la

开飞机的小毛驴儿 5923

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python 去除二值图像中孤立的小区域

去除二值图像非连通小区域

JingpengSun的博客 2165

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 技术生涯中的踩坑大全
下一篇: python中tuple、list以及array(numpy的数据格式)的相互转换
东写西读李老湿
东写西读李老湿 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄13年 481粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值