OpenCV_Python —— (4)形态学操作

@

										原始图像

在这里插入图片描述

一、结构元素

因为形态学操作其实也是应用卷积来实现的,这个卷积核也叫结构元素。结构元素可以是矩形/椭圆/十字形,可以用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)

在这里插入图片描述

原文地址:https://www.cnblogs.com/long5683/p/13163986.html