Provides access to members that control a pixel filter.
Description
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.
Members
Name | Description | |
---|---|---|
Filter | Filters a pixel block. | |
GetCenterPosition | Gets center position of the filter. | |
GetSize | Gets dimension of the filter. |
IPixelFilter.Filter Method
Filters a pixel block.
Public Sub Filter ( _
ByVal pBlock As IPixelBlock _
)
public void Filter (
IPixelBlock pBlock
);
IPixelFilter.GetCenterPosition Method
Gets center position of the filter.
Public Sub GetCenterPosition ( _
ByRef atColumn As Integer, _
ByRef atRow As Integer _
)
public void GetCenterPosition (
ref int atColumn,
ref int atRow
);
IPixelFilter.GetSize Method
Gets dimension of the filter.
Public Sub GetSize ( _
ByRef Columns As Integer, _
ByRef Rows As Integer _
)
public void GetSize (
ref int Columns,
ref int Rows
);
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. |
Remarks
IPixleFilter filters the values of a raster using a pixelfilter.