javax.media.jai.operator
Class UnsharpMaskDescriptor
java.lang.Object
|
+--javax.media.jai.OperationDescriptorImpl
|
+--javax.media.jai.operator.UnsharpMaskDescriptor
- All Implemented Interfaces:
- OperationDescriptor, RegistryElementDescriptor, Serializable
- public class UnsharpMaskDescriptor
- extends OperationDescriptorImpl
An OperationDescriptor describing the "UnsharpMask" operation.
Unsharp masking is derived from a photographic technique for
improving the sharpness of images. In its digital form it is implemented
using convolution to create a low-pass filtered version of a source image.
The low-pass image is then subtracted from the original image,
creating a high-pass image. The high pass image is then added back
to the original image, creating enhanced edge contrast. By adjusting
a scaling factor, the degree of high pass add-back can be controlled.
The operation is implemented algorithmically as follows. At each
original pixel location x,y:
result = original + (original - lowpass) * gainFactor
where
original = value at position x,y of source image
lowpass = result of convolution with lowpass filter
centered at pixel x,y
gain = controlling parameter for degree of sharpness
gain = 0 : no effect
gain > 0 : sharpening
-1 < gain < 0 : smoothing
In general gain factors should be restricted to a range of
[-1, 2], as higher magnitude values are likely to cause
overflows or underflows which must be clamped to the image
data type's range.
The default gain factor is set to 1,0F.
This operation is widely applied to scanned image enhancement.
The typical gain factor for scanned images takes values in the range
of [1/4, 2] (page 278 in Digital Image Processing by William
K. Pratt, 3rd).
Resource List
| Name | Value |
| GlobalName | UnsharpMask |
| LocalName | UnsharpMask |
| Vendor | com.sun.media.jai |
| Description | Performs unsharp masking to sharpen or smooth
an image. |
| DocURL | http://java.sun.com/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/operator/UnsharpMaskDescriptor.html |
| Version | 1.1 |
| arg0Desc | The convolution kernel. |
| arg1Desc | The gain factor. |
Parameter List
| Name | Class Type |
Default Value |
| kernel | javax.media.jai.KernelJAI |
3 X 3 average |
| gain | java.lang.Float |
1.0F |
- Since:
- JAI 1.1
- See Also:
OperationDescriptor,
KernelJAI,
ConvolveDescriptor, 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, validateSources |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
UnsharpMaskDescriptor
public UnsharpMaskDescriptor()
- Constructor.
getPropertyGenerators
public PropertyGenerator[] getPropertyGenerators()
- Returns an array of
PropertyGenerators implementing
property inheritance for the "UnsharpMask" operation.
- Overrides:
getPropertyGenerators in class OperationDescriptorImpl
- Returns:
- An array of property generators.
create
public static RenderedOp create(RenderedImage source0,
KernelJAI kernel,
Float gain,
RenderingHints hints)
- Performs UnsharpMask operation on the image.
Creates a ParameterBlockJAI from all
supplied arguments except hints and invokes
JAI.create(String,ParameterBlock,RenderingHints).
- Parameters:
source0 - RenderedImage source 0.kernel - The low-pass convolution kernel.
May be null.gain - The sharpening value.
May be null.hints - The RenderingHints to use.
May be null.- Returns:
- The
RenderedOp destination. - Throws:
IllegalArgumentException - if source0 is null.- See Also:
JAI,
ParameterBlockJAI,
RenderedOp