This document is archived and information here might be outdated.  Recommended version.

IPixelFilter Interface (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > DataSourcesRaster > ESRI.ArcGIS.DataSourcesRaster > Interfaces > IP > IPixelFilter Interface
ArcGIS Developer Help

IPixelFilter Interface

Provides access to members that control a pixel filter.

Product Availability

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


IPixelFilter defines a simple pixel block filtering operation, which filters (changes) pixel values in place, and does not change pixel type. All rasters support IPixelOperation, which allows getting and setting of a pixel filter on a raster. Once set, the pixel filter will be applied, on IRaster::Read(), to the pixel block after it's read and right before it's returned.

Many local operations, where the output pixel value only depends on the current pixel, and focal operations, where pixels within a small neighborhood are involved to generate an output value, can be modeled as pixel filters. Remapping pixel values, applying a log() function, and etc are examples of local pixel filters. Calculating slope and aspect, image enhancement, and etc are examples of focal pixel filters.

ArcGIS provides many predefined pixel filters, including Lookup Table filter (LutFilter), Remap filter (RemapFilter), Convolution filter (RasterConvolutionFilter), Pansharpening filter (PansharpeningFilter), and etc.

IPixelFilter is designed for writing custom pixel filters. A custom pixel filter will implement IPixelFilter, and provide the size, IPixelFilter::GetSize(), and the center, IPixelFilter::GetCenterPosition(), of the filter moving window (neighborhood). The actual filtering is done inside IPixelFilter::Filter() where a pixel block passes in input pixel data, and carries out output pixel values. IPixelFilter::Filter() is responsible for setting both pixel values, and NoData bit mask. Raster is responsible for applying a custom pixel filter when a pixel block is read. Raster will read extra rows and columns on the borders, if necessary, pass the pixel block into the pixel filter, clip extra rows and columns, and finally set NoData values according to NoData bit mask.


Name Description
Method Filter Filters a pixel block.
Method GetCenterPosition Gets center position of the filter.
Method GetSize Gets dimension of the filter.

Classes that implement IPixelFilter

Classes Description
BackgroundFilter A raster background filter.
ClipFilter A class for clipping filter.
ColormapFilter A raster colormap filter.
FocalMeanFilter A class for focal mean filter.
FocalStatisticsFilter A class for focal statistics filter.
HistogramSpecification A class for histogram specification.
LutFilter A raster LookUp Table filter.
MultibandFilter A class for multiband filter.
NoDataFilter A class for NoData conversion filter.
PansharpeningFilter A class for pansharpening filter.
PixelFilterCollection A raster filter collection.
RasterConvolutionFilter A raster kernel-based filter.
RemapFilter A class for remap filter.
SpeckleFilter A class for speckle filter.


IPixleFilter filters the values of a raster using a pixelfilter.

See Also

IPixelFilterCollection Interface | IPixelOperation Interface