Package net.sourceforge.jiu.filters
Class MeanFilter
java.lang.Object
net.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.ops.ImageToImageOperation
net.sourceforge.jiu.filters.AreaFilterOperation
net.sourceforge.jiu.filters.MeanFilter
Applies a mean filter that replaces each pixel by the mean of itself and its neighbors.
The number of neighbors can be defined by the setArea methods.
This filter only works with intensity-based image types.
More precisely, only
GrayIntegerImage
and
RGBIntegerImage
will work.
Usage example
PixelImage image = ...; // some GrayIntegerImage or RGBIntegerImage MeanFilter filter = new MeanFilter(); filter.setArea(5, 5); filter.setInputImage(image); filter.process(); PixelImage filteredImage = filter.getOutputImage();
- Since:
- 0.5.0
- Author:
- Marco Schmidt
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
computeSample
(int[] samples, int numSamples) Determine the resulting sample for an array with the source sample and zero or more of its neighbors.Methods inherited from class net.sourceforge.jiu.filters.AreaFilterOperation
checkAreaHeight, checkAreaWidth, getAreaHeight, getAreaWidth, process, setArea, setAreaHeight, setAreaWidth
Methods inherited from class net.sourceforge.jiu.ops.ImageToImageOperation
canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage
Methods inherited from class net.sourceforge.jiu.ops.Operation
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
-
Constructor Details
-
MeanFilter
public MeanFilter()
-
-
Method Details
-
computeSample
public int computeSample(int[] samples, int numSamples) Description copied from class:AreaFilterOperation
Determine the resulting sample for an array with the source sample and zero or more of its neighbors. This abstract method must be implemented by classes extending this operation. The array will holdnumSamples
samples, which will be stored starting at offset0
.Normally,
numSamples
is equal toAreaFilterOperation.getAreaWidth()
timesAreaFilterOperation.getAreaHeight()
. Near the border of the image you may get less samples. Example: the top left sample of an image has only three neighbors (east, south-east and south), so you will only get four samples (three neighbors and the sample itself).- Specified by:
computeSample
in classAreaFilterOperation
- Parameters:
samples
- the array holding the sample(s)numSamples
- number of samples in the array- Returns:
- sample to be written to the output image
-