This algorithm is the most popular image filtering process. It can do edge detection, median filtering, bump mapping (this one I discovered by mistake ;). It uses a customizable mask that will be applied to each pixel of the image.
The user can load some pre-defined masks (Laplace, Sobel, Median, Gauss, bumpmap, *.mask) or he can create a new mask, view the results and than save the mask if he wishes.
The difference between a median mask filter (that is like a low-pass filter) and a derivative filter (high-pass filter, edge detect) consists in the coefficients of the mask. A derivative mask has the sum of the coefficients equal to 0 and a median mask has the coefficients sum equal to 1. If the user enters a mask that doesn't look like any of these two cases than the coefficients will be rescaled automatically.