目录
1.腐蚀和膨胀的概念和作用
腐蚀和膨胀是数字图像处理中常用的形态学操作。腐蚀操作可以缩小图像中物体的边界,去除小的细节或噪声,使物体变得更加細緻。膨胀操作则可以扩大图像中物体的边界,填充小的空洞或连接断裂的部分,使物体更加完整。这两种操作在图像处理中起着重要作用,常用于图像增强、边缘检测、形状分析、图像分割等领域,能够帮助改善图像质量、提取目标特征和进行进一步的图像分析处理。
2.腐蚀和膨胀的原理和算法
腐蚀(Erosion): 腐蚀操作的原理是将结构元素在图像上滑动,只有当结构元素完全与图像重叠时,中心像素值才被保留,否则被置为背景值。
算法步骤:对于图像中的每个像素,将结构元素与其对应位置进行比较,如果结构元素完全包含在图像中,则保留中心像素值,否则将中心像素置为背景值。 腐蚀操作可以用于去除小的细节、边缘平滑和图像细化等操作。
膨胀(Dilation): 膨胀操作的原理是将结构元素在图像上滑动,只要结构元素与图像有交集,中心像素值就被置为前景值。
算法步骤:对于图像中的每个像素,将结构元素与其对应位置进行比较,只要结构元素与图像有交集,中心像素值就被置为前景值。 膨胀操作可以用于填充小的空洞、连接断裂的部分和增加物体的大小等操作。
3.代码示例
腐蚀:
import cv2
import numpy as np
sun = cv2.imread('sun.png')
cv2.imshow('image',sun)
cv2.waitKey(100000)
kernel = np.ones((3,3),np.uint8) #设置kenenel大小
erosion_1 = cv2.erode(sun,kernel,iterations=5)
cv2.imshow('Erosion',erosion_1)
cv2.waitKey(100000)
这段代码创建一个3x3的全为1的核用于腐蚀操作,并对图像进行了5次腐蚀操作 ,结果如图:
![](https://img-blog.csdnimg.cn/direct/7790839e4b9941819debe1454eab7415.jpeg)
膨胀:
import cv2
import numpy as np
sun = cv2.imread('sun.png')
cv2.imshow('sun',sun)
cv2.waitKey(100000)
kernel = np.ones((2,2),np.uint8) #设置kenenel大小
sun_new = cv2.dilate(sun,kernel,iterations=10)
cv2.imshow('sun_new',sun_new)
cv2.waitKey(100000)
这段代码创建一个2x2的全为1的核用于膨胀操作,并对图像进行了10次膨胀操作 ,结果如图:
![](https://img-blog.csdnimg.cn/direct/f3617a0bd89e41b2af3bfb61eab579eb.jpeg)