Ch9 形态学图像处理

Ch9 形态学图像处理

blog点此处!<---------

四大算子相应性质。

腐蚀、膨胀、开闭之间的含义、关系

文章目录

  • Ch9 形态学图像处理
    • 预备知识(Preliminaries)
    • 膨胀和腐蚀(Dilation and Erosion)
      • 腐蚀
      • 膨胀
      • 膨胀与腐蚀的对偶关系
    • 开闭操作(Opening and Closing)
      • 开运算
      • 闭运算
      • 性质

在二值图像中,所讨论的集合是二维整数空间 Z 2 \mathbb{Z}^{2} Z2中的成员。 Z 2 \mathbb{Z}^{2} Z2空间中,集合的每个元素都是一个二维向量(元组),元组的坐标是图像中目标(前景)像素的坐标。

灰度数字图像可以表示为各个集合,这些集合的分量位于 Z 3 \mathbb{Z}^{3} Z3空间中:前两个值是坐标,第三个值对应离散灰度值。

在图像处理中,我们使用两类像素集合的形态学:目标元素和结构元(SE)。目标定义为前景像素集合,结构元按照前景像素和背景像素确定。

预备知识(Preliminaries)

集合的元素关系

A A A Z 2 \mathbb{Z}^{2} Z2中的一个集合。如果 a = ( a 1 , a 2 ) a=(a_{1},a_{2}) a=(a1,a2) A A A的一个元素,那么我们写作 a ∈ A a\in A aA

类似地,如果 a a a不是 A A A的元素,我们写作 a ∉ A a\notin A a/A

没有元素的集合称为空集,用符号 ∅ \varnothing 表示。

集合间的关系

如果集合 A A A的每个元素也是集合 B B B的元素,那么 A A A被称为 B B B的子集,记为 A ⊆ B A\subseteq B AB

两个集合 A A A B B B的并集,记为 C = A ∪ B C = A\cup B C=AB,是属于 A A A B B B或两者的所有元素的集合。

两个集合 A A A B B B的交集,记为 D = A ∩ B D = A\cap B D=AB,是属于 A A A B B B两者的所有元素的集合。

两个集合 A A A B B B如果没有共同元素,则称它们是不相交或互斥的。在这种情况下, A ∩ B = ∅ A\cap B=\varnothing AB=

集合的运算

集合 A A A的补集是不包含在 A A A中的元素的集合, A c = { ω ∣ ω ∉ A } A^{c}=\{\omega|\omega\notin A\} Ac={ωω/A}

两个集合 A A A B B B的差,记为 A − B A - B AB,定义为 A − B = { ω ∣ ω ∈ A , ω ∉ B } = A ∩ B c A - B=\{\omega|\omega\in A,\omega\notin B\}=A\cap B^{c} AB={ωωA,ω/B}=ABc

集合的变换反射和变换都是相对于集合的原点定义的。

集合 B B B的反射,记为 B ^ \hat{B} B^,定义为 B ^ = { ω ∣ ω = − b , b ∈ B } \hat{B}=\{\omega|\omega = -b,b\in B\} B^={ωω=b,bB}

image-20241226220432527

集合 A A A通过点 z = ( z 1 , z 2 ) z=(z_{1},z_{2}) z=(z1,z2)的平移,记为 ( A ) z (A)_{z} (A)z,定义为 ( A ) z = { c ∣ c = a + z , a ∈ A } (A)_{z}=\{c|c = a + z,a\in A\} (A)z={cc=a+z,aA}

膨胀和腐蚀(Dilation and Erosion)

膨胀扩展集合的组成部分、腐蚀缩小集合的组成部分。

腐蚀

一些通俗的解释:腐蚀的过程可以想象成图像中的目标“收缩”或“缩小”。具体来说,只有当结构元 B 完全覆盖在 A 的某个部分时,位置 z 才会被保留在腐蚀后的集合 A ⊖ B A \ominus B AB 中。

对于 Z 2 \mathbb{Z}^{2} Z2中的集合 A A A B B B A A A B B B腐蚀(erosion),记为 A ⊖ B A\ominus B AB,定义为:
A ⊖ B = { z ∣ ( B ) z ⊆ A } A\ominus B=\{z|(B)_{z}\subseteq A\} AB={z(B)zA}
B是结构元。即 A A A B B B腐蚀是所有点 z z z的集合,使得 B B B平移 z z z后包含于 A A A

image-20241226221402515

集合A元素是图像I的前景像素,背景显示白色。©中的虚线边界内的实线边界是B的原点的位移界限。在这个界限内, ( B ) z ⊆ A (B)_z\subseteq A (B)zA.

(d)是一个加长的结构元,它腐蚀的结果如(e)所示,是一条线。

膨胀

膨胀的过程可以想象成图像中的目标“扩展”或“增长”。具体来说,结构元 B 在图像 A 上滑动,当结构元的某部分与 A 重叠时,将该位置 z 添加到膨胀后的集合 A ⊕ B A \oplus B AB 中。

A A A B B B Z 2 \mathbb{Z}^{2} Z2中的集合时, A A A B B B膨胀(dilation),记为 A ⊕ B A\oplus B AB,定义为:
A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } A\oplus B=\{z|(\hat{B})_{z}\cap A\neq\varnothing\} AB={z(B^)zA=}
这个等式基于获取 B B B关于原点的反射并将这个反射平移 z z z A A A B B B膨胀就是所有位移 z z z的集合,使得 B ^ \hat{B} B^ A A A至少有一个元素重叠,即:
A ⊕ B = { z ∣ [ ( B ^ ) z ∩ A ] ⊆ A } A\oplus B = \{z|[( \hat{B})_{z}\cap A]\subseteq A\} AB={z[(B^)zA]A}
image-20241226222704052

膨胀与腐蚀的对偶关系

膨胀和腐蚀在集合补集和反射方面是相互对偶的,即:
( A ⊖ B ) c = A c ⊕ B ^ ( A ⊕ B ) c = A c ⊖ B ^ (A\ominus B)^{c}=A^{c}\oplus\hat{B}\\ (A\oplus B)^c=A^c\ominus \hat B (AB)c=AcB^(AB)c=AcB^
上式表明:B对A的腐蚀是 B ^ \hat B B^ A c A^c Ac的膨胀的补集,vice versa。当结构元相对于其原点对称的时候,有 B ^ = B \hat B=B B^=B, 因此对偶性特别有用

证明如下:
( A ⊖ B ) c = { z ∣ ( B ) z ⊆ A } c = { z ∣ ( B ) z ∩ A c = ∅ } c = { z ∣ ( B ) z ∩ A c ≠ ∅ } = A c ⊕ B ^ ( A ⊕ B ) c = { z ∣ ( B ^ ) z ∩ A ≠ ∅ } c = { z ∣ ( B ^ ) z ∩ A = ∅ } = { z ∣ ( B ^ ) z ⊆ A c } = A c ⊖ B ^ \begin{align} (A\ominus B)^{c}&=\{z|(B)_{z}\subseteq A\}^{c}\\ &=\{z|(B)_{z}\cap A^{c}=\varnothing\}^{c}\\ &=\{z|(B)_{z}\cap A^{c}\neq\varnothing\}\\ &=A^{c}\oplus\hat{B}\\\\ (A\oplus B)^c&=\{z|(\hat{B})_{z}\cap A\neq\varnothing\}^c\\ &=\{z|(\hat{B})_{z}\cap A=\varnothing\}\\ &=\{z|(\hat{B})_{z}\subseteq A^c\}\\ &=A^c\ominus \hat B \end{align} (AB)c(AB)c={z(B)zA}c={z(B)zAc=}c={z(B)zAc=}=AcB^={z(B^)zA=}c={z(B^)zA=}={z(B^)zAc}=AcB^

开闭操作(Opening and Closing)

  • 开运算常用于平滑物体的轮廓、断开狭窄的狭颈、消除细长的突出物;
  • 闭运算同样平滑轮廓,但会弥合狭窄的断裂和细长的沟壑、消除小孔、填补轮廓中的缝隙。

开运算

集合 A A A被结构元素 B B B的开运算(opening),记为 A ∘ B A\circ B AB,定义为:
A ∘ B = ( A ⊖ B ) ⊕ B A\circ B=(A\ominus B)\oplus B AB=(AB)B
A A A B B B的开运算就是 A A A B B B腐蚀后再被 B B B膨胀的结果。

image-20241226224419793

闭运算

集合 A A A被结构元素 B B B的闭运算(closing),记为 A ⋅ B A\cdot B AB,定义为:
A ⋅ B = ( A ⊕ B ) ⊖ B A\cdot B=(A\oplus B)\ominus B AB=(AB)B
A A A B B B的闭运算就是 A A A B B B膨胀后再被 B B B腐蚀的结果。

image-20241226224435733

开运算的另一种定义:
A ∘ B = ⋃ { ( B ) z ∣ ( B ) z ⊆ A } A\circ B=\bigcup\{(B)_z|(B)_z\subseteq A\} AB={(B)z(B)zA}
开运算和闭运算在集合补集和反射方面是相互对偶的,即:
( A ⋅ B ) c = ( A c ∘ B ^ ) ( A ∘ B ) c = ( A c ⋅ B ^ ) (A\cdot B)^c=(A^c\circ\hat{B})\\ (A\circ B)^c=(A^c\cdot\hat{B}) (AB)c=(AcB^)(AB)c=(AcB^)
证明:
$$
\begin{align}(A\circ B)^c&=\left[(A\ominus B)\oplus B\right]^c\
&=(A\ominus B)^c\ominus \hat B\
&=A^c\oplus \hat B\ominus \hat B\
&=(A^c\cdot \hat B)\\

(A\cdot B)^c&=\left[(A\oplus B)\ominus B\right]^c\
&=(A\oplus B)^c\oplus \hat B\
&=A^c\ominus \hat B\oplus \hat B\
&=(A^c\circ\hat{B})
\end{align}
$$

性质

开运算的性质:

  • A ∘ B A\circ B AB A A A的子集(子图像)。
  • 如果 C C C D D D的子集,那么 C ∘ B C\circ B CB D ∘ B D\circ B DB的子集。
  • ( A ∘ B ) ∘ B = A ∘ B (A\circ B)\circ B = A\circ B (AB)B=AB

闭运算的性质:

  • A A A A ⋅ B A\cdot B AB的子集(子图像)。
  • 如果 C C C D D D的子集,那么 C ⋅ B C\cdot B CB D ⋅ B D\cdot B DB的子集。
  • ( A ⋅ B ) ⋅ B = A ⋅ B (A\cdot B)\cdot B = A\cdot B (AB)B=AB

由开闭运算的第三个性质可知,对一个集合多次进行开运算或闭运算,在操作一次后就不再有效果。

image-20241226224620533

此图展示了用于得到开运算和闭运算结果的形态学运算。

D D D的子集,那么 C ⋅ B C\cdot B CB D ⋅ B D\cdot B DB的子集。

  • ( A ⋅ B ) ⋅ B = A ⋅ B (A\cdot B)\cdot B = A\cdot B (AB)B=AB

由开闭运算的第三个性质可知,对一个集合多次进行开运算或闭运算,在操作一次后就不再有效果。

[外链图片转存中…(img-5c57BwfX-1735225214230)]

此图展示了用于得到开运算和闭运算结果的形态学运算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/65189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE5 C++课程系列笔记】14——GameInstanceSubsystem与动态多播的简单结合使用

效果 通过在关卡蓝图中触发GameInstanceSubsystem包含的委托&#xff0c;来触发所有绑定到这个委托的事件&#xff0c;从而实现跨蓝图通信。 步骤 1. 新建一个C类 这里命名为“SubsystemAndDelegate” 引入GameInstanceSubsystem.h&#xff0c;让“SubsystemAndDelegate”继承…

实战举例——vue.js组件开发

有很多人在问有关Vue的组件开发&#xff0c;虽然之前我的文章里讲过关于前端组件开发的例子&#xff0c;不过作为一个前端技术小白&#xff0c;还是有很多内容需要学习和巩固。我这里用我之前开发过的组件举例&#xff0c;再次为大家简单分享一下基于Vue2和elementUI开发的组件…

devops和ICCID简介

Devops DevOps&#xff08;Development 和 Operations 的组合&#xff09;是一种软件开发和 IT 运维的哲学&#xff0c;旨在促进开发、技术运营和质量保障&#xff08;QA&#xff09;部门之间的沟通、协作与整合。它强调自动化流程&#xff0c;持续集成&#xff08;CI&#xf…

设计宝藏解压密码

设计宝藏官网的解压密码是多少&#xff1f; 设计宝藏解压密码是&#xff1a;memm 设计宝藏一个致力于提供免费资源的宝藏网站。 无论你是Blender、After Effects (AE)、Cinema 4D (C4D)、Premiere Pro (PR)、Photoshop (PS)、Illustrator (AI)的爱好者&#xff0c;还是对CG影…

Android OpenGLES2.0开发(十):FBO离屏渲染

人生是一场单程的旅行&#xff0c;即使有些遗憾我们也没有从头再来的机会&#xff0c;与其纠结无法改变的过去不如微笑着珍惜未来。 Android OpenGLES开发&#xff1a;EGL环境搭建Android OpenGLES2.0开发&#xff08;一&#xff09;&#xff1a;艰难的开始Android OpenGLES2.0…

Magnet: 基于推送的大规模数据处理Shuffle服务

本文翻译自&#xff1a;《Magnet: Push-based Shuffle Service for Large-scale Data Processing》 摘要 在过去的十年中&#xff0c;Apache Spark 已成为大规模数据处理的流行计算引擎。与其他基于 MapReduce 计算范式的计算引擎一样&#xff0c;随机Shuffle操作&#xff08;即…

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集VA-I-FGSM介绍相关定义算法流程 VAI-FGSM代码实现VAI-FGSM算法实现攻击效果 代码汇总vaifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对…

WebPack3项目升级webpack5的配置调试记录

文章目录 前言一、webpack3环境1.1、知识点记录1.1.1、配置解释1.1.2、webpack与sass版本对应关系1.1.3、CommonJS与ESModule1.1.4、node版本管理nvm1.1.5、sass-loader、sass与node-sass 1.2、其他1.2.1、.d.ts是什么文件1.2.2、react与types/react版本对应关系1.2.3、webpack…

MySQL 数据”丢失”事件之 binlog 解析应用

事件背景 客户反馈在晚间数据跑批后,查询相关表的数据时,发现该表的部分数据在数据库中不存在 从应用跑批的日志来看,跑批未报错,且可查到日志中明确显示当时那批数据已插入到数据库中 需要帮忙分析这批数据丢失的原因。 备注:考虑信息敏感性,以下分析场景测试环境模拟,相关数据…

微信小程序的轮播图学习报告

微信小程序轮播图学习报告 好久都没分享新内容了&#xff0c;实在惭愧惭愧。今天给大家做一个小程序轮播图的学习报告。 先给大家看一下我的项目状态&#xff1a; 很空昂&#xff01;像一个正在修行的老道&#xff0c;空的什么也没有。 但是我写了 4 个 view 容器&#xff0c;…

【RAII | 设计模式】C++智能指针,内存管理与设计模式

前言 nav2系列教材&#xff0c;yolov11部署,系统迁移教程我会放到年后一起更新&#xff0c;最近年末手头事情多&#xff0c;还请大家多多谅解。 上一节我们讲述了C移动语义相关的知识&#xff0c;本期我们来看看C中常用的几种智能指针&#xff0c;并看看他们在设计模式中的运…

微软 CEO 萨提亚・纳德拉:回顾过去十年,展望 AI 时代的战略布局

近日&#xff0c;微软 CEO 萨提亚・纳德拉与著名投资人比尔・格里和布拉德・格斯特纳进行了一场深度对话&#xff0c;回顾了过去十年微软的转型历程&#xff0c;并展望了 AI 时代的战略布局。在这次访谈中&#xff0c;纳德拉分享了他在微软的早期经历&#xff0c;包括他加入微软…

【Java-tesseract】OCR图片文本识别

文章目录 一、需求二、概述三、部署安装四、技术细节五、总结 一、需求 场景需求:是对识别常见的PNG,JPEG,TIFF,GIF图片识别&#xff0c;环境为离线内网。组件要求开源免费&#xff0c;并且可以集成Java生成接口服务。 二、概述 我不做选型对比了,我筛选测试了下Tesseract(v…

iOS开发代码块-OC版

iOS开发代码块-OC版 资源分享资源使用详情Xcode自带代码块自定义代码块 资源分享 自提&#xff1a; 通过网盘分享的文件&#xff1a;CodeSnippets 2.zip 链接: https://pan.baidu.com/s/1Yh8q9PbyeNpuYpasG4IiVg?pwddn1i 提取码: dn1i Xcode中的代码片段默认放在下面的目录中…

如何借助边缘智能网关实现厂区粉尘智能监测告警

在诸如木制品加工、纺织品加工、塑料橡胶制品加工等多种工业生产场景中&#xff0c;粉尘问题的隐患和风险不可小觑。如果缺少对生产环境中粉尘的监测和管理&#xff0c;可能发生易燃易爆、环境污染和工人尘肺等生产事故。 针对工业场景中的粉尘状况监测、管理及预警&#xff0c…

McDonald‘s Event-Driven Architecture 麦当劳事件驱动架构

原文链接 1 mcdonalds-technical-blog/ 原文链接 2 mcdonalds-technical-blog/ 麦当劳在异步、事务性和分析性处理用例中使用跨技术栈的事件&#xff0c;包括移动订单进度跟踪和向客户发送营销通信&#xff08;交易和促销&#xff09;。 统一事件平台&#xff08;unified eve…

EasyExcel停更,FastExcel接力

11月6日消息&#xff0c;阿里巴巴旗下的Java Excel工具库EasyExcel近日宣布&#xff0c;将停止更新&#xff0c;未来将逐步进入维护模式&#xff0c;将继续修复Bug&#xff0c;但不再主动新增功能。 EasyExcel以其快速、简洁和解决大文件内存溢出的能力而著称&#xff0c;官方…

HarmonyOS NEXT 实战之元服务:静态多案例效果(一)

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1代码案例如下&#xff1a; import { authentication } from…

前端(Ajax)

1.客户端请求 向https://jsonplaceholder.typicode.com/users发送get请求 const xhr new XMLHttpRequest(); console.log(xhr.readyState); xhr.open(‘get’, ‘https://jsonplaceholder.typicode.com/users’) console.log(xhr.readyState); xhr.send(); console.log(xhr.…

java高频面试之SE-05

面试官&#xff1a;java中为什么有多态&#xff1f; 面试官你好&#xff01;Java 中有多态主要是为了实现灵活性和可扩展性。通过多态&#xff0c;可以用统一的接口处理不同的对象&#xff0c;从而提高代码的可维护性和可复用性。以下是多态的几个关键原因&#xff1a; 1. 代…