|
eLynx SDK
v3.3.0 C++ image processing API reference |
Implementation of local to point image processing interface. More...
#include <ImageLocalProcessingImpl.h>
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 |
| Convolve with a kernel. | |
| virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel, double iThresholdMin, double iThresholdMax, bool ibAbsolute, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Convolve with a kernel on thresholded values. | |
| virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel1, const Math::ConvolutionKerneld &iKernel2, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Convolve with two separable kernels [Wx1] x [1xH]. | |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and computed variance based of radius. | |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and with the selected iVariance. | |
| virtual bool | ApplyGaussian (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Gaussian filter smooths the current image by convolving a Gaussian kernel(iWidth,iHeight) with the selected iVariance. | |
| virtual bool | ApplyBoxBlur (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Box blur filter, this is the blur filter with best performance with int64 kernel. | |
| virtual bool | ApplySelectiveBlur (AbstractImage &ioImage, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Adaptive blur filter, this is a blur filter that protects edges. | |
| virtual bool | ApplyBilateral (AbstractImage &ioImage, double iRadius, double iSigmaSpatial, double iSigmaRange, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const |
| Apply bilateral filter to an image by means of a nonlinear combination of nearby image values. | |
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) |
Implementation of local to point image processing interface.
| 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 >::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 >::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, |
| 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, |
| 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 >::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 >::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 & | 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 & | 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 |
Using iBorder with BF_Cycle on a cyclic image, image remains cyclic after convolution.
| 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.