形态学腐蚀
形态学腐蚀一、技术背景形态学腐蚀Erosion是图像形态学处理的基础操作之一。腐蚀操作可以使图像中的目标区域缩小消除边界点常用于去除小噪声、分离粘连物体等场景。本文介绍 SEM 项目中MorphologicalOperate.Erode()的实现原理包括结构元与腐蚀操作的数学定义以及 3x3 椭圆核的应用。二、数学原理2.1 结构元素Structuring Element结构元素是形态学操作的核心它定义了邻域的形状和大小。常见的结构元素形状有矩形Rect所有邻域点权重相同椭圆Ellipse近似圆形边缘更平滑十字形Cross只考虑四连通邻域2.2 腐蚀操作的数学定义对于二值图像AAA和结构元素BBB腐蚀定义为A⊖B{z∣Bz⊆A} A \ominus B \{z | B_z \subseteq A\}A⊖B{z∣Bz​⊆A}其中BzB_zBz​表示结构元素BBB平移到位置zzz。直观理解只有当结构元素完全包含在目标区域内时该点才属于腐蚀结果。2.3 腐蚀的另一种表达腐蚀也可以用集合运算表示(A⊖B)(x,y)min⁡(i,j)∈BA(xi,yj) (A \ominus B)(x,y) \min_{(i,j) \in B} A(xi, yj)(A⊖B)(x,y)(i,j)∈Bmin​A(xi,yj)对于二值图像只有当结构元素覆盖的所有点都为1时结果才为1。2.4 腐蚀的效果目标区域缩小边界向内收缩消除小目标小于结构元素的目标被完全消除分离粘连物体连接较弱的部分被断开平滑边界凸起部分被消除三、代码实现以下代码来自e:\SEM\Methods\MorphologicalOperate.csprivatestaticMatDefaultKernelCv2.GetStructuringElement(MorphShapes.Ellipse,newOpenCvSharp.Size(3,3));publicstaticMatErode(Matimg){MatresultnewMat();Cv2.Erode(img,result,DefaultKernel);returnresult;}结构元素创建// 创建椭圆结构元素MatkernelCv2.GetStructuringElement(MorphShapes.Ellipse,// 形状椭圆newOpenCvSharp.Size(3,3)// 尺寸3x3);// 其他形状MatrectKernelCv2.GetStructuringElement(MorphShapes.Rect,newSize(5,5));MatcrossKernelCv2.GetStructuringElement(MorphShapes.Cross,newSize(3,3));OpenCV APIvoidCv2.Erode(Matsrc,// 输入图像Matdst,// 输出图像Matelement,// 结构元素Point?anchor,// 锚点默认为中心intiterations,// 迭代次数BorderTypesborderType,Scalar?borderValue);在预处理中的应用在imageUtils.cs的preprocess()方法中开运算包含腐蚀步骤// 开运算 腐蚀 膨胀Cv2.MorphologyEx(binary_img,binary_img,MorphTypes.Open,kernel2,newOpenCvSharp.Point(-1,-1),iterations);四、参数调优4.1 结构元素形状选择形状特点适用场景Rect各方向同等收缩通用场景Ellipse边缘更平滑需要圆滑边界Cross保持对角线方向保持某些方向特征4.2 结构元素尺寸选择尺寸效果适用场景3x3轻微收缩去除小噪声5x5中等收缩分离粘连7x7及以上明显收缩大噪声去除4.3 迭代次数选择迭代次数效果1单次腐蚀2-3多次腐蚀效果叠加过多目标过度缩小可能消失4.4 调优建议从小尺寸开始先用小核测试效果观察边界变化确保不会过度收缩结合膨胀使用腐蚀常与膨胀配合开运算注意目标消失迭代次数过多会导致小目标消失五、常见问题Q1腐蚀后目标消失原因结构元素尺寸过大或迭代次数过多。解决方案减小结构元素尺寸减少迭代次数检查目标实际大小Q2腐蚀效果不明显原因结构元素尺寸过小。解决方案增大结构元素尺寸增加迭代次数Q3目标边界变形严重原因矩形核在各方向均匀收缩可能造成角点变形。解决方案使用椭圆核保持边界平滑使用十字核保持某些方向特征Q4腐蚀后需要恢复目标大小解决方案使用开运算先腐蚀后膨胀或在腐蚀后使用膨胀先腐蚀后膨胀即为开运算Q5腐蚀与膨胀的区别特性腐蚀膨胀目标区域缩小扩大背景扩大缩小小目标消除扩大粘连物体分离连接噪声影响消除小亮噪声消除小暗噪声

相关新闻

漫水填充算法

漫水填充算法

漫水填充算法 一、技术背景 在二值图像处理中,目标区域内部可能存在孔洞(背景色的孤立区域)。这些孔洞会影响轮廓检测、面积计算等后续分析的准确性。漫水填充算法(Flood Fill)是一种区域填充算法,可以用…

2026/10/18 2:32:42 阅读更多 →
Android 10.0 UI开发环境搭建与实战指南

Android 10.0 UI开发环境搭建与实战指南

1. Android 10.0 UI开发环境搭建在开始Android 10.0的UI开发之前,我们需要先准备好开发环境。Android Studio是Google官方推荐的集成开发环境(IDE),它集成了代码编辑、调试、性能分析工具以及模拟器等全套开发工具。1.1 安装Android Studio首先访问Andro…

2026/10/17 18:31:10 阅读更多 →
Android App Bundle技术解析与优化实践

Android App Bundle技术解析与优化实践

1. Android App Bundle 技术解析与应用实践作为一名在Android开发领域深耕多年的技术老兵,我见证了APK打包方式的多次迭代。今天要和大家深入探讨的是Google在2018年推出的革命性打包格式——Android App Bundle(AAB)。这个看似简单的技术变革…

2026/10/17 9:54:51 阅读更多 →

最新新闻

VGG骨干+轻量时序注意力:视频理解模型设计实战拆解

VGG骨干+轻量时序注意力:视频理解模型设计实战拆解

做视频理解绕不开一个老问题:怎么在空间特征之上合理地建模时间关系。这个“VGG改进”系列我写了几十篇,大部分都集中在图像场景、网络剪枝和重参数化上,直到第23篇我才正式把方向切到视频。今天这篇就用一个实战设计笔记的方式,完…

2026/10/18 9:58:37 阅读更多 →
基于Canvas与React的轻量级创意合成工具artcraft开发实践

基于Canvas与React的轻量级创意合成工具artcraft开发实践

1. 项目缘起与整体设计思路1.1 为什么会有 artcraft 这个想法做创意工具这些年,我最大的感受是:市面上大多数所谓“创作辅助平台”,要么是给专业设计师用的重型武器,功能全但上手门槛高得离谱;要么是给小白玩的轻量玩具…

2026/10/18 9:58:37 阅读更多 →
MATLAB交通标志检测:BP网络+HOG+PCA的毕设落地方案

MATLAB交通标志检测:BP网络+HOG+PCA的毕设落地方案

简介:本资源是一套基于MATLAB的交通路标检测与识别实战项目,面向机器视觉与深度学习初学者及高校课程设计者,聚焦智能交通场景下的图像识别核心任务。项目完整覆盖图像预处理、CNN特征提取、BP神经网络建模、多类路标(禁止/警示/指…

2026/10/18 9:58:37 阅读更多 →
基于人工势场法与MPC的自动驾驶换道避撞技术解析

基于人工势场法与MPC的自动驾驶换道避撞技术解析

高速巡航时前车突然急刹,留给你的反应时间往往不到一秒。这个场景里藏着一个很有趣的问题:系统是该选择全力制动,还是观察相邻车道、迅速打方向避开?答案是“看情况”,而这个“看情况”的背后,就是换道避撞…

2026/10/18 9:58:37 阅读更多 →
VLAN综合实验深度解析:广播域隔离与跨交换机通信全流程

VLAN综合实验深度解析:广播域隔离与跨交换机通信全流程

我帮一家做电商代运营的小公司调试网络时,遇到过一件挺折腾的事:办公区明明只有四十多台电脑,可一到下午订单高峰期,整个办公室的网络就卡成幻灯片,打印机能连上却经常丢任务,连财务那边访问服务器都时不时…

2026/10/18 9:58:37 阅读更多 →
在线考试系统的Java后端设计:并发、判分与数据一致性避坑指南

在线考试系统的Java后端设计:并发、判分与数据一致性避坑指南

简介:一套面向Java学习者和毕业设计开发的在线考试管理系统完整交付包,涵盖源代码、论文、开题报告、外文翻译、英文文献与答辩PPT,适合快速搭建在线考试项目或完成课程设计、毕业设计汇报。系统覆盖题库管理、考试安排、在线答题、自动评分和…

2026/10/18 9:57:37 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →