ImageEn, unit ievision




procedure fastNlMeansDenoisingColored(h: single = 3; hColor: single = 3; templateWindowSize: int32_t = 7; searchWindowSize: int32_t = 21); overload; safecall;
procedure fastNlMeansDenoisingColored(outImage: TIEVisionImage; h: single = 3; hColor: single = 3; templateWindowSize: int32_t = 7; searchWindowSize: int32_t = 21); overload; safecall;


Perform image denoising using the Non-local Means Denoising algorithm with several computational optimizations. Noise is expected to be a gaussian white noise.

Note: Pixel format of input image must be ie24RGB.

Parameter Description
outImage ie24RGB image for output
h Filter strength for image luminance. Larger h values perfectly remove noise but also remove image details, smaller h values preserve details but also noise
hColor The same as h but for image color. For most images a value of 10 will be enough to remove colored noise and not distort colors
templateWindowSize Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7
searchWindowSize Size in pixels of the window that is used to compute weighted average for a given pixel. Should be odd. This value affects performance linearly, i.e. a larger value for searchWindowsSize will mean a longer denoising time. Recommended value 21


Demo  Demos\IEVision\Denoising\Denoising.dpr
Demo  Demos\ImageEditing\EveryMethod\EveryMethod.dpr

Also see: Comparison of smoothing, blurring and noise reduction methods


// Load test image
ImageEnView1.IO.LoadFromFile( 'D:\TestImage.jpg' );


// Perform image denoising using the Non-local Means Denoising algorithm


// Perform more aggressive denoising
ImageEnView1.IEBitmap.GetIEVisionImage().fastNlMeansDenoisingColored( 10, 10 );


See Also

- SymmetricNearestNeighbour