|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.media.jai.OperationDescriptorImpl | +--javax.media.jai.operator.BoxFilterDescriptor
An OperationDescriptor
describing the "BoxFilter" operation.
The "BoxFilter" operation determines the intensity of a pixel in an image by averaging the source pixels within a rectangular area around the pixel. This is a special case of the convolution operation, in which each source pixel contributes the same weight to the destination pixel. The pixel values of the destination image are defined by the pseudocode:
int count = width * height; // # of pixels in the box for (int b = 0; b < numBands; b++) { int total = 0; for (int j = -yKey; j < -yKey + height; j++) { for (int i = -xKey; i < -xKey + width; i++) { total += src[x+i][y+j][b]; } } dst[x][y][b] = (total + count/2) / count; // round }
Convolution, like any neighborhood operation, leaves a band of pixels around the edges undefined. For example, for a 3x3 kernel only four kernel elements and four source pixels contribute to the convolution pixel at the corners of the source image. Pixels that do not allow the full kernel to be applied to the source are not included in the destination image. A "Border" operation may be used to add an appropriate border to the source image in order to avoid shrinkage of the image boundaries.
The kernel may not be bigger in any dimension than the image data.
Name | Value |
---|---|
GlobalName | BoxFilter |
LocalName | BoxFilter |
Vendor | com.sun.media.jai |
Description | Performs special case convolution where each source pixel contributes equally to the intensity of the destination pixel. |
DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/BoxFilterDescriptor.html |
Version | 1.0 |
arg0Desc | The width of the box. |
arg1Desc | The height of the box. |
arg2Desc | The X position of the key element. |
arg3Desc | The Y position of the key element. |
Name | Class Type | Default Value |
---|---|---|
width | java.lang.Integer | 3 |
height | java.lang.Integer | width |
xKey | java.lang.Integer | width/2 |
yKey | java.lang.Integer | height/2 |
OperationDescriptor
, Serialized FormFields inherited from class javax.media.jai.OperationDescriptorImpl |
resources, sourceNames, supportedModes |
Fields inherited from interface javax.media.jai.OperationDescriptor |
NO_PARAMETER_DEFAULT |
Constructor Summary | |
BoxFilterDescriptor()
Constructor. |
Method Summary | |
static RenderedOp |
create(RenderedImage source0,
Integer width,
Integer height,
Integer xKey,
Integer yKey,
RenderingHints hints)
Performs special case convolution where each source pixel contributes equally to the intensity of the destination pixel. |
Number |
getParamMinValue(int index)
Returns the minimum legal value of a specified numeric parameter for this operation. |
PropertyGenerator[] |
getPropertyGenerators()
Returns an array of PropertyGenerators implementing
property inheritance for the "BoxFilter" operation. |
protected boolean |
validateParameters(ParameterBlock args,
StringBuffer msg)
Returns true if this operation is capable of handling
the given input parameters. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public BoxFilterDescriptor()
Method Detail |
public Number getParamMinValue(int index)
getParamMinValue
in class OperationDescriptorImpl
javax.media.jai.OperationDescriptorImpl
index
- The index of the parameter to be queried.Number
representing the minimum legal value,
or null
if the specified parameter is not
numeric.IllegalArgumentException
- if this operation has no parameters.ArrayIndexOutOfBoundsException
- if there is no parameter
corresponding to the specified index
.ParameterListDescriptor.getParamValueRange(java.lang.String)
,
ParameterListDescriptor.getEnumeratedParameterValues(java.lang.String)
,
ParameterListDescriptor.isParameterValueValid(java.lang.String, java.lang.Object)
protected boolean validateParameters(ParameterBlock args, StringBuffer msg)
OperationDescriptorImpl
true
if this operation is capable of handling
the given input parameters. The default implementation validates the
number of parameters, the class type of each parameter, and null
parameters. For those non-null numeric parameters, it also checks to
see if the parameter value is within the minimum and maximum range.
Subclasses should override this implementation if their requirements
for the parameter objects are different from the default.
JAI allows unspecified tailing parameters if these parameters
have default values. This method automatically sets these unspecified
parameters to their default values. However, if a parameter, which
has a default value, is followed by one or more parameters that
have no default values, this parameter must be specified in the
ParameterBlock
; else this method returns
false
.
Note that DeferredData
parameters will not be
recognized as valid unless the parameter is defined to have class
DeferredData.class
.
validateParameters
in class OperationDescriptorImpl
javax.media.jai.OperationDescriptorImpl
IllegalArgumentException
- if args
is null
.IllegalArgumentException
- if msg
is null
and the validation fails.OperationDescriptorImpl.validateParameters(java.lang.String, java.awt.image.renderable.ParameterBlock, java.lang.StringBuffer)
public PropertyGenerator[] getPropertyGenerators()
PropertyGenerators
implementing
property inheritance for the "BoxFilter" operation.getPropertyGenerators
in class OperationDescriptorImpl
public static RenderedOp create(RenderedImage source0, Integer width, Integer height, Integer xKey, Integer yKey, RenderingHints hints)
Creates a ParameterBlockJAI
from all
supplied arguments except hints
and invokes
JAI.create(String,ParameterBlock,RenderingHints)
.
source0
- RenderedImage
source 0.width
- The width of the box.
May be null
.height
- The height of the box.
May be null
.xKey
- The X position of the key element.
May be null
.yKey
- The Y position of the key element.
May be null
.hints
- The RenderingHints
to use.
May be null
.RenderedOp
destination.IllegalArgumentException
- if source0
is null
.JAI
,
ParameterBlockJAI
,
RenderedOp
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |