【openCV学习】24.腐蚀操作与形态学卷积核的获取

本文介绍了OpenCV中使用全1卷积核进行腐蚀操作的基本原理,展示了如何通过API获取和应用形态学卷积核,以及实际代码示例。腐蚀过程会去除二值图中的白色区域,使图像细节发生变化。
摘要由CSDN通过智能技术生成

1.腐蚀

腐蚀是用一个全是1的卷积核去扫描一个二值图,由于卷积核全是1,当锚点为白色(1),但是卷积核覆盖的范围内只要有一个是黑色的(0),由于卷积运算中有乘法的部分,因为这一个0,锚点最终都会被计算成0,也就是被腐蚀成黑色的了。

如图所示,用一个5*5的卷积核去扫描这个图像,那么虚线外面的白色部分都会被腐蚀成黑色。

2.API

例子:

#参数:图片,卷积核,迭代次数,迭代次数表示腐蚀执行的次数

det = cv2.erode(img,krenel,iterations=2)

3.形态学卷积核的获取

openCV对于形态学部分的卷积核的获取提供了一个便捷的接口:

因此要获得一个3*3全是1的卷积核,可以用如下指令

#cv提供了获取形态学卷积核的API

#getStructruingElement(shape,ksize[,anchor])

#shape指的是卷积核中1组成的形状,其中MORPH_RECT为矩形,MORPH_ELLIPSE椭圆,MORPH_CROSS十字

krenel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))

4.完整代码:

import cv2
import numpy
import numpy as np

img = cv2.imread("image/world.png")

#krenel = np.ones((3,3),np.uint8)
#cv提供了获取形态学卷积核的API
#getStructruingElement(shape,ksize[,anchor])
#shape指的是卷积核中1组成的形状,其中MORPH_RECT为矩形,MORPH_ELLIPSE椭圆,MORPH_CROSS十字
krenel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))

#参数:图片,卷积核,迭代次数,迭代次数表示腐蚀执行的次数
det = cv2.erode(img,krenel,iterations=2)

cv2.imshow("show",np.hstack((img,det)))
cv2.waitKey(0)
cv2.destroyAllWindows()

 

效果如下:

可以看到图片中一些白色的斑点被去除了,并且文字也比之前变细了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

owooooow

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

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

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

打赏作者

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

抵扣说明:

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

余额充值