- java.lang.Object
-
- ij.process.ImageProcessor
-
- ij.process.ByteProcessor
-
- All Implemented Interfaces:
java.lang.Cloneable
- Direct Known Subclasses:
BinaryProcessor
public class ByteProcessor extends ImageProcessor
This is an 8-bit image and methods that operate on that image. Based on the ImageProcessor class from "KickAss Java Programming" by Tonny Espeset.
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]
pixels
protected byte[]
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, fillValueSet, FIND_EDGES, fmGraphics, fmImage, font, fontMetrics, gLUT1, gLUT2, height, histogramMax, histogramMin, histogramSize, image, img, interpolate, interpolationMethod, inversionTested, INVERT_PROJECTION, invertedLut, ISODATA, ISODATA2, justification, LEFT_JUSTIFY, lineWidth, lutAnimation, lutUpdateMode, MAX, MAX_PROJECTION, maxThreshold, MEDIAN_FILTER, MIN, MIN_PROJECTION, minMaxSet, minThreshold, NEAREST_NEIGHBOR, newPixels, NO_LUT_UPDATE, NO_THRESHOLD, NONE, OVER_UNDER_LUT, raster, RED_LUT, RIGHT_JUSTIFY, rLUT1, rLUT2, rnd, roiHeight, roiWidth, roiX, roiY, sampleModel, seed, SET_FIRST_CHANNEL, snapshotHeight, snapshotWidth, source, SUM_PROJECTION, UPDATE_BLUE, UPDATE_GREEN, UPDATE_RED, width, xMax, xMin, yMax, yMin
-
-
Constructor Summary
Constructors Constructor Description ByteProcessor(int width, int height)
Creates a blank ByteProcessor of the specified dimensions.ByteProcessor(int width, int height, byte[] pixels)
Creates a ByteProcessor from a byte array.ByteProcessor(int width, int height, byte[] pixels, java.awt.image.ColorModel cm)
Creates a ByteProcessor from a pixel array and IndexColorModel.ByteProcessor(ImageProcessor ip, boolean scale)
Creates a ByteProcessor from an ImageProcessor.ByteProcessor(java.awt.Image img)
Creates a ByteProcessor from an AWT Image.ByteProcessor(java.awt.image.BufferedImage bi)
Creates a ByteProcessor from a TYPE_BYTE_GRAY BufferedImage.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
applyLut()
void
applyTable(int[] lut)
Transforms the image or ROI using a lookup table.void
convolve(float[] kernel, int kernelWidth, int kernelHeight)
Performs a convolution operation using the specified kernel.void
convolve3x3(int[] kernel)
Convolves the image or ROI with the specified 3x3 integer convolution kernel.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.ByteProcessor
createMask()
Returns a binary mask, or null if a threshold is not set.ImageProcessor
createProcessor(int width, int height)
Returns a new, blank ByteProcessor with the specified width and height.ImageProcessor
crop()
Returns 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
dilate(int count, int background)
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
erode(int count, int background)
void
fill(ImageProcessor mask)
Sets pixels that are within roi and part of the mask to the foreground color.void
filter(int type)
Filters using a 3x3 neighborhood.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
getBitDepth()
Returns the bit depth, 8, 16, 24 (RGB) or 32.java.awt.image.BufferedImage
getBufferedImage()
Returns this image as a BufferedImage.float
getf(int index)
float
getf(int x, int y)
Returns the value of the pixel at (x,y) as a float.double
getForegroundValue()
Returns the foreground fill/draw value.int[]
getHistogram()
Returns the histogram of the image or ROI.int[]
getHistogram(ImageProcessor mask)
double
getInterpolatedPixel(double x, double y)
Uses the current interpolation method (BILINEAR or BICUBIC) to calculate 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
getPixel(int x, int y)
Returns the value of the pixel at (x,y).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 byte array containing this image's pixel data.java.lang.Object
getPixelsCopy()
Returns a copy of the pixel data.float
getPixelValue(int x, int y)
Returns the value of the pixel at (x,y).java.lang.Object
getSnapshotPixels()
Returns a reference to the snapshot (undo) buffer, or null.boolean
isBinary()
Returns 'true' if this is a binary image (8-bit-image with only 0 and 255).void
medianFilter()
A 3x3 median filter.void
noise(double standardDeviation)
Adds pseudorandom, Gaussian ("normally") distributed values, with mean 0.0 and the specified standard deviation, to this image or ROI.void
outline()
void
putPixel(int x, int y, int value)
Stores the specified value at (x,y).void
putPixelValue(int x, int y, double value)
Stores the specified real value at (x,y).void
reset()
Reset the image from snapshot.void
reset(ImageProcessor mask)
Restore pixels that are within roi but not part of mask.void
resetMinAndMax()
Resets this image's LUT.ImageProcessor
resize(int dstWidth, int dstHeight)
Creates a new ByteProcessor 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
setBackgroundColor(java.awt.Color color)
Sets the background fill/draw color.void
setBackgroundValue(double value)
Sets the background fill value, where 0<=value<=255.void
setColor(java.awt.Color color)
Sets the foreground drawing color.void
setf(int index, float value)
void
setf(int x, int y, float value)
Sets the value of the pixel at (x,y) to 'value'.void
setFromFloatArrays(float[][] arrays)
void
setFromFloatProcessors(FloatProcessor[] fp)
void
setMinAndMax(double min, double max)
Maps the entries in this image's LUT from min-max to 0-255.void
setPixels(int channelNumber, FloatProcessor fp)
Sets the pixels from a FloatProcessor, no scaling.void
setPixels(java.lang.Object pixels)
Sets a new pixel array for the image.void
setSnapshotPixels(java.lang.Object pixels)
Sets a new pixel array for the snapshot (undo) buffer.void
setThreshold(double minThreshold, double maxThreshold, int lutUpdate)
Sets the lower and upper threshold levels.void
setValue(double value)
Sets the default fill/draw value, where 0<=value<=255.void
skeletonize()
Converts black objects in a binary image to single pixel skeletons.void
skeletonize(int foreground)
Converts objects with pixel values of 'forground' (255 or 0) in a binary imager to single pixel skeletons.void
snapshot()
Make a snapshot of the current image.void
swapPixelArrays()
Swaps the pixel and snapshot (undo) arrays.void
threshold(int level)
Sets pixels less than or equal to 'level' to 0 and all other pixels to 255.void
threshold(int level1, int level2)
Sets pixels less than 'level1' or greater than 'level2' to 0 and all other pixels to 255.FloatProcessor
toFloat(int channelNumber, FloatProcessor fp)
Returns a FloatProcessor with the same image, no scaling or calibration (pixel values 0 to 255).float[][]
toFloatArrays()
FloatProcessor[]
toFloatProcessors()
-
Methods inherited from class ij.process.ImageProcessor
abs, add, add, and, applyMacro, autoThreshold, bin, blurGaussian, clone, convertToByte, convertToByteProcessor, convertToByteProcessor, convertToColorProcessor, convertToFloat, convertToFloatProcessor, convertToRGB, convertToShort, convertToShortProcessor, convertToShortProcessor, cubic, draw, drawDot, drawDot2, drawLine, drawLine4, drawOval, drawOverlay, drawPolygon, drawRect, drawRoi, drawString, drawString, drawString, exp, fill, fill, fillOutside, fillOval, fillPolygon, fillRect, fillValueSet, findEdges, flipHorizontal, gamma, getAutoThreshold, getAutoThreshold, getBestIndex, getBicubicInterpolatedPixel, getCalibrationTable, getColorModel, getColumn, getColumn, getCurrentColorModel, getDefaultColorModel, getFloatArray, getFont, getFontMetrics, getHeight, getHistogram, getHistogramMax, getHistogramMin, getHistogramSize, getIndexSampleModel, getIntArray, getInterpolate, getInterpolatedValue, getInterpolationMethod, getInterpolationMethods, getLine, getLineWidth, getLut, getLutUpdateMode, getMask, getMaskArray, getMaxThreshold, getMinThreshold, getNChannels, getNeighborhood, getOverlay, getPixel, getPixelCount, getProgressIncrement, getRoi, getRow, getRow, getSliceNumber, getStatistics, getStats, getStringBounds, getStringWidth, getThresholdColorModel, getValue, getWidth, hideProgress, insert, invert, invertLut, isColorLut, isDefaultLut, isGrayscale, isInvertedLut, isKillable, isPseudoColorLut, isSigned16Bit, isThreshold, lineTo, ln, log, makeDefaultColorModel, maskSizeError, max, maxValue, min, minValue, moveTo, multiply, or, putColumn, putColumn, putPixel, putRow, putRow, resetBinaryThreshold, resetRoi, resetThreshold, resize, resize, resizeLinearly, rotateLeft, rotateRight, scaleAndSetThreshold, set, setAntialiasedText, setAutoThreshold, setAutoThreshold, setAutoThreshold, setAutoThreshold, setAutoThreshold, setBinaryThreshold, setCalibrationTable, setClipRect, setColor, setColor, setColor, setColorModel, setFloatArray, setFont, setFontSize, setGlobalBackgroundColor, setGlobalForegroundColor, setHistogramRange, setHistogramSize, setIntArray, setInterpolate, setInterpolationMethod, setJustification, setLineWidth, setLut, setLutAnimation, setMask, setOverColor, setOverlay, setProgressBar, setRandomSeed, setRoi, setRoi, setRoi, setRoi, setSliceNumber, setSnapshotCopyMode, setThreshold, setUnderColor, setUseBicubic, sharpen, showProgress, smooth, sqr, sqrt, subtract, toString, translate, translate, updateComposite, xor
-
-
-
-
Constructor Detail
-
ByteProcessor
public ByteProcessor(java.awt.Image img)
Creates a ByteProcessor from an AWT Image.
-
ByteProcessor
public ByteProcessor(int width, int height)
Creates a blank ByteProcessor of the specified dimensions.
-
ByteProcessor
public ByteProcessor(int width, int height, byte[] pixels)
Creates a ByteProcessor from a byte array.
-
ByteProcessor
public ByteProcessor(int width, int height, byte[] pixels, java.awt.image.ColorModel cm)
Creates a ByteProcessor from a pixel array and IndexColorModel.
-
ByteProcessor
public ByteProcessor(java.awt.image.BufferedImage bi)
Creates a ByteProcessor from a TYPE_BYTE_GRAY BufferedImage.
-
ByteProcessor
public ByteProcessor(ImageProcessor ip, boolean scale)
Creates a ByteProcessor from an ImageProcessor. 16-bit and 32-bit pixel data are scaled from min-max to 0-255 if 'scale' is true.
-
-
Method Detail
-
createImage
public java.awt.Image createImage()
Description copied from class:ImageProcessor
Returns a copy of this image is the form of an AWT Image.- Specified by:
createImage
in classImageProcessor
-
getBufferedImage
public java.awt.image.BufferedImage getBufferedImage()
Returns this image as a BufferedImage.- Overrides:
getBufferedImage
in classImageProcessor
-
createProcessor
public ImageProcessor createProcessor(int width, int height)
Returns a new, blank ByteProcessor with the specified width and height.- Specified by:
createProcessor
in classImageProcessor
-
crop
public ImageProcessor crop()
Description copied from class:ImageProcessor
Returns a new processor containing an image that corresponds to the current ROI.- Specified by:
crop
in classImageProcessor
-
duplicate
public ImageProcessor duplicate()
Returns a duplicate of this image.- Specified by:
duplicate
in classImageProcessor
-
snapshot
public void snapshot()
Make a snapshot of the current image.- Specified by:
snapshot
in classImageProcessor
- See Also:
ImageProcessor.reset()
,ImageProcessor.reset(ImageProcessor)
-
reset
public void reset()
Reset the image from snapshot.- Specified by:
reset
in classImageProcessor
-
swapPixelArrays
public void swapPixelArrays()
Swaps the pixel and snapshot (undo) arrays.- Specified by:
swapPixelArrays
in classImageProcessor
-
reset
public void reset(ImageProcessor mask)
Restore pixels that are within roi but not part of mask.- Specified by:
reset
in classImageProcessor
-
setSnapshotPixels
public void setSnapshotPixels(java.lang.Object pixels)
Description copied from class:ImageProcessor
Sets a new pixel array for the snapshot (undo) buffer.- Specified by:
setSnapshotPixels
in classImageProcessor
-
getSnapshotPixels
public java.lang.Object getSnapshotPixels()
Description copied from class:ImageProcessor
Returns a reference to the snapshot (undo) buffer, or null.- Specified by:
getSnapshotPixels
in classImageProcessor
-
fill
public void fill(ImageProcessor mask)
Sets pixels that are within roi and part of the mask to the foreground color. Does nothing if the mask is not the same size as the ROI.- Specified by:
fill
in classImageProcessor
- See Also:
ImageProcessor.setColor(Color)
,ImageProcessor.setValue(double)
,ImageProcessor.getMask()
,ImageProcessor.fill(Roi)
-
getPixel
public int getPixel(int x, int y)
Description copied from class:ImageProcessor
Returns the value of the pixel at (x,y). For RGB images, the argb values are packed in an int. For float images, the the value must be converted using Float.intBitsToFloat(). Returns zero if either the x or y coodinate is out of range. Use getValue(x,y) to get calibrated values from 8-bit and 16-bit images, to get intensity values from RGB images and to get float values from 32-bit images.- Specified by:
getPixel
in classImageProcessor
- See Also:
ImageProcessor.getValue(int, int)
-
get
public final int get(int x, int y)
Description copied from class:ImageProcessor
This is a faster version of getPixel() that does not do bounds checking.- Specified by:
get
in classImageProcessor
-
set
public final void set(int x, int y, int value)
Description copied from class:ImageProcessor
This is a faster version of putPixel() that does not clip out of range values and does not do bounds checking.- Specified by:
set
in classImageProcessor
-
get
public final int get(int index)
- Specified by:
get
in classImageProcessor
-
set
public final void set(int index, int value)
- Specified by:
set
in classImageProcessor
-
getf
public final float getf(int x, int y)
Description copied from class:ImageProcessor
Returns the value of the pixel at (x,y) as a float. Faster than getPixelValue() but does no bounds checking and does not return calibrated values.- Specified by:
getf
in classImageProcessor
-
setf
public final void setf(int x, int y, float value)
Description copied from class:ImageProcessor
Sets the value of the pixel at (x,y) to 'value'. Does no bounds checking or clamping, making it faster than putPixel(). Due to the lack of bounds checking, (x,y) coordinates outside the image may cause an exception. Due to the lack of clamping, values outside the 0-255 range (for byte) or 0-65535 range (for short) are not handled correctly.- Specified by:
setf
in classImageProcessor
-
getf
public final float getf(int index)
- Specified by:
getf
in classImageProcessor
-
setf
public final void setf(int index, float value)
- Specified by:
setf
in classImageProcessor
-
getInterpolatedPixel
public double getInterpolatedPixel(double x, double y)
Uses the current interpolation method (BILINEAR or BICUBIC) to calculate the pixel value at real coordinates (x,y).- Specified by:
getInterpolatedPixel
in classImageProcessor
-
getPixelInterpolated
public final int getPixelInterpolated(double x, double y)
Description copied from class:ImageProcessor
Uses the current interpolation method to find the pixel value at real coordinates (x,y). For RGB images, the argb values are packed in an int. For float images, the value must be converted using Float.intBitsToFloat(). Returns zero if the (x, y) is not inside the image.- Specified by:
getPixelInterpolated
in classImageProcessor
-
getPixelValue
public float getPixelValue(int x, int y)
Description copied from class:ImageProcessor
Returns the value of the pixel at (x,y). For byte and short images, returns a calibrated value if a calibration table has been set using setCalibraionTable(). For RGB images, returns the luminance value.- Specified by:
getPixelValue
in classImageProcessor
- See Also:
ImageProcessor.getPixel(int, int)
,ImageProcessor.getValue(int, int)
,ImageProcessor.getf(int, int)
-
setColor
public void setColor(java.awt.Color color)
Sets the foreground drawing color.- Specified by:
setColor
in classImageProcessor
-
setBackgroundColor
public void setBackgroundColor(java.awt.Color color)
Sets the background fill/draw color.- Overrides:
setBackgroundColor
in classImageProcessor
-
setValue
public void setValue(double value)
Sets the default fill/draw value, where 0<=value<=255.- Specified by:
setValue
in classImageProcessor
-
getForegroundValue
public double getForegroundValue()
Returns the foreground fill/draw value.- Specified by:
getForegroundValue
in classImageProcessor
-
setBackgroundValue
public void setBackgroundValue(double value)
Sets the background fill value, where 0<=value<=255.- Specified by:
setBackgroundValue
in classImageProcessor
-
getBackgroundValue
public double getBackgroundValue()
Returns the background fill value.- Specified by:
getBackgroundValue
in classImageProcessor
-
putPixelValue
public void putPixelValue(int x, int y, double value)
Stores the specified real value at (x,y). Does nothing if (x,y) is outside the image boundary. Values outside the range 0-255 are clamped.- Specified by:
putPixelValue
in classImageProcessor
-
putPixel
public final void putPixel(int x, int y, int value)
Stores the specified value at (x,y). Does nothing if (x,y) is outside the image boundary. Values outside the range 0-255 are clamped.- Specified by:
putPixel
in classImageProcessor
-
drawPixel
public void drawPixel(int x, int y)
Draws a pixel in the current foreground color.- Specified by:
drawPixel
in classImageProcessor
-
getPixels
public java.lang.Object getPixels()
Returns a reference to the byte array containing this image's pixel data. To avoid sign extension, the pixel values must be accessed using a mask (e.g. int i = pixels[j]&0xff).- Specified by:
getPixels
in classImageProcessor
-
getPixelsCopy
public java.lang.Object getPixelsCopy()
Returns a copy of the pixel data. Or returns a reference to the snapshot buffer if it is not null and 'snapshotCopyMode' is true.- Specified by:
getPixelsCopy
in classImageProcessor
- See Also:
ImageProcessor.snapshot()
,ImageProcessor.setSnapshotCopyMode(boolean)
-
setPixels
public void setPixels(java.lang.Object pixels)
Description copied from class:ImageProcessor
Sets a new pixel array for the image. The length of the array must be equal to width*height. Use setSnapshotPixels(null) to clear the snapshot buffer.- Specified by:
setPixels
in classImageProcessor
-
getMin
public double getMin()
Returns the smallest displayed pixel value.- Specified by:
getMin
in classImageProcessor
-
getMax
public double getMax()
Returns the largest displayed pixel value.- Specified by:
getMax
in classImageProcessor
-
setMinAndMax
public void setMinAndMax(double min, double max)
Maps the entries in this image's LUT from min-max to 0-255.- Specified by:
setMinAndMax
in classImageProcessor
- See Also:
IJ.setMinAndMax(ij.ImagePlus,double,double)
-
resetMinAndMax
public void resetMinAndMax()
Resets this image's LUT.- Overrides:
resetMinAndMax
in classImageProcessor
-
setThreshold
public void setThreshold(double minThreshold, double maxThreshold, int lutUpdate)
Description copied from class:ImageProcessor
Sets the lower and upper threshold levels. The 'lutUpdate' argument can be RED_LUT, BLACK_AND_WHITE_LUT, OVER_UNDER_LUT or NO_LUT_UPDATE. Thresholding of RGB images is not supported.- Overrides:
setThreshold
in classImageProcessor
-
copyBits
public 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.- Specified by:
copyBits
in classImageProcessor
-
applyTable
public void applyTable(int[] lut)
Description copied from class:ImageProcessor
Transforms the image or ROI using a lookup table. The length of the table must be 256 for byte images and 65536 for short images. RGB and float images are not supported.- Specified by:
applyTable
in classImageProcessor
-
convolve3x3
public void convolve3x3(int[] kernel)
Description copied from class:ImageProcessor
Convolves the image or ROI with the specified 3x3 integer convolution kernel.- Specified by:
convolve3x3
in classImageProcessor
-
filter
public void filter(int type)
Filters using a 3x3 neighborhood. The p1, p2, etc variables, which contain the values of the pixels in the neighborhood, are arranged as follows:p1 p2 p3 p4 p5 p6 p7 p8 p9
- Specified by:
filter
in classImageProcessor
-
erode
public void erode()
Description copied from class:ImageProcessor
Erodes the image or ROI using a 3x3 maximum filter. Requires 8-bit or RGB image.- Specified by:
erode
in classImageProcessor
-
dilate
public void dilate()
Description copied from class:ImageProcessor
Dilates the image or ROI using a 3x3 minimum filter. Requires 8-bit or RGB image.- Specified by:
dilate
in classImageProcessor
-
erode
public void erode(int count, int background)
-
dilate
public void dilate(int count, int background)
-
outline
public void outline()
-
skeletonize
public void skeletonize()
Converts black objects in a binary image to single pixel skeletons.
-
skeletonize
public void skeletonize(int foreground)
Converts objects with pixel values of 'forground' (255 or 0) in a binary imager to single pixel skeletons.
-
medianFilter
public void medianFilter()
Description copied from class:ImageProcessor
A 3x3 median filter. Requires 8-bit or RGB image.- Specified by:
medianFilter
in classImageProcessor
-
noise
public void noise(double standardDeviation)
Adds pseudorandom, Gaussian ("normally") distributed values, with mean 0.0 and the specified standard deviation, to this image or ROI.- Specified by:
noise
in classImageProcessor
-
scale
public void scale(double xScale, double yScale)
Scales the image or selection using the specified scale factors.- Specified by:
scale
in classImageProcessor
- See Also:
ImageProcessor.setInterpolate(boolean)
-
resize
public ImageProcessor resize(int dstWidth, int dstHeight)
Creates a new ByteProcessor containing a scaled copy of this image or selection.- Specified by:
resize
in classImageProcessor
- See Also:
ImageProcessor.setInterpolate(boolean)
-
rotate
public void rotate(double angle)
Rotates the image or ROI 'angle' degrees clockwise.- Specified by:
rotate
in classImageProcessor
- See Also:
ImageProcessor.setInterpolationMethod(int)
-
flipVertical
public void flipVertical()
Description copied from class:ImageProcessor
Flips the image or ROI vertically.- Specified by:
flipVertical
in classImageProcessor
-
getHistogram
public int[] getHistogram()
Description copied from class:ImageProcessor
Returns the histogram of the image or ROI. Returns a luminosity histogram for RGB images and null for float images.For 8-bit and 16-bit images, returns an array with one entry for each possible value that a pixel can have, from 0 to 255 (8-bit image) or 0-65535 (16-bit image). Thus, the array size is 256 or 65536, and the bin width in uncalibrated units is 1.
For RGB images, the brightness is evaluated using the color weights (which would result in a float value) and rounded to an int. This gives 256 bins. FloatProcessor.getHistogram is not implemented (returns null).
- Specified by:
getHistogram
in classImageProcessor
-
getHistogram
public int[] getHistogram(ImageProcessor mask)
-
threshold
public void threshold(int level1, int level2)
Sets pixels less than 'level1' or greater than 'level2' to 0 and all other pixels to 255.- Overrides:
threshold
in classImageProcessor
-
threshold
public void threshold(int level)
Sets pixels less than or equal to 'level' to 0 and all other pixels to 255.- Specified by:
threshold
in classImageProcessor
-
applyLut
public void applyLut()
-
convolve
public void convolve(float[] kernel, int kernelWidth, int kernelHeight)
Performs a convolution operation using the specified kernel.- Specified by:
convolve
in classImageProcessor
-
toFloatProcessors
public FloatProcessor[] toFloatProcessors()
-
setFromFloatProcessors
public void setFromFloatProcessors(FloatProcessor[] fp)
-
toFloatArrays
public float[][] toFloatArrays()
-
setFromFloatArrays
public void setFromFloatArrays(float[][] arrays)
-
toFloat
public FloatProcessor toFloat(int channelNumber, FloatProcessor fp)
Returns a FloatProcessor with the same image, no scaling or calibration (pixel values 0 to 255). The roi, mask, lut (ColorModel), threshold, min&max are also set for the FloatProcessor- Specified by:
toFloat
in classImageProcessor
- Parameters:
channelNumber
- Ignored (needed for compatibility with ColorProcessor.toFloat)fp
- Here a FloatProcessor can be supplied, or null. The FloatProcessor is overwritten by this method (re-using its pixels array improves performance).- Returns:
- A FloatProcessor with the converted image data
-
setPixels
public void setPixels(int channelNumber, FloatProcessor fp)
Sets the pixels from a FloatProcessor, no scaling. Also the min&max values are taken from the FloatProcessor.- Specified by:
setPixels
in classImageProcessor
- Parameters:
channelNumber
- Ignored (needed for compatibility with ColorProcessor.toFloat)fp
- The FloatProcessor where the image data are read from.
-
isBinary
public boolean isBinary()
Returns 'true' if this is a binary image (8-bit-image with only 0 and 255).- Overrides:
isBinary
in classImageProcessor
-
getBitDepth
public int getBitDepth()
Description copied from class:ImageProcessor
Returns the bit depth, 8, 16, 24 (RGB) or 32. RGB images actually use 32 bits per pixel.- Overrides:
getBitDepth
in classImageProcessor
-
createMask
public ByteProcessor createMask()
Returns a binary mask, or null if a threshold is not set.- Overrides:
createMask
in classImageProcessor
- See Also:
ImagePlus.createThresholdMask()
,ImagePlus.createRoiMask()
-
-