1

我编写了一个程序来实现灰度图像的膨胀方法,而不使用任何预定义的函数。这是我用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 内核。如果还有其他错误,请纠正。我是一个初学者,只是好奇在不使用直接函数的情况下做到这一点。

4

0 回答 0