eLynx SDK v3.3.0
C++ image processing API reference
Public Member Functions

eLynx::Image::IImageLocalProcessing Class Reference

Interface defining local to point image processing functionnalities. More...

#include <IImageLocalProcessing.h>

Inheritance diagram for eLynx::Image::IImageLocalProcessing:
eLynx::Image::ImageLocalProcessingImpl< Pixel >

List of all members.

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.

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


Member Function Documentation

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:
ioImageimage to be convolved.
iRadiussize of squared Gaussian kernel, the higher the slower.
iVarianceSpatialvariance of Gaussian spatial filter.
iVarianceRangevariance of Gaussian range filter.
iBorderhow to fill border.
iIterationnumber of iterations. Default is 1.
iChannelMaskselected channels to be processed. Default is all channels.
iNotifiera 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:
ioImageimage to blur.
iWidthkernel width.
iHeightkernel height.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to be blured.
iRadiussize of squared Gaussian kernel.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to be blured.
iRadiussize of squared Gaussian kernel.
iVariancevariance of Gaussian curve.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to be blured.
iWidthwidth of Gaussian kernel.
iHeightheight of Gaussian kernel.
iVariancevariance of Gaussian curve.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to blur.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to be convolved.
iKernelthe convolution kernel [WxH].
iThresholdMinThreshold min to apply filter.
iThresholdMaxThreshold max to apply filter.
ibAbsolutetrue to use absolute value of convolution, false otherwise.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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:
ioImageimage to be convolved.
iKernel1a convolution kernel [Wx1] or [1xH].
iKernel2a convolution kernel, if iKernel1 is [Wx1] must be [1xH], else [Wx1].
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera 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,
bool  ibAbsolute,
EBorderFill  iBorder,
uint32  iIteration,
uint32  iChannelMask,
ProgressNotifier iNotifier 
) const [pure virtual]

Convolve with a kernel.

Parameters:
ioImageimage to be convolved.
iKernelthe convolution kernel [WxH].
ibAbsolutetrue to use absolute value of convolution, false otherwise.
iBorderhow to fill border.
iIterationnumber of iterations.
iChannelMaskselected channels to be processed. Default is all.
iNotifiera notifier for progression, log and cancel.
Returns:
Method running status.

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


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

Generated on Thu Dec 9 2010 by doxygen 1.7.2