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
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
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
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