图像处理腐蚀与膨胀

图像的腐蚀(erosion)和膨胀(dilation)是两种基本的形态学运算,主要用来寻找图像中的极大区域和极小区域.

 

腐蚀(erosion):  

腐蚀类似 '领域被蚕食' ,将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小

形态学转换主要针对的是二值图像(0或1)。图像腐蚀类似于“领域被蚕食”,将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。其主要包括两个输入对象:

(1)二值图像

(2)卷积核

图示:

说明:左边是图像X(二值图象,我们针对的是黑点),中间是结构元素B(卷积核),那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。

腐蚀代码:

import cv2
import numpy as np
import  matplotlib.pyplot as plt
 
#读取照片
img = r"C:\Users\bcl\Desktop\image.jpg"
 
#图像的二值化 
src = cv2.imread(img,cv2.IMREAD_UNCHANGED)
#卷积核5*5
kernel = np.ones((5,5),np.uint8)
 
#图像的腐蚀,默认迭代次数
erosion = cv2.erode(src,kernel)
#显示照片
cv2.imshow('origin',src)
# 腐蚀后
cv2.imshow('after erosion',erosion)
plt.show()
cv2.waitKey(0)

膨胀(dilation)

膨胀类似与 '领域扩张' ,将图像的高亮区域或白色部分进行扩张,其运行结果图比原图的高亮区域更大.

图像膨胀是腐蚀的逆过程,往往先通过腐蚀使图片线条变窄,然后腐蚀可以去除噪声。图像膨胀的处理过程:

a.图像二值化,将图像的灰度值根据阈值进行0,1处理得到的图像;

b.卷积核,对应信号处理中的高低频滤波器。常用numpy去设置,np.ones((m,n), np.uint8) 表示指定m*n的卷积核;

c.图像的腐蚀,cv2.dilate(二值化图像, 卷积核, 迭代次数)

图示:

 说明:左边是图像X(二值图象,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。

import cv2
import numpy as np
import  matplotlib.pyplot as plt

img = r"C:\Users\bcl\Desktop\image.jpg"

# 图像的二值化
src = cv2.imread(img, cv2.IMREAD_UNCHANGED)

# 设置卷积核5*5
kernel = np.ones((5, 5), np.uint8)

# 图像的腐蚀,默认迭代次数
erosion = cv2.erode(src, kernel)

# 图像的膨胀
dst = cv2.dilate(erosion, kernel)

# 效果展示
cv2.imshow('origin', src)
# 腐蚀后
cv2.imshow('after erosion', erosion)
# 膨胀后
cv2.imshow('after dilate', dst)

plt.show()
cv2.waitKey(0)

  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值