eLynx SDK v3.0.1
C++ image processing API reference

eLynx::Image::IImageLocalProcessing Class Reference

#include <IImageLocalProcessing.h>

Inheritance diagram for eLynx::Image::IImageLocalProcessing:

eLynx::Image::ImageLocalProcessingImpl< Pixel >

List of all members.


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

Detailed Description

Interface defining local to point image processing functionnalities.
See Characteristics of Image Operations.

IImageLocalProcessing.png

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.


Constructor & Destructor Documentation

virtual eLynx::Image::IImageLocalProcessing::~IImageLocalProcessing (  )  [virtual]


Member Function Documentation

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.

Parameters:
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.
Returns:
Method running status.

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.

Parameters:
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.
Returns:
Method running status.

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

checker5x1-1x5-borders.png

iBorder effects
Using iBorder with BF_Cycle on a cyclic image, image remains cyclic after convolution.
Parameters:
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.
Returns:
Method running status.

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
Parameters:
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.
Returns:
Method running status.

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.

Parameters:
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.
Returns:
Method running status.

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.

Parameters:
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.
Returns:
Method running status.

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.

Parameters:
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.
Returns:
Method running status.

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.

Parameters:
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.
Returns:
Method running status.

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
Parameters:
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.
Returns:
Method running status.

Implemented in eLynx::Image::ImageLocalProcessingImpl< Pixel >.

virtual bool eLynx::Image::IImageLocalProcessing::RemoveIsolated ( AbstractImage ioImage,
uint32  iChannelMask,
ProgressNotifier iNotifier 
) const [pure virtual]


The documentation for this class was generated from the following file:

Generated on 14 Apr 2009 by doxygen 1.5.8