javax.media.jai.operator
Class DivideComplexDescriptor
java.lang.Object
|
+--javax.media.jai.OperationDescriptorImpl
|
+--javax.media.jai.operator.DivideComplexDescriptor
- All Implemented Interfaces:
- OperationDescriptor, RegistryElementDescriptor, Serializable
- public class DivideComplexDescriptor
- extends OperationDescriptorImpl
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.
Resource List
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.
- See Also:
OperationDescriptor
, Serialized Form
Methods inherited from class javax.media.jai.OperationDescriptorImpl |
arePropertiesSupported,
getDefaultSourceClass,
getDestClass,
getDestClass,
getInvalidRegion,
getName,
getNumParameters,
getNumSources,
getParamClasses,
getParamDefaults,
getParamDefaultValue,
getParameterListDescriptor,
getParamMaxValue,
getParamMinValue,
getParamNames,
getPropertyGenerators,
getRenderableDestClass,
getRenderableSourceClasses,
getResourceBundle,
getResources,
getSourceClasses,
getSourceClasses,
getSourceNames,
getSupportedModes,
isImmediate,
isModeSupported,
isRenderableSupported,
isRenderedSupported,
makeDefaultSourceClassList,
validateArguments,
validateArguments,
validateParameters,
validateParameters,
validateRenderableArguments,
validateRenderableSources,
validateSources |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
DivideComplexDescriptor
public DivideComplexDescriptor()
- Constructor.
validateSources
protected boolean validateSources(String modeName,
ParameterBlock args,
StringBuffer msg)
- Validates the input sources.
In addition to the standard checks performed by the
superclass method, this method checks that both sources have
an even number of bands.
- Overrides:
- validateSources in class OperationDescriptorImpl
- Tags copied from class: OperationDescriptorImpl
- Parameters:
modeName
- the operation mode nameargs
- a ParameterBlock
that has the sourcesmsg
- A string that may contain error messages.- Throws:
- IllegalArgumentException - if any of the input parameters are
null
. - See Also:
OperationDescriptorImpl.validateArguments(java.lang.String, java.awt.image.renderable.ParameterBlock, java.lang.StringBuffer)
getPropertyGenerators
public PropertyGenerator[] getPropertyGenerators(String modeName)
- Returns an array of
PropertyGenerators
implementing
property inheritance for the "DivideComplex" operation.
- Overrides:
- getPropertyGenerators in class OperationDescriptorImpl
- Returns:
- An array of property generators.