public class FilterOperation extends OperationJAI
Filtering is an enhancement operation that alters the grid values on the basis of the neighborhood grid values. For this reason, filtering is considered to be a spatial or area operation. There are many different filters that can be applied to a grid coverage but the general concept of filtering is the same. A filter window or kernel is defined, its dimension being an odd number in the x and y dimensions. Each cell in this window contains a co-efficient or weighting factor representative of some mathematical relationship. A filtered grid coverage is generated by multiplying each coefficient in the window by the grid value in the original grid coverage corresponding to the windows current location and assigning the result to the central pixel location of the window in the filtered grid coverage. The window is moved throughout the grid coverage on pixel at a time. This window multiplication process is known as convolution. A grid coverage contains both low and high spatial information. High frequencies describe rapid change from one grid cell to another such as roads or other boundary conditions. Low frequencies describe gradual change over a large number of cells such as water bodies. High pass filters allow only high frequency information to be generated in the new grid coverage Grid coverages generated with high pass filters will show edge conditions. Low pass filters allow low frequency information to be generated in the new grid coverage. The grid coverage produced from a filtering operation will have the same dimension as the source grid coverage. To produce filtered values around the edges of the source grid coverage, edge rows and columns will be duplicated to fill a complete kernel.
OperationJAI.Parameters
operation, RENDERED_MODE
PRIMARY_SOURCE_INDEX, SOURCE_0
descriptor
Constructor and Description |
---|
FilterOperation(String name)
Constructs a new filter operation.
|
Modifier and Type | Method and Description |
---|---|
protected GridSampleDimension[] |
deriveSampleDimension(GridSampleDimension[][] bandLists,
OperationJAI.Parameters parameters)
Returns the target sample dimensions.
|
createRenderedImage, deriveCategory, deriveGridCoverage, deriveName, deriveRange, deriveUnit, doOperation, equals, extractSources, getJAI, getOperationDescriptor, getProperties, getQuantitative, handleJAIEXTParams, handleROINoDataInternal, handleROINoDataProperties, hashCode, prepareParameters, resampleToCommonGeometry
extractSources, getFactory
getDescription, getDocURL, getName, getNumSources, getParameters, getVendor, getVersion, toString
public FilterOperation(String name) throws OperationNotFoundException
name
- The JAI operation name.OperationNotFoundException
- if no JAI descriptor was found for the given name.protected GridSampleDimension[] deriveSampleDimension(GridSampleDimension[][] bandLists, OperationJAI.Parameters parameters)
deriveSampleDimension
in class OperationJAI
bandLists
- The set of sample dimensions for each source GridCoverage2D
s.parameters
- Parameters, rendering hints and coordinate reference system to use.null
if
unknown.OperationJAI.deriveCategory(org.geotools.coverage.Category[], org.geotools.coverage.processing.OperationJAI.Parameters)
,
OperationJAI.deriveUnit(javax.measure.Unit<?>[], org.geotools.coverage.processing.OperationJAI.Parameters)
Copyright © 1996–2023 Geotools. All rights reserved.