OpenCV提供了获取卷积核的API,不需要我们手动创建卷积核。
通过下面API---getStructuringElement(shape,ksize,[, anchor])
- shape是指卷积核的型状,注意不是指长宽,是指卷积核中1形成的形状。
- MORPH_RECT 卷积核中的1是矩形,常用。
- MORPH_ELLIPSE 椭圆
- MORPH_CROSS 十字
下面输出不同形状的卷积核(都为6*6)
- 矩形
- 椭圆
- 十字形
再对其进行腐蚀操作,示例代码如下:
import cv2
import numpy as np
img = cv2.imread("mashibing.png")
# 查看不同形状的卷积核
# kernel1 = cv2.getStructuringElement(cv2.MORPH_RECT, (6,6))
# kernel2 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (6,6))
kernel3 = cv2.getStructuringElement(cv2.MORPH_CROSS, (6,6))
# print(kernel1)
# print(kernel2)
print(kernel3)
# 进行腐蚀操作
new_img = cv2.erode(img, kernel3)
cv2.imshow("img", np.hstack((img, new_img)))
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如下: