ImageEn, unit ievision

TIEVisionImage.fastNlMeansDenoisingColored

TIEVisionImage.fastNlMeansDenoisingColored


Declaration

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;


Description

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
 Also available as a RetouchTool by setting MouseInteractGeneral to [miRetouchTool] and RetouchMode to iermIEVisionSmooth

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


Demos

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

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


Example

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

  

// Perform image denoising using the Non-local Means Denoising algorithm
ImageEnView1.IEBitmap.GetIEVisionImage().fastNlMeansDenoisingColored();
ImageEnView1.Update();

  

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

  


See Also

 SymmetricNearestNeighbour