eLynx SDK
v3.0.1 C++ image processing API reference |
#include <IImageLocalProcessing.h>
Public Member Functions | |
virtual | ~IImageLocalProcessing () |
virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel, bool ibAbsolute, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
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 |
virtual bool | Convolve (AbstractImage &ioImage, const Math::ConvolutionKerneld &iKernel1, const Math::ConvolutionKerneld &iKernel2, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplyBoxBlur (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplySelectiveBlur (AbstractImage &ioImage, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplyGaussian (AbstractImage &ioImage, uint32 iWidth, uint32 iHeight, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, double iVariance, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplyGaussian (AbstractImage &ioImage, double iRadius, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | ApplyBilateral (AbstractImage &ioImage, double iRadius, double iVarianceSpatial, double iVarianceRange, EBorderFill iBorder, uint32 iIteration, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
virtual bool | RemoveIsolated (AbstractImage &ioImage, uint32 iChannelMask, ProgressNotifier &iNotifier) const =0 |
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 ...
Definition at line 51 of file IImageLocalProcessing.h.
virtual eLynx::Image::IImageLocalProcessing::~IImageLocalProcessing | ( | ) | [virtual] |
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 >.
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 |
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::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::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::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::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, | |
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::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::RemoveIsolated | ( | AbstractImage & | ioImage, | |
uint32 | iChannelMask, | |||
ProgressNotifier & | iNotifier | |||
) | const [pure virtual] |
Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.