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] |