Returns popular 2D convolution kernels
K = mkfilter(name)
mkfilter builds well-known 2D filter "masks" (kernels), such as sobel, prewitt, mean, etc. to be used together with a function such as imconv.
K = mkfilter('sobel') returns a 3x3 edge-finding and yderivative approximation filter. To find vertical edges, use -K'.
K = mkfilter('prewitt') returns another 3x3 edge-finding and y-derivative approximation filter. To find vertical edges, use -K'.
K = mkfilter('laplace1') returns a 3x3 kernel which shows points of an image where intensity is varying quickly. The "laplacien" of an image is the two-dimensionnal second derivative. Because images are discrete (and not continuous), the "laplacien" can only be approximated. The 3 different kernels often used to estimate it are given by "laplace1", "laplace2" and "laplace3". These kernels can be used to detect edges of an image.
K = mkfilter('sh1'): "sharp enhancer". Returns a 3x3 kernel which renforce high frequencies of the image: it accentuates the variations of a pixel compared to its neighbours. Problem: it enhances the noise too (it may be useful to denoise the image before).
K = mkfilter('sh2') has the same effect than "sh1" but its coefficients are more powerfull.
K = mkfilter('low-pass') : this is a low-pass filter. The goal is inverse of sharp enhancer filters - the image is smoothed. This kernel is only one of the possible kernels.
K = mkfilter('mean') : this is another low-pass filter. The mean value of the central pixel and its neighbours is affected at the central pixel.
K = mkfilter('circular',rad) is an euclidean circular mask with radius "rad" pixels, whose elements are all 1.
K = mkfilter('circular-mean',rad) is a low pass filter, the same as 'circular', but the matrix K is divided by the number of 1-elements.