|
|||||||||
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.DivideComplexDescriptor
An OperationDescriptor
describing the "DivideComplex"
operation.
The "DivideComplex" operation divides two images representing complex data. The source images must each contain an even number of bands with the even-indexed bands (0, 2, ...) representing the real and the odd-indexed bands (1, 3, ...) the imaginary parts of each pixel. The destination image similarly contains an even number of bands with the same interpretation and with contents defined by:
a = src0[x][y][2*k]; b = src0[x][y][2*k+1]; c = src1[x][y][2*k]; d = src1[x][y][2*k+1]; dst[x][y][2*k] = (a*c + b*d)/(c^2 + d^2) dst[x][y][2*k+1] = (b*c - a*d)/(c^2 + d^2)where 0 <= k < numBands/2. By default, the number of bands of the destination image is the the minimum of the number of bands of the two sources, and the data type is the biggest data type of the sources. However, the number of destination bands can be specified to be M = 2*L through an
ImageLayout
hint, when
one source image has 2 bands and the other has N = 2*K bands
where K > 1, with a natural restriction 1 <= L <= K.
In such a special case,
if the first source has 2 bands its single complex component
will be divided by each of the first L complex components of the second
source; if the second source has 2 bands its single complex component will
divide each of the L complex components of the first source.
If the result of the operation underflows/overflows the minimum/maximum value supported by the destination data type, then it will be clamped to the minimum/maximum value respectively.
"DivideComplex" defines a PropertyGenerator that sets the "COMPLEX"
property of the image to java.lang.Boolean.TRUE
, which may
be retrieved by calling the getProperty()
method with
"COMPLEX" as the property name.
Name | Value |
---|---|
GlobalName | DivideComplex |
LocalName | DivideComplex |
Vendor | com.sun.media.jai |
Description | Compute the complex quotient of two images. |
DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/DivideComplexDescriptor.html |
Version | 1.0 |
No parameters are needed for the "DivideComplex" operation.
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 | |
DivideComplexDescriptor()
Constructor. |
Method Summary | |
static RenderedOp |
create(RenderedImage source0,
RenderedImage source1,
RenderingHints hints)
Compute the complex quotient of two images. |
static RenderableOp |
createRenderable(RenderableImage source0,
RenderableImage source1,
RenderingHints hints)
Compute the complex quotient of two images. |
PropertyGenerator[] |
getPropertyGenerators(String modeName)
Returns an array of PropertyGenerators implementing
property inheritance for the "DivideComplex" operation. |
protected boolean |
validateSources(String modeName,
ParameterBlock args,
StringBuffer msg)
Validates the input sources. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DivideComplexDescriptor()
Method Detail |
protected boolean validateSources(String modeName, ParameterBlock args, StringBuffer msg)
In addition to the standard checks performed by the superclass method, this method checks that both sources have an even number of bands.
validateSources
in class OperationDescriptorImpl
javax.media.jai.OperationDescriptorImpl
modeName
- the operation mode nameargs
- a ParameterBlock
that has the sourcesmsg
- A string that may contain error messages.IllegalArgumentException
- if any of the input parameters are null
.OperationDescriptorImpl.validateArguments(java.lang.String, java.awt.image.renderable.ParameterBlock, java.lang.StringBuffer)
public PropertyGenerator[] getPropertyGenerators(String modeName)
PropertyGenerators
implementing
property inheritance for the "DivideComplex" operation.getPropertyGenerators
in class OperationDescriptorImpl
public static RenderedOp create(RenderedImage source0, RenderedImage source1, RenderingHints hints)
Creates a ParameterBlockJAI
from all
supplied arguments except hints
and invokes
JAI.create(String,ParameterBlock,RenderingHints)
.
source0
- RenderedImage
source 0.source1
- RenderedImage
source 1.hints
- The RenderingHints
to use.
May be null
.RenderedOp
destination.IllegalArgumentException
- if source0
is null
.IllegalArgumentException
- if source1
is null
.JAI
,
ParameterBlockJAI
,
RenderedOp
public static RenderableOp createRenderable(RenderableImage source0, RenderableImage source1, RenderingHints hints)
Creates a ParameterBlockJAI
from all
supplied arguments except hints
and invokes
JAI.createRenderable(String,ParameterBlock,RenderingHints)
.
source0
- RenderableImage
source 0.source1
- RenderableImage
source 1.hints
- The RenderingHints
to use.
May be null
.RenderableOp
destination.IllegalArgumentException
- if source0
is null
.IllegalArgumentException
- if source1
is null
.JAI
,
ParameterBlockJAI
,
RenderableOp
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |