[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

| KuanFunctor< VALUETYPE > Class Template Reference |

This function tries to reduce the speckle noise of an image by applying the Kuan filter. More...

`#include <vigra/specklefilters.hxx>`

## Detailed Description

### template<typename VALUETYPE>
class vigra::KuanFunctor< VALUETYPE >

This function tries to reduce the speckle noise of an image by applying the Kuan filter.

This function tries to reduce the speckle noise of an image by means of applying the Kuan filter using a window of given size, and the equivalent numbers of look (enl). The implementation is according to the article by Lopez & Touzi & Nezry (1990): Adaptive speckle filters and scene heterogenity.The user has to provide a window size and the equivalent numbers of look (enl). The implementation is according to the article by Lopez & Touzi & Nezry (1990): Adaptive speckle filters and scene heterogenity.

All restrictions of the called functions applyWindowFunction apply.

Preconditions:

enl > 0

Declarations:

pass 2D array views:

namespace vigra {
template <class T1, class S1,
class T2, class S2>
void
kuanFilter(MultiArrayView<2, T1, S1> const & src,
MultiArrayView<2, T2, S2> dest,
Diff2D window_shape, int enl,
BorderTreatmentMode border = BORDER_TREATMENT_REPEAT);
}

show deprecated declarations

pass Image Iterators and Data Accessors :
namespace vigra {
template <class SrcIterator, class SrcAccessor,
class DestIterator, class DestAccessor>
void kuanFilter(SrcIterator supperleft,
SrcIterator slowerright, SrcAccessor sa,
DestIterator dupperleft, DestAccessor da,
Diff2D window_shape, int enl,
BorderTreatmentMode border = BORDER_TREATMENT_REPEAT);
}

use argument objects in conjunction with Argument Object Factories :

namespace vigra {
template <class SrcIterator, class SrcAccessor,
class DestIterator, class DestAccessor>
void
kuanFilter(triple<SrcIterator, SrcIterator, SrcAccessor> src,
pair<DestIterator, DestAccessor> dest,
Diff2D window_shape, int enl,
BorderTreatmentMode border = BORDER_TREATMENT_REPEAT);
}

Usage:

#include <vigra/specklefilters.hxx>
Namespace: vigra

unsigned int w=1000, h=1000;
MultiArray<2, float> src(w,h), dest(w,h);
...
// apply a Kuan filter with a window size of 5x5, where
// the image was composed by 3 equivalent looks:
kuanFilter(src, dest, Diff2D(5,5), 3);

The documentation for this class was generated from the following file:

- vigra/specklefilters.hxx

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany | html generated using doxygen and Python vigra 1.11.0 (Fri May 19 2017)