GLSL Bilateral Filtering Demo

<- Return to Experimental GLSL Image Processing

Bilatering filtering is a powerful edge preserving denoising technique. However, the Bilateral filter is frequently overlooked in practice, particularly for real time applications, because it is not implemented via separable convolution. However, the Bilateral filter can take advantage of pixel parallelism, just like the Gaussian filtering example.

This GLSL implementation is 14 times faster than the multithreaded CPU implementation in the Insight Toolkit (ITK) on a Macbook Pro with Retina Display.

(This implementation is based on the work of https://www.shadertoy.com/view/4dfGDH#.)

Source Image

Processed Image

Move pointer over the lower image. As you move the mouse, the left side of the image is unfiltered, the right side is Bilateral filtered. A comparison of Gaussian and Bilateral filtering is here.

Check out the source code.

This demo uses WebGL. Not all devices and browsers are supported.