Source code for bruges.filters.kernels
"""
2D kernels for image processing.
:copyright: 2015 Agile Geoscience
:license: Apache 2.0
"""
import numpy as np
[docs]def gaussian(size, size_y=None):
"""
2D Gaussian Kernel
Args:
size (int): the kernel size, e.g. 5 for 5x5 (in a 2D arr). Should be
odd, rounded up if not.
size_y (int): similar to size. If not provided, uses size as default.
Returns: a Gaussian kernel.
"""
size = int(size)
if not size_y:
size_y = size
else:
size_y = int(size_y)
x, y = np.mgrid[-size:size+1, -size_y:size_y+1]
g = np.exp(-(x**2/float(size)+y**2/float(size_y)))
return g / g.sum()
gaussian_kernel = gaussian