| javax.media.jai.OpImage javax.media.jai.AreaOpImage com.sun.media.jai.mlib.MlibConvolveOpImage
MlibConvolveOpImage | final class MlibConvolveOpImage extends AreaOpImage (Code) | | An OpImage class to perform convolution on a source image.
This class implements a convolution operation. Convolution is a
spatial operation that computes each output sample by multiplying
elements of a kernel with the samples surrounding a particular
source sample.
For each destination sample, the kernel is rotated 180 degrees
and its "key element" is placed over the source pixel corresponding
with the destination pixel. The kernel elements are multiplied
with the source pixels under them, and the resulting products are
summed together to produce the destination sample value.
Example code for the convolution operation on a single sample
dst[x][y] is as follows, assuming the kernel is of size M rows x N
columns and has already been rotated through 180 degrees. The
kernel's key element is located at position (xKey, yKey):
dst[x][y] = 0;
for (int i = -xKey; i < M - xKey; i++) {
for (int j = -yKey; j < N - yKey; j++) {
dst[x][y] += src[x + i][y + j] * kernel[xKey + i][yKey + j];
}
}
Convolution, or any neighborhood operation, leaves a band of
pixels around the edges undefined, i.e., for a 3x3 kernel, only
four kernel elements and four source pixels contribute to the
destination pixel located at (0,0). Such pixels are not includined
in the destination image, unless a non-null BorderExtender is provided.
The Kernel cannot be bigger in any dimension than the image data.
See Also: KernelJAI |
Method Summary | |
protected void | computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect) Performs convolution on a specified rectangle. |
doublekData | double doublekData(Code) | | |
kernel | protected KernelJAI kernel(Code) | | The kernel with which to do the convolve operation.
|
MlibConvolveOpImage | public MlibConvolveOpImage(RenderedImage source, BorderExtender extender, Map config, ImageLayout layout, KernelJAI kernel)(Code) | | Creates a MlibConvolveOpImage given the image source and
pre-rotated convolution kernel. The image dimensions are
derived from the source image. The tile grid layout,
SampleModel, and ColorModel may optionally be specified by an
ImageLayout object.
Parameters: source - a RenderedImage. Parameters: extender - a BorderExtender, or null.or null. If null, a default cache will be used. Parameters: layout - an ImageLayout optionally containing the tile grid layout,SampleModel, and ColorModel, or null. Parameters: kernel - the pre-rotated convolution KernelJAI. |
computeRect | protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect)(Code) | | Performs convolution on a specified rectangle. The sources are
cobbled.
Parameters: sources - an array of source Rasters, guaranteed to provide allnecessary source data for computing the output. Parameters: dest - a WritableRaster tile containing the area to be computed. Parameters: destRect - the rectangle within dest to be processed. |
Methods inherited from javax.media.jai.OpImage | protected void addTileToCache(int tileX, int tileY, Raster tile)(Code)(Java Doc) public void cancelTiles(TileRequest request, Point[] tileIndices)(Code)(Java Doc) protected void computeRect(Raster[] sources, WritableRaster dest, Rectangle destRect)(Code)(Java Doc) protected void computeRect(PlanarImage[] sources, WritableRaster dest, Rectangle destRect)(Code)(Java Doc) public Raster computeTile(int tileX, int tileY)(Code)(Java Doc) public boolean computesUniqueTiles()(Code)(Java Doc) final protected WritableRaster createTile(int tileX, int tileY)(Code)(Java Doc) public synchronized void dispose()(Code)(Java Doc) public static int getExpandedNumBands(SampleModel sampleModel, ColorModel colorModel)(Code)(Java Doc) protected synchronized RasterFormatTag[] getFormatTags()(Code)(Java Doc) public int getOperationComputeType()(Code)(Java Doc) public Raster getTile(int tileX, int tileY)(Code)(Java Doc) public TileCache getTileCache()(Code)(Java Doc) public Object getTileCacheMetric()(Code)(Java Doc) public Point[] getTileDependencies(int tileX, int tileY, int sourceIndex)(Code)(Java Doc) protected Raster getTileFromCache(int tileX, int tileY)(Code)(Java Doc) public TileRecycler getTileRecycler()(Code)(Java Doc) public Raster[] getTiles(Point[] tileIndices)(Code)(Java Doc) public boolean hasExtender(int sourceIndex)(Code)(Java Doc) public Point2D mapDestPoint(Point2D destPt, int sourceIndex)(Code)(Java Doc) abstract public Rectangle mapDestRect(Rectangle destRect, int sourceIndex)(Code)(Java Doc) public Point2D mapSourcePoint(Point2D sourcePt, int sourceIndex)(Code)(Java Doc) abstract public Rectangle mapSourceRect(Rectangle sourceRect, int sourceIndex)(Code)(Java Doc) public void prefetchTiles(Point[] tileIndices)(Code)(Java Doc) public TileRequest queueTiles(Point[] tileIndices)(Code)(Java Doc) protected void recycleTile(Raster tile)(Code)(Java Doc) public void setTileCache(TileCache cache)(Code)(Java Doc) protected static Vector vectorize(RenderedImage image)(Code)(Java Doc) protected static Vector vectorize(RenderedImage image1, RenderedImage image2)(Code)(Java Doc) protected static Vector vectorize(RenderedImage image1, RenderedImage image2, RenderedImage image3)(Code)(Java Doc)
|
|
|