膨胀操作和腐蚀操作正好相反,是取核中像素值的最大值代替锚点位置的像素值,这样会使图像中较亮的区域增大 较暗的区域减小。如果是一张黑底,白色前景的二值图,就会使白色的 前景物体颜色面积变大,就像膨胀了一样。
opencv提供dilate)函数进行膨胀操作,其对应参数如下:
dst = cv2.dilate(src, kernel,anchor,iterations,borderType, bordervalue)
src:输入图像对象矩阵,为二值化图像
kernel:进行腐蚀操作的核,可以通过函数getstructuringElement ()获得
anchor:锚点,默认为(-1,-1)
iterations:腐蚀操作的次数,默认为1
borderType :边界种类
bordervalue:边界值
img = cv2.imread('dige.png')
cv2.imshow(' img', img)
cv2.waitKey(0)
cv2.destroyAllWindows ()
kernel = np.ones ((3,3), np.uint8)
dige_erosion = cv2.erode(img, kernel,iterations = 1)
cv2.imshow(' erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows )
kernel = np. ones((3,3), np.uint8)
dige_dilate = cv2.dilate(dige_erosion, kernel, iterations = 1)
cv2.imshow('dilate', dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows ()
pie = cv2.imread('pie.png')
kernel = np. ones ( (30,30) , np.uint8)
dilate_l = cv2.dilate(pie, kernel,iterations = 1)
dilate_2 = cv2.dilate(pie, kernel,iterations = 2)
dilate_3 = cv2.dilate(pie, kernel,iterations = 3)
res = np.hstack((dilate_1, dilate_2,dilate_3))
cv2.imshow('res', res)