eLynx SDK
v3.3.0 C++ image processing API reference |
Interface defining local to point image processing functionnalities. More...
#include <IImageLocalProcessing.h>
Public Member Functions | |
virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel, bool ibAbsolute, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
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 =0 |
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 =0 |
Convolve with two separable kernels [Wx1] x [1xH]. | |
virtual bool | ApplyBoxBlur (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
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 =0 |
Adaptive blur filter, this is a blur filter that protects edges. | |
virtual bool | ApplyGaussian (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
Gaussian filter smooths the current image by convolving a Gaussian kernel(iWidth,iHeight) with the selected iVariance. | |
virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and with the selected iVariance. | |
virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
Gaussian filter smooths the current image by convolving a Gaussian kernel sized by iRadius and computed variance based of radius. | |
virtual bool | ApplyBilateral (AbstractImage &ioImage, double iRadius, double iVarianceSpatial, double iVarianceRange, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
Apply bilateral filter to an image by means of a nonlinear combination of nearby image values. |
Interface defining local to point image processing functionnalities.
See Characteristics of Image Operations.
Convolution is a image processing technique that changes the intensities of a pixel to reflect the intensities of the surrounding pixels. Using convolution, you can get popular image effects like blur, sharpen, edge detection—effects, emboss ...
virtual bool eLynx::Image::IImageLocalProcessing::ApplyBilateral | ( | AbstractImage & | ioImage, |
double | iRadius, | ||
double | iVarianceSpatial, | ||
double | iVarianceRange, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::ApplyBoxBlur | ( | AbstractImage & | ioImage, |
uint32 | iWidth, | ||
uint32 | iHeight, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::ApplyGaussian | ( | AbstractImage & | ioImage, |
double | iRadius, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::ApplyGaussian | ( | AbstractImage & | ioImage, |
double | iRadius, | ||
double | iVariance, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::ApplyGaussian | ( | AbstractImage & | ioImage, |
uint32 | iWidth, | ||
uint32 | iHeight, | ||
double | iVariance, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::ApplySelectiveBlur | ( | AbstractImage & | ioImage, |
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::Convolve | ( | AbstractImage & | ioImage, |
const Math::ConvolutionKerneld & | iKernel, | ||
double | iThresholdMin, | ||
double | iThresholdMax, | ||
bool | ibAbsolute, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::Convolve | ( | AbstractImage & | ioImage, |
const Math::ConvolutionKerneld & | iKernel1, | ||
const Math::ConvolutionKerneld & | iKernel2, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.
virtual bool eLynx::Image::IImageLocalProcessing::Convolve | ( | AbstractImage & | ioImage, |
const Math::ConvolutionKerneld & | iKernel, | ||
bool | ibAbsolute, | ||
EBorderFill | iBorder, | ||
uint32 | iIteration, | ||
uint32 | iChannelMask, | ||
ProgressNotifier & | iNotifier | ||
) | const [pure 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. |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.