(opencv)图像处理之开闭运算

      在理解开闭运算之前,需要先了解腐蚀和膨胀运算。

一、 腐蚀和膨胀

      腐蚀和膨胀是对像素值大的部分而言的,即高亮白部分而不是黑色部分。

1. 腐蚀

● 腐蚀(eroded):腐蚀是图像中的高亮部分被腐蚀掉,领域缩减,效果图拥有比原图更小的高亮区域;操作的时候表现为相邻区域用极小值代替,高亮区域减少。

opencv代码实现:

import cv2 as cv
import matplotlib.pyplot as plt

plt.figure(figsize=(15,15))                 
img_poem = cv.imread("./libai.png", 0)  
plt.subplot(121)
plt.title('ori_img')
plt.imshow(img_poem, cmap="gray")

# 腐蚀
# 黑色地方变胖   iterations:腐蚀的次数
thin = cv.erode(img_poem, None, iterations=3)
plt.subplot(122)
plt.title('eroded')
plt.imshow(thin, cmap="gray")

plt.show()

原图和腐蚀后的图:
在这里插入图片描述

2. 膨胀

● 膨胀(dilated):是图像中的高亮部分进行膨胀,领域扩张,效果图拥有比原图更大的高亮区域;操作的时候表现为相邻区域用极大值代替,高亮区域增加。

opencv代码实现:

import cv2 as cv
import matplotlib.pyplot as plt

plt.figure(figsize=(15,15))                 
img_poem = cv.imread("./libai.png", 0)  
plt.subplot(121)
plt.title('ori_img')
plt.imshow(img_poem, cmap="gray")

# 膨胀
# 白色的地方变胖   iteration:膨胀次数
fat = cv.dilate(img_poem, None, iterations=1)
plt.subplot(122)
plt.title('dilated')
plt.imshow(fat, cmap="gray")
plt.show()

原图和膨胀后的图:
在这里插入图片描述

二、 开运算和闭运算

1. 开运算

● 开运算:先腐蚀,再膨胀。

● 特点:
1) 开运算能够除去孤立的小点,毛刺,而总的位置和形状不变。
2) 开运算是一个基于几何运算的滤波器。
3) 结构元素大小的不同将导致滤波效果的不同。
4) 不同的结构元素的选择导致了不同的分割,即提取出不同的特征。
(可以去除图像中的小白点)

2. 闭运算

● 闭运算:先膨胀,再腐蚀。

● 特点:
1) 闭运算能够填平前景物体内的小裂缝,而总的位置和形状不变。
2) 闭运算是通过填充图像的凹角来滤波图像的。
3) 结构元素大小的不同将导致滤波效果的不同。
4) 不同结构元素的选择导致了不同的分割。
(可以去除图像中的小黑点)

猜你喜欢

转载自blog.csdn.net/Roaddd/article/details/112381382
今日推荐