Class BandCombineOp
- All Implemented Interfaces:
RasterOp
Raster, using a specified matrix.
The width of the matrix must be equal to the number of bands in the
source Raster, optionally plus one. If there is one more
column in the matrix than the number of bands, there is an implied 1 at the
end of the vector of band samples representing a pixel. The height
of the matrix must be equal to the number of bands in the destination.
For example, a 3-banded Raster might have the following
transformation applied to each pixel in order to invert the second band of
the Raster.
[ 1.0 0.0 0.0 0.0 ] [ b1 ]
[ 0.0 -1.0 0.0 255.0 ] x [ b2 ]
[ 0.0 0.0 1.0 0.0 ] [ b3 ]
[ 1 ]
Note that the source and destination can be the same object.
-
Constructor Summary
ConstructorsConstructorDescriptionBandCombineOp(float[][] matrix, RenderingHints hints) Constructs aBandCombineOpwith the specified matrix. -
Method Summary
Modifier and TypeMethodDescriptionCreates a zeroed destinationRasterwith the correct size and number of bands.filter(Raster src, WritableRaster dst) Transforms theRasterusing the matrix specified in the constructor.final Rectangle2DgetBounds2D(Raster src) Returns the bounding box of the transformed destination.final float[][]Returns a copy of the linear combination matrix.final Point2DgetPoint2D(Point2D srcPt, Point2D dstPt) Returns the location of the corresponding destination point given a point in the sourceRaster.final RenderingHintsReturns the rendering hints for this operation.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Constructor Details
-
BandCombineOp
Constructs aBandCombineOpwith the specified matrix. The width of the matrix must be equal to the number of bands in the sourceRaster, optionally plus one. If there is one more column in the matrix than the number of bands, there is an implied 1 at the end of the vector of band samples representing a pixel. The height of the matrix must be equal to the number of bands in the destination.The first subscript is the row index and the second is the column index. This operation uses none of the currently defined rendering hints; the
RenderingHintsargument can be null.- Parameters:
matrix- The matrix to use for the band combine operation.hints- TheRenderingHintsobject for this operation. Not currently used so it can be null.
-
-
Method Details
-
getMatrix
public final float[][] getMatrix()Returns a copy of the linear combination matrix.- Returns:
- The matrix associated with this band combine operation.
-
filter
Transforms theRasterusing the matrix specified in the constructor. AnIllegalArgumentExceptionmay be thrown if the number of bands in the source or destination is incompatible with the matrix. See the class comments for more details.If the destination is null, it will be created with a number of bands equalling the number of rows in the matrix. No exception is thrown if the operation causes a data overflow.
- Specified by:
filterin interfaceRasterOp- Parameters:
src- TheRasterto be filtered.dst- TheRasterin which to store the results of the filter operation.- Returns:
- The filtered
Raster. - Throws:
IllegalArgumentException- If the number of bands in the source or destination is incompatible with the matrix.
-
getBounds2D
Returns the bounding box of the transformed destination. Since this is not a geometric operation, the bounding box is the same for the source and destination. AnIllegalArgumentExceptionmay be thrown if the number of bands in the source is incompatible with the matrix. See the class comments for more details.- Specified by:
getBounds2Din interfaceRasterOp- Parameters:
src- TheRasterto be filtered.- Returns:
- The
Rectangle2Drepresenting the destination image's bounding box. - Throws:
IllegalArgumentException- If the number of bands in the source is incompatible with the matrix.
-
createCompatibleDestRaster
Creates a zeroed destinationRasterwith the correct size and number of bands. AnIllegalArgumentExceptionmay be thrown if the number of bands in the source is incompatible with the matrix. See the class comments for more details.- Specified by:
createCompatibleDestRasterin interfaceRasterOp- Parameters:
src- TheRasterto be filtered.- Returns:
- The zeroed destination
Raster.
-
getPoint2D
Returns the location of the corresponding destination point given a point in the sourceRaster. IfdstPtis specified, it is used to hold the return value. Since this is not a geometric operation, the point returned is the same as the specifiedsrcPt.- Specified by:
getPoint2Din interfaceRasterOp- Parameters:
srcPt- ThePoint2Dthat represents the point in the sourceRasterdstPt- ThePoint2Din which to store the result.- Returns:
- The
Point2Din the destination image that corresponds to the specified point in the source image.
-
getRenderingHints
Returns the rendering hints for this operation.- Specified by:
getRenderingHintsin interfaceRasterOp- Returns:
- The
RenderingHintsobject associated with this operation. Returns null if no hints have been set.
-