File Exchange

image thumbnail

Faster Kuwahara filter

version 1.0 (2.62 KB) by

Performs a very fast Kuwahara filtering on images.



View License

This function performs a Kuwahara filtering on images. It is optimized using vectorization, convolution and the fact that, for every subregion
variance = (mean of squares) - (square of mean).
A nested-for loop approach is still used in the final part as it is more readable, but a commented-out, fully vectorialised version is provided as well.

This function is about 2.3 times faster than KuwaharaFast at
with a 5x5 window, and even faster at higher window sizes (about 4 times on a 13x13 window)

Kuwahara Filter description
The Kuwahara filter works on a window divided into 4 overlapping subwindows (for a 5x5 pixels example, see below). In each subwindow, the mean and variance are computed. The output value (located at the center of the window) is set to the mean of the subwindow with the smallest variance.

( a a ab b b)
( a a ab b b)
(ac ac abcd bd bd)
( c c cd d d)
( c c cd d d)


Comments and Ratings (2)

ashkan abbasi

ashkan abbasi (view profile)

it works for gray level images.
here is an example:
I_f = Kuwahara(im2double(rgb2gray(I)),5);

see also

Armani Etiquet

Hi how exactly to use this filter? I'm typing :
filtered = Kuwahara(original,5);
in command window, but ir drops me out:
"??? Undefined function or variable 'original'."
i tryed to put image name instrad of 'original' and image with wxtension - it diesn't work always says the same error.
I tryed to put integer value- then, there is no error but dunction does 'nothin'.(no action taken).

MATLAB Release
MATLAB 7.4 (R2007a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video