演示OpenCV膨胀腐蚀操作
输入图片test.jpg如下:
代码:
import cv2
import numpy as np
if __name__ == "__main__":
img = cv2.imread("test.jpg")
img = 255-img
# img二值化,大于127的值赋值为255,小于127的值赋值为0
ret, img = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
kernel = np.ones((5,5), dtype=np.uint8)
# 把img进行2次膨胀操作
img_dilate = cv2.dilate(img, kernel, 2)
# 把img进行2次腐蚀操作
img_erode = cv2.erode(img, kernel, 2)
img_result = np.hstack([img, img_dilate, img_erode])
cv2.imwrite("result.jpg", img_result)
# 将单通道的灰度图变为3通道的图
# img_mask = np.expand_dims(img_mask,2).repeat(3,axis=2)
result.jpg如下:
关于膨胀腐蚀的详细讲解:膨胀与腐蚀
总结:膨胀操作就是把字体变胖,通常用来填补图像的缺陷;腐蚀操作就是把字体变瘦,用来去掉图像外边的毛刺。