其他分享
首页 > 其他分享> > 11. 形态学--膨胀、腐蚀、开闭运算、梯度、顶帽、黑帽

11. 形态学--膨胀、腐蚀、开闭运算、梯度、顶帽、黑帽

作者:互联网

1. 形态学-腐蚀

腐蚀是元素全为1的卷积核
方法:
erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

import cv2
import numpy as np

img = cv2.imread('./msb.png')
kernel = np.ones((3, 3), np.uint8)
dst = cv2.erode(img, kernel, iterations=2)
cv2.imshow('img', np.hstack(img, dst))
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 形态学-膨胀

dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

# 使用cv2提供的函数获取形态学卷积核:MORPH_RECT,CROSS,ELLIPSE等
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))  # 膨胀卷积核选择类型
# 膨胀操作
dst = cv2.dilate(img, kernel)
cv2.imshow('img', np.hstack(img, dst))

3. 获取形态学卷积核

cv提供了获取卷积核的API,不需要我们手动创建卷积核
getStructuringElement(shape, ksize[, anchor])

kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))
# 在使用腐蚀或膨胀的时候,作为卷积核使用
cv2.erode(img, kernel, iterations=2)

4. 开运算

5. 闭运算

6. 形态学-梯度

# 注意调节kernel大小以获得更清晰的边缘
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
dst = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel, iterations=1)

7. 顶帽操作

8. 黑帽操作

标签:11,kernel,img,MORPH,--,cv2,黑帽,卷积,腐蚀
来源: https://www.cnblogs.com/TheoryDance/p/16414327.html