File Exchange

image thumbnail

Faster Kuwahara filter

version (2.62 KB) by Luca Balbi
Performs a very fast Kuwahara filtering on images.

1 Download

Updated 18 May 2007

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)

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 Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor