I am after a simple, yet effective, Image Edge Preserving Filter.
I need something which is faster than the Bilateral Filter with similar quality (The Guided Filter isn't good enough).
Are there such algorithms?
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It only takes a minute to sign up.
Sign up to join this communityI am after a simple, yet effective, Image Edge Preserving Filter.
I need something which is faster than the Bilateral Filter with similar quality (The Guided Filter isn't good enough).
Are there such algorithms?
Recently I have seen the paper Hui Yin, Yuanhao Gong, Guoping Qiu - Side Window Filtering.
They suggest a really simple filtering framework for Edge Preserving Filter:
Basically, what they suggest is filtering the image with a set of filter based on the Box Filter.
This filter set is basically composed of 8 filters with different orientations and sub sets of the Box Filter (As seen in the figure above).
Once you apply all filters (Which each of them can be implemented very efficiently by all the efficient implementations available for Box Filtering) you chose, on a per pixel basis, the one most similar to the original pixel.
Applying it by iterations, yields very efficient and very good filter.
I took the Lena Image:
I applied 40 iterations of the filter (Link to 75 Iterations):
The full code is available on my StackExchange Signal Processing Q74674 GitHub Repository (Look at the SignalProcessing\Q74674
folder).
The bilateral filter is a slow filter as it has to dynamically adapt its kernel based on local image statistics. To overcome this limitation, researchers came up Bilateral Grids. It performs the same edge-preserving smoothening an order of magnitude faster.