| eLynx SDK
v3.0.1 C++ image processing API reference |
#include <ImageLocalProcessingImpl.h>

Public Types | |
| typedef Pixel | Pixel_t |
Public Member Functions | |
Convolution services | |
| virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel, bool ibAbsolute, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin, double iThresholdMax, bool ibAbsolute, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel1, const Math::ConvolutionKerneld &iKernel2, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplyBoxBlur (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplySelectiveBlur (AbstractImage &ioImage, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | ApplyBilateral (AbstractImage &ioImage, double iRadius, double iSigmaSpatial, double iSigmaRange, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| virtual bool | RemoveIsolated (AbstractImage &ioImage, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
Static Public Member Functions | |
Specialized static services | |
| static bool | Convolve3x3 (ImageImpl< Pixel > &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin=0.0, double iThresholdMax=1.0, bool ibAbsolute=false, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | Convolve5x5 (ImageImpl< Pixel > &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin=0.0, double iThresholdMax=1.0, bool ibAbsolute=false, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ConvolveWxH (ImageImpl< Pixel > &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin=0.0, double iThresholdMax=1.0, bool ibAbsolute=false, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | Convolve (ImageImpl< Pixel > &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin=0.0, double iThresholdMax=1.0, bool ibAbsolute=false, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | Convolve (ImageImpl< Pixel > &ioImage, const Math::ConvolutionKerneld &iKernel1, const Math::ConvolutionKerneld &iKernel2, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplyBoxBlur (ImageImpl< Pixel > &ioImage, uint32 iWidth, uint32 iHeight, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplySelectiveBlur (ImageImpl< Pixel > &ioImage, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplyGaussian (ImageImpl< Pixel > &ioImage, double iRadius=1.5, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplyGaussian (ImageImpl< Pixel > &ioImage, double iRadius, double iVariance, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplyGaussian (ImageImpl< Pixel > &ioImage, uint32 iWidth, uint32 iHeight, double iVariance, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | ApplyBilateral (ImageImpl< Pixel > &ioImage, double iRadius=2.5, double iSigmaSpatial=1.0, double iSigmaRange=1.0, EBorderFill iBorder=BF_Nearest, uint32 iIteration=1, uint32 iChannelMask=CM_All, ProgressNotifier &iNotifier=ProgressNotifier_NULL) |
| static bool | RemoveIsolated (ImageImpl< Pixel > &ioImage, uint32 iChannelMask, ProgressNotifier &iNotifier) |
Definition at line 31 of file ImageLocalProcessingImpl.h.
| typedef Pixel eLynx::Image::ImageLocalProcessingImpl< Pixel >::Pixel_t |
Definition at line 34 of file ImageLocalProcessingImpl.h.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve | ( | AbstractImage & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| bool | ibAbsolute, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Convolve with a kernel.
| ioImage | image to be convolved. | |
| iKernel | the convolution kernel [WxH]. | |
| ibAbsolute | true to use absolute value of convolution, false otherwise. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve | ( | AbstractImage & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| double | iThresholdMin, | |||
| double | iThresholdMax, | |||
| bool | ibAbsolute, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Convolve with a kernel on thresholded values.
| ioImage | image to be convolved. | |
| iKernel | the convolution kernel [WxH]. | |
| iThresholdMin | Threshold min to apply filter. | |
| iThresholdMax | Threshold max to apply filter. | |
| ibAbsolute | true to use absolute value of convolution, false otherwise. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve | ( | AbstractImage & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel1, | |||
| const Math::ConvolutionKerneld & | iKernel2, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Convolve with two separable kernels [Wx1] x [1xH]. Greatly improve performance compare to convolution with [WxH] filter. Algorithm descrition: Convolution with separative kernels
iBorder effects |
| ioImage | image to be convolved. | |
| iKernel1 | a convolution kernel [Wx1] or [1xH]. | |
| iKernel2 | a convolution kernel, if iKernel1 is [Wx1] must be [1xH], else [Wx1]. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | AbstractImage & | ioImage, | |
| double | iRadius, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and computed variance based of radius.
| ioImage | image to be blured. | |
| iRadius | size of squared Gaussian kernel. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | AbstractImage & | ioImage, | |
| double | iRadius, | |||
| double | iVariance, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and with the selected iVariance.
| ioImage | image to be blured. | |
| iRadius | size of squared Gaussian kernel. | |
| iVariance | variance of Gaussian curve. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | AbstractImage & | ioImage, | |
| uint32 | iWidth, | |||
| uint32 | iHeight, | |||
| double | iVariance, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Gaussian filter smooths the current image by convolving a Gaussian kernel(iWidth,iHeight) with the selected iVariance.
| ioImage | image to be blured. | |
| iWidth | width of Gaussian kernel. | |
| iHeight | height of Gaussian kernel. | |
| iVariance | variance of Gaussian curve. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyBoxBlur | ( | AbstractImage & | ioImage, | |
| uint32 | iWidth, | |||
| uint32 | iHeight, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Box blur filter, this is the blur filter with best performance with int64 kernel.
Implementation is based on this article:
| [1] | Fast Image Convolutions by Wojciech Jarosz SIGGRAPH 2001 |
| ioImage | image to blur. | |
| iWidth | kernel width. | |
| iHeight | kernel height. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplySelectiveBlur | ( | AbstractImage & | ioImage, | |
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Adaptive blur filter, this is a blur filter that protects edges. Based on Selective blur by Daniel Lacroix.
| ioImage | image to blur. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. | |
| iChannelMask | selected channels to be processed. Default is all. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyBilateral | ( | AbstractImage & | ioImage, | |
| double | iRadius, | |||
| double | iVarianceSpatial, | |||
| double | iVarianceRange, | |||
| EBorderFill | iBorder, | |||
| uint32 | iIteration, | |||
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Apply bilateral filter to an image by means of a nonlinear combination of nearby image values.
| [1] | Bilateral Filtering for Gray and Color Images by C. Tomasi and R. Manduchi |
| [2] | Fast Bilateral Filtering for the Display of High-Dynamic-Range Images by Frédo Durand and Julie Dorsey Laboratory for Computer Science, Massachusetts Institute of Technology |
| [3] | SEPARABLE BILATERAL FILTERING FOR FAST VIDEO PREPROCESSING by Tuan Q. Pham and Lucas J. van Vliet Quantitative Imaging Group, Department of Imaging Science and Technology Delft University of Technology |
| ioImage | image to be convolved. | |
| iRadius | size of squared Gaussian kernel, the higher the slower. | |
| iVarianceSpatial | variance of Gaussian spatial filter. | |
| iVarianceRange | variance of Gaussian range filter. | |
| iBorder | how to fill border. | |
| iIteration | number of iterations. Default is 1. | |
| iChannelMask | selected channels to be processed. Default is all channels. | |
| iNotifier | a notifier for progression, log and cancel. |
Implements eLynx::Image::IImageLocalProcessing.
| virtual bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::RemoveIsolated | ( | AbstractImage & | ioImage, | |
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | const [virtual] |
Implements eLynx::Image::IImageLocalProcessing.
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve3x3 | ( | ImageImpl< Pixel > & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| double | iThresholdMin = 0.0, |
|||
| double | iThresholdMax = 1.0, |
|||
| bool | ibAbsolute = false, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve5x5 | ( | ImageImpl< Pixel > & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| double | iThresholdMin = 0.0, |
|||
| double | iThresholdMax = 1.0, |
|||
| bool | ibAbsolute = false, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ConvolveWxH | ( | ImageImpl< Pixel > & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| double | iThresholdMin = 0.0, |
|||
| double | iThresholdMax = 1.0, |
|||
| bool | ibAbsolute = false, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve | ( | ImageImpl< Pixel > & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel, | |||
| double | iThresholdMin = 0.0, |
|||
| double | iThresholdMax = 1.0, |
|||
| bool | ibAbsolute = false, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::Convolve | ( | ImageImpl< Pixel > & | ioImage, | |
| const Math::ConvolutionKerneld & | iKernel1, | |||
| const Math::ConvolutionKerneld & | iKernel2, | |||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyBoxBlur | ( | ImageImpl< Pixel > & | ioImage, | |
| uint32 | iWidth, | |||
| uint32 | iHeight, | |||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplySelectiveBlur | ( | ImageImpl< Pixel > & | ioImage, | |
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | ImageImpl< Pixel > & | ioImage, | |
| double | iRadius = 1.5, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | ImageImpl< Pixel > & | ioImage, | |
| double | iRadius, | |||
| double | iVariance, | |||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyGaussian | ( | ImageImpl< Pixel > & | ioImage, | |
| uint32 | iWidth, | |||
| uint32 | iHeight, | |||
| double | iVariance, | |||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::ApplyBilateral | ( | ImageImpl< Pixel > & | ioImage, | |
| double | iRadius = 2.5, |
|||
| double | iSigmaSpatial = 1.0, |
|||
| double | iSigmaRange = 1.0, |
|||
| EBorderFill | iBorder = BF_Nearest, |
|||
| uint32 | iIteration = 1, |
|||
| uint32 | iChannelMask = CM_All, |
|||
| ProgressNotifier & | iNotifier = ProgressNotifier_NULL | |||
| ) | [static] |
| static bool eLynx::Image::ImageLocalProcessingImpl< Pixel >::RemoveIsolated | ( | ImageImpl< Pixel > & | ioImage, | |
| uint32 | iChannelMask, | |||
| ProgressNotifier & | iNotifier | |||
| ) | [static] |