【形态学滤波】——腐蚀和膨胀

本篇文章主要用于记录python调用opencv实现图像膨胀与腐蚀的算法,以及相关的知识点。

一、基础理论

二、图像腐蚀代码

三、图像膨胀代码

四、形态学处理图像常规操作


一、基础理论

1、形态学概述

图像处理中的形态学往往指的是数学形态学。

2、数学形态学

建立在格论和拓扑学基础之上的图像分析学科,是数字形态学图像图像处理的基本理论。 其基本的运算包括二值化腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中于击不中变换、形态学梯度、 Top-hat变换、颗粒分析、流域变换、灰度腐蚀和膨胀、灰度开闭运算、灰值形态学梯度等。

3、膨胀与腐蚀的功能:

消除噪声;

分割出独立的图像元素,在图像中连接相邻的元素;

寻找图像中的明细的极大值区域或极小值区域;

求出图像的梯度。

4、膨胀的概念

从数学角度,膨胀或腐蚀就是将图像(原图中的部分区域A)与核(锚点B)进行卷积。 膨胀就是求局部最大值的操作,与B卷积,就是求B所覆盖区域的像素点的最大值,并将最大值赋给参考点指定的像素,从而增长高亮区域。其运算符为“⊕”。

                                        dst(x,y)=max(src(x+x',y+y'))             其中,(x',y‘):element(x',y’)≠0

                                               

5、腐蚀的概念

dst(x,y)=min(src(x+x',y+y')) 其中,(x',y‘):element(x',y’)≠0 在python中,dst=cv2.erode(src,kernel,iterations) iterations表示迭代次数 即被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则其值修改为0。 换句话说,遍历到的某个位置时,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。 其过程正好与膨胀相反。其运算符为"_"。

                                                

二、图像腐蚀代码

import cv2
import numpy as np
#读取图片
src = cv2.imread('F:/image/12.jpg', cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((5,5), np.uint8)
#图像腐蚀处理
erosion = cv2.erode(src, kernel,iterations=1)  #iterations未出现时表示此时为1,即一次腐蚀
#显示图像
cv2.imshow("src", src)
cv2.imshow("result", erosion)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

其效果图如下:

三、图像膨胀代码

import cv2
import numpy as np
#读取图片
src = cv2.imread('F:/image/12.jpg', cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((3,3), np.uint8)
#图像膨胀处理
dil = cv2.dilate(src, kernel,iterations=1)  #iterations未出现时表示此时为1,即一次腐蚀
#显示图像
cv2.imshow("src", src)
cv2.imshow("result", dil)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

其效果如下:

四、形态学处理图像常规操作

在实际的图像去噪中,通常是先腐蚀后膨胀,即所谓的开运算。其效果相比单一操作要好许多。其效果如下:

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值