我编写了一个程序来实现灰度图像的膨胀方法,而不使用任何预定义的函数。这是我用python写的代码:
import cv2 as cv
import numpy as np
img = cv.imread('dil.png', 0)
cv.imshow('Original', img)
def find_max(k):
mx = k[0]
for i in range(1, len(k)):
if k[i] > mx:
mx = k[i]
return mx
mask=[0]*9
mask[0] = 0
mask[1] = 1
mask[2] = 0
mask[3] = 1
mask[4] = 1
mask[5] = 1
mask[6] = 0
mask[7] = 1
mask[8] = 0
for m in range(1, img.shape[0]-1):
for n in range(1, img.shape[1]-1):
mask[6] += img[m-1,n-1]
mask[7] += img[m,n-1]
mask[8] += img[m+1,n-1]
mask[3] += img[m-1,n]
mask[4] += img[m,n]
mask[5] += img[m+1,n]
mask[0] += img[m-1,n+1]
mask[1] += img[m,n+1]
mask[2] += img[m+1,n+1]
u = find_max(mask)
img[m,n]= u
cv.imshow('Dilated', img)
cv.waitKey(0)
cv.destroyAllWindows()
我在这里使用了 3X3 内核。如果还有其他错误,请纠正。我是一个初学者,只是好奇在不使用直接函数的情况下做到这一点。