Ch9 形态学图像处理

news2024/12/27 11:06:46

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.coloradmin.cn/o/2266348.html

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

相关文章

likeAdmin架构部署(踩坑后的部署流程

1、gitee下载 https://gitee.com/likeadmin/likeadmin_java.git 自己克隆 2、项目注意 Maven&#xff1a;>3.8 ❤️.9 (最好不要3.9已经试过失败 node &#xff1a;node14 (不能是18 已经测试过包打不上去使用14的换源即可 JDK&#xff1a;JDK8 node 需要换源 npm c…

如何解决 ‘adb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件的问题

在cmd中输入 adb &#xff0c;显示 ‘adc‘ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件的问题 解决办法&#xff1a;在环境变量中添加adb所在的路径 1、找到 adb.exe 的所在的文件路径&#xff0c;一般在 Android 安装目录下 \sdk\platform-tools\adb.exe…

使用 OpenCV 在图像中添加文字

在图像处理任务中&#xff0c;我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数&#xff0c;可以很方便地在图像上绘制文本&#xff0c;支持多种字体、颜色、大小和位置等参数。 本文将详细介绍如何使用 OpenCV 在图像中添加文字&#xff0c;介绍 cv2.putTe…

解线性方程组

直接三角分解&#xff08;LU分解&#xff0c;Doolittle分解&#xff09; ATM分解&#xff08;追赶法&#xff0c;Crout分解&#xff0c;克劳特分解&#xff09; 平方根法&#xff08;Cholesky分解&#xff0c;乔列斯基分解&#xff09; 矩阵的范数

17.2、应急事件场景与处理流程

目录 常见网络安全应急事件场景网络安全应急处理流程应急演练类型 常见网络安全应急事件场景 应急事件的处理场景&#xff0c;分成四类场景&#xff0c;恶意程序事件&#xff0c;网络攻击事件&#xff0c;还有网站相关的一些安全事件&#xff0c;最后是拒绝服务事件 恶意程序…

并发编程 - 死锁的产生、排查与解决方案

在多线程编程中&#xff0c;死锁是一种非常常见的问题&#xff0c;稍不留神可能就会产生死锁&#xff0c;今天就和大家分享死锁产生的原因&#xff0c;如何排查&#xff0c;以及解决办法。 线程死锁通常是因为两个或两个以上线程在资源争夺中&#xff0c;形成循环等待&#xf…

关于埃斯顿机器人文件导出或者系统日志导出

关于埃斯顿机器人文件导出或者日志导出&#xff0c;登录模式&#xff0c;选择高级设置&#xff0c;控制器备份恢复 选择U盘导入地址&#xff0c;点击导出&#xff0c;等待时间30秒就可以查看文件格式和系统日志

5G CPE接口扩展之轻量型多口千兆路由器小板选型

多口千兆路由器小板选型 方案一: 集成式5口千兆WIFI路由器小板方案二:交换板 + USBwifiUSB WIFI选型一USBwifi选型二:四口千兆选型一四口千兆选型二:四口千兆选型三:部分5G CPE主板不支持Wifi,并且网口数量较少,可采用堆叠方式进行网口和wifi功能 扩展,本文推荐一些路由…

PromptGIP:Unifying lmage Processing as Visual Prompting Question Answering

“Unifying Image Processing as Visual Prompting Question Answering” 文章提出了一种名为 PromptGIP 的通用模型&#xff0c;将图像处理任务统一为视觉提示问答范式&#xff0c;在多个图像处理任务上展现出良好性能&#xff0c;为通用图像处理提供了新的思路和方法。 confe…

【MySQL】索引 面试题

文章目录 适合创建索引的情况创建索引的注意事项MySQL中不适合创建索引的情况索引失效的常见情况 索引定义与作用 索引是帮助MySQL高效获取数据的有序数据结构&#xff0c;通过维护特定查找算法的数据结构&#xff08;如B树&#xff09;&#xff0c;以某种方式引用数据&#xf…

Doxygen 使用指南

Doxygen 是一个文档生成工具&#xff0c;可以从源代码中的注释生成高质量的文档&#xff0c;支持多种编程语言&#xff08;如 C/C、Python、Java 等&#xff09;。以下是 Doxygen 的基本使用方法。 1. 安装 Doxygen 1.1 下载 Doxygen 访问 Doxygen 官网。根据操作系统选择合适…

Jensen-Shannon Divergence:定义、性质与应用

一、定义 Jensen-Shannon Divergence&#xff08;JS散度&#xff09;是一种衡量两个概率分布之间差异的方法&#xff0c;它是Kullback-Leibler Divergence&#xff08;KL散度&#xff09;的一种对称形式。JS散度在信息论、机器学习和统计学等领域中具有广泛的应用。 给定两个概…

一个特别的串口通讯

背景 设备是EPICS流式细胞仪&#xff0c;这个设备的控制系统是在DOS系统上的。数据存储在硬盘上&#xff0c;不带串口通讯功能。我们遇到了这个设备后&#xff0c;就开发了一个DOS下的执行程序通过串口&#xff0c;将最新的数据自动上传到服务器上。 编译工具 Turbo C 数据…

4.系统学习-集成学习

集成学习 前言Bias and Variance过拟合&#xff08;overfitting&#xff09;与欠拟合&#xff08;underfitting&#xff09;集成学习为什么有效&#xff1f;Blending 模型集成Stakcing 模型集成Bagging模型集成Bagging 模型集成算法流程&#xff1a;Boosting模型集成作业 前言 …

电商项目高级篇07-redisson分布式锁

redisson分布式锁 1、引入maven依赖2、config类3、可重入锁设计 1、引入maven依赖 <!--引入redisson--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.0</version></depend…

Nginx的性能分析与调优简介

Nginx的性能分析与调优简介 一、Nginx的用途二、Nginx负载均衡策略介绍与调优三、其他调优方式简介四、Nginx的性能监控 一、Nginx的用途 ‌Nginx是一种高性能的HTTP和反向代理服务器&#xff0c;最初作为HTTP服务器开发&#xff0c;主要用于服务静态内容如HTML文件、图像、视…

递归算法常见问题(Java)

问题&#xff1a;斐波那契数列,第1项和第2项都为1&#xff0c;后面每一项都为相邻的前俩项的和,求第n个数 解法&#xff1a;每一个数都为前俩个数之和&#xff0c;第1项和第2项都为1&#xff0c;所以写 方法f1(n)即为求第n个数&#xff0c;那么f1(n-1)为求第n-1个数&#xff0…

SpringBoot + HttpSession 自定义生成sessionId

SpringBoot HttpSession 自定义生成sessionId 业务场景实现方案 业务场景 最近在做用户登录过程中&#xff0c;由于默认ID是通过UUID创建的&#xff0c;缺乏足够的安全性&#xff0c;决定要自定义生成 sessionId。 实现方案 正常的获取session方法如下&#xff1a; HttpSe…

【流量、洪水数据下载】网站介绍和下载经验....不断更新!

EarthData 介绍 NASA:链接 数据下载 视频教程:Discover and Access Earth Science Data Using Earthdata Search 数据下载需要注册,已经被卡在邮箱验证上【2024-12-26】… Essential Climate Variables——【The Global Climate Observing System(GCOS) 介绍 其是支…

Pytorch | 利用SMI-FGRM针对CIFAR10上的ResNet分类器进行对抗攻击

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