コード例 #1
0
def gaussianlowpass(f, imgs):
    r, c = imgs[:2]
    ct = (r / 2, c / 2)
    b = np.zeros(imgs[:2])
    for x in range(c):
        for y in range(r):
            b[y, x] = math.exp(((-dist((y, x), ct)**2) / (2 * (f**2))))
    return b
コード例 #2
0
def butterlowpass(f, imgs, n):
    r, c = imgs[:2]
    ct = (r / 2, c / 2)
    b = np.zeros(imgs[:2])
    for x in range(c):
        for y in range(r):
            b[y, x] = 1 / (1 + (dist((y, x), ct) / f)**(2 * n))
    return b
コード例 #3
0
def idealhighpass(f, imgs):
    r, c = imgs[:2]
    ct = (r / 2, c / 2)
    b = np.ones(imgs[:2])
    for x in range(c):
        for y in range(r):
            if dist((y, x), ct) < f:
                b[y, x] = 0
    return b
コード例 #4
0
def ideallowpass(f, imgs):
    r, c = imgs[:2]
    ct = (r / 2, c / 2)
    b = np.zeros(imgs[:2])

    for x in range(c):
        for y in range(r):
            if dist((y, x), ct) < f:
                b[y, x] = 1
    return b