com.esri.arcgis.datasourcesraster
Interface IRasterConvolutionFilter

All Superinterfaces:
Serializable
All Known Implementing Classes:
RasterConvolutionFilter

public interface IRasterConvolutionFilter
extends Serializable

Provides access to members that control a raster kernel-based filter.

Description

IRasterConvolutionFilter provides access to members that allow setting up a convolution filter. PutCoefficients() and QueryCoefficients() sets and gets kernel coefficients, which are represented as a double array.
QueryCoefficients() expects the array to be allocated by caller, and it fills in the values.


Remarks

The IRasterConvlutionFilter interface is used to create a convolution filter, which can be used to apply on a raster to perform image filtering. To create a convolution filter, the size, values and the center of the kernel must be set.

Here is an example of low pass filter kernel

A 3x3 low pass filter kernel

Use SetSize, SetCenterPosition, and PutCoefficents to define a kernel.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

See Also:
IPixelOperation, IPixelFilterCollection, IPixelFilter

Method Summary
 void getCenterPosition(int[] atColumn, int[] atRow)
          Gets the center position of the kernel filter.
 double getGainFactor()
          The gain factor of the kernel filter.
 void getSize(int[] nColumns, int[] nRows)
          Gets the size of the kernel filter.
 boolean isNormalized()
          Indicates whether the filter is normalized.
 boolean isRecursive()
          Indicates whether the filter is recursive.
 void normalize()
          Normalizes the filter.
 void putCoefficients(double[][] coefList)
          Sets the element coefficients of the kernel filter.
 void queryCoefficients(double[][] coefList)
          Gets the element coefficients of the kernel filter.
 void scaleBy(double scaleFactor)
          Scales the filter coefficients.
 void setCenterPosition(int atColumn, int atRow)
          Sets the center position of the kernel filter.
 void setGainFactor(double gainFactor)
          The gain factor of the kernel filter.
 void setRecursive(boolean recursive)
          Indicates whether the filter is recursive.
 void setSize(int nColumns, int nRows)
          Sets the size of the kernel filter.
 

Method Detail

setSize

void setSize(int nColumns,
             int nRows)
             throws IOException,
                    AutomationException
Sets the size of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
nColumns - The nColumns (in)
nRows - The nRows (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSize

void getSize(int[] nColumns,
             int[] nRows)
             throws IOException,
                    AutomationException
Gets the size of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
nColumns - The nColumns (in/out: use single element array)
nRows - The nRows (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setCenterPosition

void setCenterPosition(int atColumn,
                       int atRow)
                       throws IOException,
                              AutomationException
Sets the center position of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
atColumn - The atColumn (in)
atRow - The atRow (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCenterPosition

void getCenterPosition(int[] atColumn,
                       int[] atRow)
                       throws IOException,
                              AutomationException
Gets the center position of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
atColumn - The atColumn (in/out: use single element array)
atRow - The atRow (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putCoefficients

void putCoefficients(double[][] coefList)
                     throws IOException,
                            AutomationException
Sets the element coefficients of the kernel filter.

Remarks

PutCoefficents takes a dimentional (1D) array (row * column of the kernel), then transforms automatically to a 2D array. The side of 2D array is defined by SetSize method.

size of 1D array = row * column of the kernel

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
coefList - The coefList (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryCoefficients

void queryCoefficients(double[][] coefList)
                       throws IOException,
                              AutomationException
Gets the element coefficients of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
coefList - The coefList (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setGainFactor

void setGainFactor(double gainFactor)
                   throws IOException,
                          AutomationException
The gain factor of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
gainFactor - The gainFactor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGainFactor

double getGainFactor()
                     throws IOException,
                            AutomationException
The gain factor of the kernel filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The gainFactor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRecursive

void setRecursive(boolean recursive)
                  throws IOException,
                         AutomationException
Indicates whether the filter is recursive.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
recursive - The recursive (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isRecursive

boolean isRecursive()
                    throws IOException,
                           AutomationException
Indicates whether the filter is recursive.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The recursive
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

normalize

void normalize()
               throws IOException,
                      AutomationException
Normalizes the filter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isNormalized

boolean isNormalized()
                     throws IOException,
                            AutomationException
Indicates whether the filter is normalized.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The normalized
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

scaleBy

void scaleBy(double scaleFactor)
             throws IOException,
                    AutomationException
Scales the filter coefficients.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
scaleFactor - The scaleFactor (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.