rwlogo

Rogue Wave Views
Foundation Package API Reference Guide

Product Documentation:

Rogue Wave Views
Documentation Home

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
List of all members | Public Member Functions
IlvConvolutionFilter Class Reference

Convolution filter. More...

#include <ilviews/bitmaps/filters/convolve.h>

Inheritance diagram for IlvConvolutionFilter:
IlvBitmapFilter

Public Member Functions

 IlvConvolutionFilter (IlvBitmapDataKernel *kernel=0, IlFloat divisor=0, IlFloat bias=0.0)
 Constructor. More...
 
 ~IlvConvolutionFilter ()
 Destructor. More...
 
IlvBitmapDataapply (IlUInt count=0, const IlvBitmapData **inputs=0)
 Applies the convolution to the given image.
 
IlFloat getBias () const
 Returns the bias. More...
 
IlFloat getDivisor () const
 Returns the divisor. More...
 
IlvConvolutionFilter::EdgeMode getEdgeMode () const
 Returns the edge mode. More...
 
IlvBitmapDataKernelgetKernel () const
 Returns the kernel. More...
 
void setBias (IlFloat bias)
 Sets the bias. More...
 
void setDivisor (IlFloat divisor)
 Sets the divisor. More...
 
void setEdgeMode (IlvConvolutionFilter::EdgeMode mode)
 Sets the edge mode. More...
 
void setKernel (IlvBitmapDataKernel *kernel)
 Sets the kernel. More...
 
- Public Member Functions inherited from IlvBitmapFilter
 IlvBitmapFilter ()
 Constructor. More...
 
virtual ~IlvBitmapFilter ()
 Destructor. More...
 
IlvBitmapDataapplyUnary (const IlvBitmapData *data)
 Convenience method for unary filters. More...
 
virtual const char * getClassName () const
 Returns the class name of the filter. More...
 
IlUInt getHeight () const
 Returns the height of the filter effect region. More...
 
const char *const * getInputs (IlUInt &count) const
 Returns the name of the input bitmap data. More...
 
const char * getName () const
 Returns the name of the filter. More...
 
IlUInt getRefCount () const
 Returns the reference count for this instance.
 
const char * getResult () const
 Returns the name of the result bitmap data. More...
 
IlUInt getWidth () const
 Returns the width of the filter effect region. More...
 
IlInt getX () const
 Returns the left coordinate of the filter effect region. More...
 
IlInt getY () const
 Returns the top coordinate of the filter effect region. More...
 
void lock ()
 Locks the current instance.
 
void setHeight (IlUInt height)
 Sets the height of the filter effect region. More...
 
void setInputs (IlUInt count, const char *const *name)
 Sets the input names of the filter. More...
 
void setName (const char *id)
 Sets the name of the filter. More...
 
void setResult (const char *name)
 Sets the result name of the filter. More...
 
void setWidth (IlUInt width)
 Sets the width of the filter effect region. More...
 
void setX (IlInt x)
 Sets the left coordinate of the filter effect region. More...
 
void setY (IlInt y)
 Sets the top coordinate of the filter effect region. More...
 
void unLock ()
 Unlocks the current instance. When the reference count is 0, the instance is deleted.
 

Additional Inherited Members

- Static Public Member Functions inherited from IlvBitmapFilter
static IlvBitmapFilterCreate (const char *classname, IlBoolean forceLoad=IlTrue)
 This static method creates an instance of a bitmap filter of given classname. If the filter class is not registered and forceLoad is IlTrue, an attempt to load a dynamic module for this filter is made. More...
 
static const char ** GetRegisteredFilters (IlUInt &num)
 This static method returns an array of registered filter class names. More...
 

Detailed Description

Convolution filter.

Library: ilvbmpflt

This bitmap filter lets you apply a matrix convolution to an image. A convolution combines pixels in the input image with neighboring pixels to produce a resulting image. A wide variety of imaging operations can be achieved through convolutions, including blurring, edge detection, sharpening, embossing, and beveling. A matrix convolution is based on an n-by-m matrix (the convolution kernel) that describes how a given pixel value in the input image is combined width its neighboring pixel values to produce a resulting pixel value.

To illustrate, suppose you have an input image that is 5 by 5 pixels, whose color values are as follows:

  0   20   40  235  235
100  120  140  235  235
200  220  240  235  255
225  225  255  255  255
225  225  255  255  255

and you define a 3-by-3 convolution kernel as follows:

 1  2  3
 4  5  6
 7  8  9

Let's focus on the pixel at the second row and second column of the source image (source pixel value is 120). The resulting pixel value will be:

(1 * 0 + 2 * 20 + 3 * 40 + 
4 * 100 + 5 * 120 + 6 * 140 +
7 * 200 + 8 * 220 + 9 * 240) / (1 + 2 + 3 +4 + 5 + 6 + 7 + 8 + 9)

By default the divisor is the sum of the kernel coefficients but can be specified. A bias value can be added after computing the value. An edge mode can be specified for border values. The edge mode can be one of:

See Also
IlvRGBBitmapData, IlvBitmapFilter, IlvBitmapKernel

Constructor & Destructor Documentation

IlvConvolutionFilter::IlvConvolutionFilter ( IlvBitmapDataKernel kernel = 0,
IlFloat  divisor = 0,
IlFloat  bias = 0.0 
)

Constructor.

Initializes a new instance of the class IlvConvolutionFilter. The default operator is a 3x3 identity kernel.

IlvConvolutionFilter::~IlvConvolutionFilter ( )

Destructor.

The destructor releases all the memory used by the instance.

Member Function Documentation

IlFloat IlvConvolutionFilter::getBias ( ) const

Returns the bias.

Returns
The bias.
IlFloat IlvConvolutionFilter::getDivisor ( ) const

Returns the divisor.

Returns
The divisor.
IlvConvolutionFilter::EdgeMode IlvConvolutionFilter::getEdgeMode ( ) const

Returns the edge mode.

Returns
The edge mode.
IlvBitmapDataKernel* IlvConvolutionFilter::getKernel ( ) const

Returns the kernel.

Returns
The kernel.
void IlvConvolutionFilter::setBias ( IlFloat  bias)

Sets the bias.

Parameters
biasThe new bias.
void IlvConvolutionFilter::setDivisor ( IlFloat  divisor)

Sets the divisor.

If the divisor is 0 then the sum of the kernel coefficients is used. If this coefficient is 0 then the divisor is 1.0.

Parameters
divisorThe new divisor.
void IlvConvolutionFilter::setEdgeMode ( IlvConvolutionFilter::EdgeMode  mode)

Sets the edge mode.

Parameters
modeThe new edge mode.
void IlvConvolutionFilter::setKernel ( IlvBitmapDataKernel kernel)

Sets the kernel.

Parameters
kernelThe new kernel.

© Copyright 2015, Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave is a registered trademark of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.