|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectij.process.ImageProcessor
ij.process.ColorProcessor
public class ColorProcessor
This is an 32-bit RGB image and methods that operate on that image.. Based on the ImageProcessor class from "KickAss Java Programming" by Tonny Espeset (http://www.sn.no/~espeset).
Field Summary | |
---|---|
protected int[] |
pixels
|
static int |
RGB_DILATE
|
static int |
RGB_ERODE
|
static int |
RGB_FIND_EDGES
|
static int |
RGB_MEDIAN
|
static int |
RGB_NOISE
|
static int |
RGB_RESIZE
|
static int |
RGB_ROTATE
|
static int |
RGB_SCALE
|
static int |
RGB_THRESHOLD
|
static int |
RGB_TRANSLATE
|
protected int[] |
snapshotPixels
|
Fields inherited from class ij.process.ImageProcessor |
---|
antialiasedText, baseCM, BICUBIC, BILINEAR, BLACK, BLACK_AND_WHITE_LUT, BLUR_MORE, bLUT1, bLUT2, boldFont, CENTER_JUSTIFY, clipXMax, clipXMin, clipYMax, clipYMin, cm, cm2, CONVOLVE, cTable, cx, cy, defaultColorModel, drawingColor, FIND_EDGES, fmImage, font, fontMetrics, gLUT1, gLUT2, height, histogramMax, histogramMin, histogramSize, image, img, interpolate, interpolationMethod, inversionTested, invertedLut, ISODATA, ISODATA2, justification, LEFT_JUSTIFY, lineWidth, lutAnimation, lutUpdateMode, MAX, maxThreshold, MEDIAN_FILTER, MIN, minMaxSet, minThreshold, NEAREST_NEIGHBOR, newPixels, NO_LUT_UPDATE, NO_THRESHOLD, NONE, OVER_UNDER_LUT, raster, RED_LUT, RIGHT_JUSTIFY, rLUT1, rLUT2, roiHeight, roiWidth, roiX, roiY, sampleModel, snapshotHeight, snapshotWidth, source, width, xMax, xMin, yMax, yMin |
Constructor Summary | |
---|---|
ColorProcessor(java.awt.Image img)
Creates a ColorProcessor from an AWT Image. |
|
ColorProcessor(int width,
int height)
Creates a blank ColorProcessor of the specified dimensions. |
|
ColorProcessor(int width,
int height,
int[] pixels)
Creates a ColorProcessor from a pixel array. |
Method Summary | |
---|---|
void |
applyTable(int[] lut)
Transforms the image or ROI using a lookup table. |
void |
applyTable(int[] lut,
int channels)
|
void |
autoThreshold()
Converts the image to binary using an automatically determined threshold. |
void |
convolve(float[] kernel,
int kernelWidth,
int kernelHeight)
Performs a convolution operation using the specified kernel. |
void |
convolve3x3(int[] kernel)
3x3 convolution contributed by Glynne Casteel. |
void |
copyBits(ImageProcessor ip,
int xloc,
int yloc,
int mode)
Copies the image contained in 'ip' to (xloc, yloc) using one of the transfer modes defined in the Blitter interface. |
java.awt.Image |
createImage()
Returns a copy of this image is the form of an AWT Image. |
ImageProcessor |
createProcessor(int width,
int height)
Returns a new, blank ColorProcessor with the specified width and height. |
ImageProcessor |
crop()
Creates a new processor containing an image that corresponds to the current ROI. |
void |
dilate()
Dilates the image or ROI using a 3x3 minimum filter. |
void |
drawPixel(int x,
int y)
Draws a pixel in the current foreground color. |
ImageProcessor |
duplicate()
Returns a duplicate of this image. |
void |
erode()
Erodes the image or ROI using a 3x3 maximum filter. |
void |
fill()
Fills the current rectangular ROI. |
void |
fill(ImageProcessor mask)
Fills pixels that are within roi and part of the mask. |
void |
filter(int type)
3x3 unweighted smoothing. |
void |
filterRGB(int type,
double arg)
Performs the specified filter on the red, green and blue planes of this image. |
void |
findEdges()
Finds edges in the image or ROI using a Sobel operator. |
void |
flipVertical()
Flips the image or ROI vertically. |
int |
get(int index)
|
int |
get(int x,
int y)
This is a faster version of getPixel() that does not do bounds checking. |
double |
getBackgroundValue()
Returns the background fill value. |
int |
getBestIndex(java.awt.Color c)
Always returns 0 since RGB images do not use LUTs. |
FloatProcessor |
getBrightness()
Returns brightness as a FloatProcessor. |
java.awt.Color |
getColor(int x,
int y)
|
float |
getf(int index)
|
float |
getf(int x,
int y)
|
int[] |
getHistogram()
Returns the histogram of the image or ROI. |
int[] |
getHistogram(ImageProcessor mask)
|
void |
getHSB(byte[] H,
byte[] S,
byte[] B)
Returns hue, saturation and brightness in 3 byte arrays. |
ImageStack |
getHSBStack()
Returns an ImageStack with three 8-bit slices, representing hue, saturation and brightness |
double |
getInterpolatedPixel(double x,
double y)
Calls getPixelValue(x,y). |
int |
getInterpolatedRGBPixel(double x,
double y)
Uses bilinear interpolation to find the pixel value at real coordinates (x,y). |
double |
getMax()
Returns the largest displayed pixel value. |
double |
getMin()
Returns the smallest displayed pixel value. |
int |
getNChannels()
Returns the number of color channels of the image, i.e., 3. |
int |
getPixel(int x,
int y)
Returns the value of the pixel at (x,y). |
int[] |
getPixel(int x,
int y,
int[] iArray)
Returns the 3 samples for the pixel at (x,y) in an array of int. |
int |
getPixelInterpolated(double x,
double y)
Uses the current interpolation method to find the pixel value at real coordinates (x,y). |
java.lang.Object |
getPixels()
Returns a reference to the int array containing this image's pixel data. |
java.lang.Object |
getPixelsCopy()
Returns a copy of the pixel data. |
float |
getPixelValue(int x,
int y)
Converts the specified pixel to grayscale using the formula g=(r+g+b)/3 and returns it as a float. |
void |
getRGB(byte[] R,
byte[] G,
byte[] B)
Returns the red, green and blue planes as 3 byte arrays. |
java.lang.Object |
getSnapshotPixels()
Returns a reference to the snapshot pixel array. |
static double[] |
getWeightingFactors()
Returns the three weighting factors used by getPixelValue(), getHistogram() and convertToByte() to do color conversions. |
void |
invertLut()
Does nothing since RGB images do not use LUTs. |
boolean |
isInvertedLut()
Always returns false since RGB images do not use LUTs. |
ImageProcessor |
makeThumbnail(int width2,
int height2,
double smoothFactor)
Uses averaging to creates a new ColorProcessor containing a scaled copy of this image or selection. |
void |
medianFilter()
A 3x3 median filter. |
void |
noise(double range)
Adds random noise to the image or ROI. |
void |
putPixel(int x,
int y,
int value)
Stores the specified value at (x,y). |
void |
putPixel(int x,
int y,
int[] iArray)
Sets a pixel in the image using a 3 element (R, G and B) int array of samples. |
void |
putPixelValue(int x,
int y,
double value)
Stores the specified real grayscale value at (x,y). |
void |
reset()
Restores the pixel data from the snapshot (undo) buffer. |
void |
reset(ImageProcessor mask)
Restores pixels from the snapshot buffer that are within the rectangular roi but not part of the mask. |
ImageProcessor |
resize(int dstWidth,
int dstHeight)
Creates a new ColorProcessor containing a scaled copy of this image or selection. |
void |
rotate(double angle)
Rotates the image or ROI 'angle' degrees clockwise. |
void |
scale(double xScale,
double yScale)
Scales the image or selection using the specified scale factors. |
void |
set(int index,
int value)
|
void |
set(int x,
int y,
int value)
This is a faster version of putPixel() that does not clip out of range values and does not do bounds checking. |
void |
setBackgroundValue(double value)
Sets the background fill value, where value is interpreted as an RGB int. |
void |
setBrightness(FloatProcessor fp)
Updates the brightness using the pixels in the specified FloatProcessor). |
void |
setColor(java.awt.Color color)
Sets the foreground color. |
void |
setColor(int color)
Sets the fill/draw color, where color is an RGB int. |
void |
setf(int index,
float value)
|
void |
setf(int x,
int y,
float value)
|
void |
setHSB(byte[] H,
byte[] S,
byte[] B)
Sets the current pixels from 3 byte arrays (hue, saturation and brightness). |
void |
setMinAndMax(double min,
double max)
Uses a table look-up to map the pixels in this image from min-max to 0-255. |
void |
setMinAndMax(double min,
double max,
int channels)
|
void |
setPixels(int channelNumber,
FloatProcessor fp)
Sets the pixels of one color channel from a FloatProcessor. |
void |
setPixels(java.lang.Object pixels)
Sets a new pixel array for the image. |
void |
setRGB(byte[] R,
byte[] G,
byte[] B)
Sets the current pixels from 3 byte arrays (reg, green, blue). |
void |
setSnapshotPixels(java.lang.Object pixels)
Sets a new pixel array for the snapshot (undo) buffer. |
void |
setValue(double value)
Sets the default fill/draw value, where value is interpreted as an RGB int. |
static void |
setWeightingFactors(double rFactor,
double gFactor,
double bFactor)
Sets the weighting factors used by getPixelValue(), getHistogram() and convertToByte() to do color conversions. |
void |
snapshot()
Makes a copy of this image's pixel data that can be later restored using reset() or reset(mask). |
void |
threshold(int level)
Not implemented. |
FloatProcessor |
toFloat(int channelNumber,
FloatProcessor fp)
Returns a FloatProcessor with one color channel of the image. |
void |
updateComposite(int[] rgbPixels,
int channel)
CompositeImage calls this method to generate an updated color image. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected int[] pixels
protected int[] snapshotPixels
public static final int RGB_NOISE
public static final int RGB_MEDIAN
public static final int RGB_FIND_EDGES
public static final int RGB_ERODE
public static final int RGB_DILATE
public static final int RGB_THRESHOLD
public static final int RGB_ROTATE
public static final int RGB_SCALE
public static final int RGB_RESIZE
public static final int RGB_TRANSLATE
Constructor Detail |
---|
public ColorProcessor(java.awt.Image img)
public ColorProcessor(int width, int height)
public ColorProcessor(int width, int height, int[] pixels)
Method Detail |
---|
public java.awt.Image createImage()
ImageProcessor
createImage
in class ImageProcessor
public ImageProcessor createProcessor(int width, int height)
createProcessor
in class ImageProcessor
public java.awt.Color getColor(int x, int y)
public void setColor(java.awt.Color color)
setColor
in class ImageProcessor
public void setColor(int color)
color
is an RGB int.
setColor
in class ImageProcessor
public void setValue(double value)
value
is interpreted as an RGB int.
setValue
in class ImageProcessor
public void setBackgroundValue(double value)
value
is interpreted as an RGB int.
setBackgroundValue
in class ImageProcessor
public double getBackgroundValue()
getBackgroundValue
in class ImageProcessor
public double getMin()
getMin
in class ImageProcessor
public double getMax()
getMax
in class ImageProcessor
public void setMinAndMax(double min, double max)
setMinAndMax
in class ImageProcessor
public void setMinAndMax(double min, double max, int channels)
public void snapshot()
ImageProcessor
snapshot
in class ImageProcessor
ImageProcessor.reset()
,
ImageProcessor.reset(ImageProcessor)
public void reset()
ImageProcessor
reset
in class ImageProcessor
public void reset(ImageProcessor mask)
ImageProcessor
reset
in class ImageProcessor
public void setSnapshotPixels(java.lang.Object pixels)
ImageProcessor
setSnapshotPixels
in class ImageProcessor
public java.lang.Object getSnapshotPixels()
getSnapshotPixels
in class ImageProcessor
public void fill(ImageProcessor mask)
fill
in class ImageProcessor
ImageProcessor.setColor(Color)
,
ImageProcessor.setValue(double)
,
ImageProcessor.getMask()
,
ImageProcessor.fill(Roi)
public java.lang.Object getPixelsCopy()
getPixelsCopy
in class ImageProcessor
ImageProcessor.snapshot()
,
ImageProcessor.setSnapshotCopyMode(boolean)
public int getPixel(int x, int y)
ImageProcessor
getPixel
in class ImageProcessor
public final int get(int x, int y)
ImageProcessor
get
in class ImageProcessor
public final void set(int x, int y, int value)
ImageProcessor
set
in class ImageProcessor
public final int get(int index)
get
in class ImageProcessor
public final void set(int index, int value)
set
in class ImageProcessor
public final float getf(int x, int y)
getf
in class ImageProcessor
public final void setf(int x, int y, float value)
setf
in class ImageProcessor
public final float getf(int index)
getf
in class ImageProcessor
public final void setf(int index, float value)
setf
in class ImageProcessor
public int[] getPixel(int x, int y, int[] iArray)
getPixel
in class ImageProcessor
public final void putPixel(int x, int y, int[] iArray)
putPixel
in class ImageProcessor
public double getInterpolatedPixel(double x, double y)
getInterpolatedPixel
in class ImageProcessor
public final int getPixelInterpolated(double x, double y)
ImageProcessor
getPixelInterpolated
in class ImageProcessor
public final void putPixel(int x, int y, int value)
putPixel
in class ImageProcessor
public void putPixelValue(int x, int y, double value)
putPixelValue
in class ImageProcessor
public float getPixelValue(int x, int y)
getPixelValue
in class ImageProcessor
public void drawPixel(int x, int y)
drawPixel
in class ImageProcessor
public java.lang.Object getPixels()
getPixels
in class ImageProcessor
public void setPixels(java.lang.Object pixels)
ImageProcessor
setPixels
in class ImageProcessor
public void getHSB(byte[] H, byte[] S, byte[] B)
public ImageStack getHSBStack()
public FloatProcessor getBrightness()
public void getRGB(byte[] R, byte[] G, byte[] B)
public void setRGB(byte[] R, byte[] G, byte[] B)
public void setHSB(byte[] H, byte[] S, byte[] B)
public void setBrightness(FloatProcessor fp)
public void copyBits(ImageProcessor ip, int xloc, int yloc, int mode)
copyBits
in class ImageProcessor
public void applyTable(int[] lut)
ImageProcessor
applyTable
in class ImageProcessor
public void applyTable(int[] lut, int channels)
public void fill()
fill
in class ImageProcessor
ImageProcessor.setColor(Color)
,
ImageProcessor.setValue(double)
,
ImageProcessor.fill(Roi)
public void filterRGB(int type, double arg)
public void noise(double range)
ImageProcessor
noise
in class ImageProcessor
range
- the range of random numberspublic void medianFilter()
ImageProcessor
medianFilter
in class ImageProcessor
public void findEdges()
ImageProcessor
findEdges
in class ImageProcessor
public void erode()
ImageProcessor
erode
in class ImageProcessor
public void dilate()
ImageProcessor
dilate
in class ImageProcessor
public void autoThreshold()
ImageProcessor
autoThreshold
in class ImageProcessor
public void scale(double xScale, double yScale)
scale
in class ImageProcessor
ImageProcessor.setInterpolate(boolean)
public ImageProcessor crop()
ImageProcessor
crop
in class ImageProcessor
public ImageProcessor duplicate()
duplicate
in class ImageProcessor
public int getInterpolatedRGBPixel(double x, double y)
public ImageProcessor resize(int dstWidth, int dstHeight)
resize
in class ImageProcessor
ImageProcessor.setInterpolate(boolean)
public ImageProcessor makeThumbnail(int width2, int height2, double smoothFactor)
public void rotate(double angle)
rotate
in class ImageProcessor
ImageProcessor.setInterpolationMethod(int)
public void flipVertical()
ImageProcessor
flipVertical
in class ImageProcessor
public void convolve3x3(int[] kernel)
convolve3x3
in class ImageProcessor
public void filter(int type)
filter
in class ImageProcessor
public int[] getHistogram()
ImageProcessor
getHistogram
in class ImageProcessor
public int[] getHistogram(ImageProcessor mask)
public void convolve(float[] kernel, int kernelWidth, int kernelHeight)
convolve
in class ImageProcessor
public static void setWeightingFactors(double rFactor, double gFactor, double bFactor)
public static double[] getWeightingFactors()
public boolean isInvertedLut()
isInvertedLut
in class ImageProcessor
public int getBestIndex(java.awt.Color c)
getBestIndex
in class ImageProcessor
public void invertLut()
invertLut
in class ImageProcessor
public void updateComposite(int[] rgbPixels, int channel)
ImageProcessor
updateComposite
in class ImageProcessor
public void threshold(int level)
threshold
in class ImageProcessor
public int getNChannels()
getNChannels
in class ImageProcessor
public FloatProcessor toFloat(int channelNumber, FloatProcessor fp)
toFloat
in class ImageProcessor
channelNumber
- Determines the color channel, 0=red, 1=green, 2=bluefp
- Here a FloatProcessor can be supplied, or null. The FloatProcessor
is overwritten by this method (re-using its pixels array
improves performance).
public void setPixels(int channelNumber, FloatProcessor fp)
setPixels
in class ImageProcessor
channelNumber
- Determines the color channel, 0=red, 1=green, 2=bluefp
- The FloatProcessor where the image data are read from.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |