@
目录
原始图像
一、结构元素
因为形态学操作其实也是应用卷积来实现的,这个卷积核也叫结构元素。结构元素可以是矩形/椭圆/十字形,可以用cv2.getStructuringElement()来生成不同形状的结构元素,比如:
二、Erosion腐蚀(白色部分被腐蚀,黑色部分变大)
原理是在原图的小区域内取局部最小值,其函数是cv2.erode()。
erosion = cv2.erode(image, kernel1)
show(erosion)
三、Dilation膨胀(白色部分膨胀,黑色部分变小)
膨胀与腐蚀相反,取的是局部最大值。cv2.dilate()
dilation = cv2.dilate(image, kernel)
show(dilation)
四、Opening开运算
先腐蚀后膨胀叫开运算,其作用是消除小白点。这类形态学操作用cv2.morphologyEx()函数实现
原图
# 去除白点
opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
show(opening)
五、Closing闭运算
闭运算则相反:先膨胀后腐蚀。其作用是消除小黑点。
closing = cv2.morphologyEx(image2, cv2.MORPH_CLOSE, kernel1)
show(closing)
六、先开运算再闭运算
opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel1)
show(closing)
七、Gradient形态学梯度
膨胀图减去腐蚀图,dilation - erosion,得到物体的轮廓
gradient = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel1)
show(gradient)
八、Top Hat顶帽/White Hat白帽
原图减去开运算后的图:src - opening
相当于把开运算去掉的部分给求出来了
tophat = cv2.morphologyEx(image2, cv2.MORPH_TOPHAT, kernel1)
show(tophat)
九、Black Hat黑帽
闭运算后的图减去原图:closing - src
相当于把闭运算去掉的部分给求出来了
blackhat = cv2.morphologyEx(image2, cv2.MORPH_BLACKHAT, kernel1)
show(blackhat)