图像的膨胀和腐蚀原理及opencv实现

1 膨胀和腐蚀介绍

腐蚀和膨胀是形态学最基本的操作,都是针对白色部分(高亮部分)而言的。
膨胀就是使图像中高亮部分扩张,得到比原图更大的高亮区域;腐蚀是原图像中的高亮区域被蚕食,得到比原图更小的高亮区域。
膨胀是求结构元素下像素最大值,腐蚀是求结构元素下像素最小值。

1.1 膨胀

具体操作:用一个结构元素扫描图像中的每一个像素,看结构元素覆盖下的原图的像素(二值图像只有0和1)的最大值是多少,若最大值是1,则该点像素为1;若最大值是0,则该点像素是0。

例子如下:
原图

结构元素

以第三行第二个像素点为例,将结构元素的中心点放置在该像素点上,结构元素覆盖的区域像素点的最大值为1,因此第三行第二个像素点的值为1。

膨胀后的结果:

膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可填补目标中的孔洞。

1.2 腐蚀

具体操作:用一个结构元素扫描图像中的每一个像素,用结构元素的中心对准当前正在扫描的像素,看结构元素覆盖下的原图对应的像素(二值图像只有0和1)的最小值是多少,若最小值是0,则该点像素为0;若是1,则该点像素是1。
例子如下:
原图
哈哈哈
结构元素

以第二行第三个像素点为例,将结构元素的中心点放置在该像素点上,用结构元素的中心对准当前正在扫描的像素,结构元素覆盖的区域像素点的最小值为0,因此第二行第三个像素点的值变成0。

腐蚀后的结果:

腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点。

2 opencv 实现

2.1 膨胀

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

img = cv.imread('./image/letter.png')
# 创建核结构
kernel = np.ones((5,5),np.uint8)
#膨胀
img1 = cv.dilate(img,kernel)
plt.imshow(img1)

2.2 腐蚀

# 腐蚀
img2 = cv.erode(img,kernel)
plt.imshow(img2)
  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值