1.腐蚀
腐蚀是用一个全是1的卷积核去扫描一个二值图,由于卷积核全是1,当锚点为白色(1),但是卷积核覆盖的范围内只要有一个是黑色的(0),由于卷积运算中有乘法的部分,因为这一个0,锚点最终都会被计算成0,也就是被腐蚀成黑色的了。
如图所示,用一个5*5的卷积核去扫描这个图像,那么虚线外面的白色部分都会被腐蚀成黑色。
2.API
#参数:图片,卷积核,迭代次数,迭代次数表示腐蚀执行的次数
det = cv2.erode(img,krenel,iterations=2)
3.形态学卷积核的获取
openCV对于形态学部分的卷积核的获取提供了一个便捷的接口:
#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()