码迷,mamicode.com
首页 > 其他好文 > 详细

3.形态学

时间:2019-09-11 15:25:02      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:oss   python   图片   最小值   open   应用   info   rom   utils   

#导入工具包

from imutils import *

 Erosion腐蚀
其原理是在原图的小区域内取局部最小值,其函数是cv2.erode()。这个核也叫结构元素,因为形态学操作其实也是应用卷积来实现的,结构元素可以是矩形/椭圆/十字形,可以用cv2.getStructuringElement()来生成不同形状的结构元素,比如:

# 矩形
kernel1 = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
print(kernel1)

 

[[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]
# 椭圆
kernel2 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))
print(kernel2)
[[0 0 1 0 0]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [0 0 1 0 0]]
# 十字形
kernel3 = cv2.getStructuringElement(cv2.MORPH_CROSS, (5,5))
print(kernel3)
image = imread(image.jpg)
show(image)

技术图片

1 erosion = cv2.erode(image, kernel1)
2 show(erosion)

技术图片

1 for i in range(3):
2     erosion = cv2.erode(image, kernel1, iterations=i+1)
3     show(erosion)

技术图片技术图片技术图片

Dilation膨胀
膨胀与腐蚀相反,取的是局部最大值。cv2.dilate()

1 dilation = cv2.dilate(image, kernel)
2 show(dilation)

技术图片

1 for i in range(3):
2     dilation = cv2.dilate(image, kernel1, iterations=i+1)
3     show(dilation)

技术图片技术图片技术图片

Opening开运算

先腐蚀后膨胀叫开运算,其作用是消除小白点。这类形态学操作用cv2.morphologyEx()函数实现

#读入图片

1 image2 = imread(image2.jpg)
2 show(image2)

技术图片

1 # 去除白点
2 opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
3 show(opening)

技术图片

 Closing闭运算
闭运算则相反:先膨胀后腐蚀。其作用是消除小黑点。

1 # 去除黑点
2 closing = cv2.morphologyEx(image2, cv2.MORPH_CLOSE, kernel1)
3 show(closing)

技术图片

# 先开运算再闭运算

1 opening = cv2.morphologyEx(image2, cv2.MORPH_OPEN, kernel1)
2 closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel1)
3 show(closing)

技术图片

 Gradient形态学梯度
膨胀图减去腐蚀图,dilation - erosion,得到物体的轮廓

gradient = cv2.morphologyEx(image, cv2.MORPH_GRADIENT, kernel1)
show(gradient)

技术图片

 Top Hat顶帽/White Hat白帽
原图减去开运算后的图:src - opening

1 tophat = cv2.morphologyEx(image2, cv2.MORPH_TOPHAT, kernel1)
2 show(tophat)

技术图片

Black Hat黑帽
闭运算后的图减去原图:closing - src

1 blackhat = cv2.morphologyEx(image2, cv2.MORPH_BLACKHAT, kernel1)
2 show(blackhat)

技术图片

 

 

 

 

3.形态学

标签:oss   python   图片   最小值   open   应用   info   rom   utils   

原文地址:https://www.cnblogs.com/liuwenhua/p/11506398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!