图像处理之图像腐蚀

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

一、图像腐蚀基本原理

腐蚀操作就是拿这个结构元素的中心位置(假设参与逻辑计算的元素对应与二维矩阵中元素为1的点,即网格板上的孔),在图像上移动时,如果透过所有的孔都能看到底下的图像,那么这个中心点处的图像就保留,否则去除。
图像A用卷积模板B来进行腐蚀处理,通过模板B与图像A进行卷积计算,得出B覆盖区域的像素点最小值,并用这个最小值来替代参考点的像素值。如图所示,将左边的原始图像A腐蚀处理为右边的效果图A-B。
腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。
在这里插入图片描述
图像进行腐蚀处理后,高亮区减少(白色区域减少)。

二、图像腐蚀代码实现

形态学转换主要针对的是二值图像(0或1),因此需要将图像进行二值化后再使用卷积核对图像进行腐蚀。卷积核是腐蚀中的关键数组,采用numpy库可以生成。卷积核的中心点逐个像素扫描原始图像。
被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则其值修改为0。换句话说,遍历到的黄色点位置,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。
在这里插入图片描述
使用erode函数进行腐蚀

dst = cv2.erode(src, kernel, iterations)

src是图形路径
kernel是卷积核的定义,可以使用np.ones((5,5), np.uint8) 定义一个5*5的卷积核
iterations是迭代次数,默认是1,表示进行一次腐蚀,也可以根据需要进行多次迭代,进行多次腐蚀。

将本地图像进行腐蚀并显示

import cv2
import numpy as np
src=cv2.imread('C:/Users/wanqian/Desktop/1/12.jpg',cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((5,5),np.uint8)
#图像腐蚀处理
erosion=cv2.erode(src,kernel)
#显示图像
cv2.imshow("src",src)
cv2.imshow("result",erosion)
#等待显示
cv2.waitKey(0)
cv2.destroyAlLWindows()

在这里插入图片描述

可以看到图像高亮部分减少,但是大体轮廓并没有改变

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仓鼠球球-O-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值