形态学操作:膨胀与腐蚀

简介: 形态学操作其实就是改变物体的形状,比如腐蚀就是”变瘦”,膨胀就是”变胖”,看下图就明白了:形态学操作一般作用于二值化图,来连接相邻的元素或分离成独立的元素。

形态学操作其实就是改变物体的形状,比如腐蚀就是”变瘦”,膨胀就是”变胖”,看下图就明白了:

img_507f9f2be2635d5283c537ed7141c092.png

形态学操作一般作用于二值化图,来连接相邻的元素或分离成独立的元素。腐蚀和膨胀是针对图片中的白色部分


膨胀

膨胀就是求局部最大值的操作。

按数学方面来说,膨胀或者腐蚀操作就是将图像(或图像的一部分区域,我们称之为A)与核(我们称之为B)进行卷积

核可以是任何的形状和大小,它拥有一个单独定义出来的参考点,我们称其为锚点(anchorpoint)。多数情况下,核是一个小的中间带有参考点和实心正方形或者圆盘,其实,我们可以把核视为模板或者掩码。

而膨胀就是求局部最大值的操作,核B与图形卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素。这样就会使图像中的高亮区域逐渐增长。如下图所示,这就是膨胀操作的初衷。


img_f7712d2735b21290a5af4ad87034d299.png
右图比左图大一圈

膨胀可以简单理解为将B与A接触的所有背景点合并到A中的过程。


腐蚀

与膨胀相反,腐蚀就是求局部最小值的操作。

img_0d40572df3f3409d15c92bfc1c1d4dc6.png
右图比左图小一圈

腐蚀可以理解为B的中心(锚点)沿着A的内边界走了一圈。腐蚀也是对高亮部分而言,A区域之外的部分 < A的高亮像素,所里里面被外面取代。 A中能完全包含B的像素被留下来了。

腐蚀可以简单理解为消除物体A所有边界点的过程。


开运算

img_fbc87de2d952a45455ffba369c17ba8a.png

img_36463220f3fb07ea8f2ab327c12b99f4.png

闭运算

img_150b35076801f2f3ee36b0d40341ae0d.png

img_555ab4c599847e19631a0b34792b4149.png

如果还是不太理解开运算和闭运算,请看下图


img_8a575decf8a9761b4c641202f879a9a9.png

参考资料:

目录
相关文章
|
5月前
|
算法
基于一维级联快速腐蚀与膨胀算法
基于一维级联快速腐蚀与膨胀算法
27 0
|
5月前
|
计算机视觉
技术心得:图像处理——(源)腐蚀(eroded)、膨胀(dilated)函数编程实现
技术心得:图像处理——(源)腐蚀(eroded)、膨胀(dilated)函数编程实现
34 6
|
6月前
|
编解码 计算机视觉 C++
【OpenCV】—形态学滤波(1):腐蚀与膨胀
【OpenCV】—形态学滤波(1):腐蚀与膨胀
|
6月前
|
API 计算机视觉
【OpenCV】形态学滤波(2):开运算、形态学梯度、顶帽、黑帽
【OpenCV】形态学滤波(2):开运算、形态学梯度、顶帽、黑帽
|
6月前
|
计算机视觉
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
[Halcon&图像] 形态学处理(腐蚀、膨胀、开运算、闭运算)
339 1
|
计算机视觉 Python
08 OpenCV腐蚀、膨胀与形态学运算
腐蚀操作是一种形态学操作,它用于缩小二值图像中的对象,并去除图像中的噪声和细节。其基本原理是将图像中的每个像素与内核进行比较,如果内核覆盖的区域内所有像素值都为非零值,则该像素保持不变;否则,该像素的值会被更新为 0 00,从而实现缩小图像中的对象。腐蚀操作的效果通常与内核的大小、形状以及迭代次数有关,通过适当选择这些参数,可以实现不同程度的腐蚀效果。
|
C++ 计算机视觉
【OpenCv • c++】形态学技术操作 —— 腐蚀与膨胀
【OpenCv • c++】形态学技术操作 —— 腐蚀与膨胀
434 0
|
API
OpenCV_05 形态学操作:连通性+腐蚀和膨胀+开闭运算+礼帽和黑帽
在图像中,最小的单位是像素,每个像素周围有8个邻接像素,常见的邻接关系有3种:4邻接、8邻接和D邻接。
305 0
|
API 计算机视觉
六、OpenCV形态学操作(腐蚀、膨胀、开运算、闭运算、顶帽、黑帽、形态学梯度)
假设有图像A和结构元素B,结构元素B在A上移动,其中B定义>中心为锚点,计算B覆盖下A的最小像素值用来替换锚点的像素,其中B作为结构体可以是任意形状。
278 0
六、OpenCV形态学操作(腐蚀、膨胀、开运算、闭运算、顶帽、黑帽、形态学梯度)