| Modifier and Type | Field and Description |
|---|---|
protected java.awt.image.BufferedImage |
bim |
protected double[] |
zeroPxDouble |
protected int[] |
zeroPxInt |
| Constructor and Description |
|---|
Image8or16Base() |
| Modifier and Type | Method and Description |
|---|---|
void |
add(java.awt.image.BufferedImage bim2)
Add pixel values from bim into the data array.
|
int[] |
addPixel(int x,
int y,
int[] px)
Slightly more efficient than the sequence getPixel, add for each band,
setPixel.
|
void |
addProportion(Image other,
double fractionThis,
double fractionOther)
Add proportion of pixel values from the other Image to a proportion of
the current data array.
|
void |
addTranslated(java.awt.image.BufferedImage bim,
double dx,
double dy)
Add pixel values from bim into the data array, offset by vector (dx, dy).
|
void |
addTranslated(java.awt.image.BufferedImage bim,
int dx,
int dy)
Add pixel values from bim into the data array, offset by vector (dx, dy).
|
void |
autoCrop()
Automatically remove any rectangular margin of black (0, 0, 0) pixels
from the image, thereby cropping it.
|
void |
autoStretch(boolean allChannelsSame)
Stretch the contrast in the image so the full range of levels is used.
|
void |
autoStretch(boolean allChannelsSame,
java.awt.Point topLeft,
java.awt.Point bottomRight)
Stretch the contrast in the image so the full range of levels is used.
|
ByteMask |
autoThreshold()
Threshold automatically.
|
void |
averageVertically()
Replace every pixel of every vertical line in the image by the average
of the levels along the line.
|
void |
averageVertically(int yMin,
int yMax)
Replace every pixel of every vertical line in the image by the average
of the levels along the line, within two y coordinate limits.
|
void |
blurGaussian(int nx,
int ny,
javax.swing.ProgressMonitor monitor)
Do Gaussian blurring of this image with 1D profiles of width
nx (horizontal) and ny (vertical).
|
protected void |
checkCompatibility(java.awt.image.BufferedImage bim) |
abstract Image |
clone() |
void |
convertToMonochrome()
Convert the image to monochrome,
using 0.325 x red + 0.5 * green + 0.175 * blue.
|
void |
convertToMonochrome(double... f)
Convert the image to monochrome, using given fractions of each channel.
|
void |
convolve(double[] horz,
double[] vert,
javax.swing.ProgressMonitor monitor)
Convolve the given image with the given 1D arrays (horizontal and
vertical - may be different).
|
void |
convolve(Kernel kernel,
javax.swing.ProgressMonitor monitor)
Perform a 2D linear convolution with the given kernel.
|
void |
correctBackground(double scale,
int cellFactor)
Level the background of the image by dividing the image into n x n cells
and using the modal values of the histogram in every cell.
|
void |
crop(java.awt.Point pt1,
java.awt.Point pt2)
Crop the image by a rectangle defined by the diagonally opposite points.
|
void |
deconvolve(Kernel kernel,
int nPasses,
double weight,
javax.swing.ProgressMonitor monitor)
Deconvolve this image with the given kernel, using van Cittert's method.
|
void |
dispose()
Release all resources.
|
void |
divide(int n)
Divide the value of every pixel by n
|
void |
divideByFlatField(Image flat)
Divide by a flat field image.
|
void |
drawRim(int width,
java.awt.Color colour)
Draw a rim around the image, of the given width and colour
|
void |
fit(int width,
int height)
Scale the image so it fits into the given width and height (in pixels),
without changing its proportions.
|
void |
flipHorizontal()
Flip the image horizontally.
|
void |
flipVertical()
Flip the image vertically.
|
int |
getBitsPerChannel()
Get the number of bits per channel.
|
static int |
getBitsPerChannel(java.awt.image.BufferedImage bimage)
Not required by Image interface, but useful.
|
java.awt.image.BufferedImage |
getBufferedImage() |
RangeInt[] |
getChannelRanges()
Find the range of values in each channel, as pairs of int values.
|
RangeDouble[] |
getChannelRangesDouble()
Find the range of values in each channel, as pairs of double values.
|
int |
getHeight()
Get the height, in pixels, of the Image.
|
java.lang.String |
getImageTypeAsString()
For displaying image information, get its
java.awt.image.BufferedImage type constant name.
|
static java.lang.String |
getImageTypeAsString(java.awt.image.BufferedImage bimage)
For displaying image information, get the given image's
java.awt.image.BufferedImage type constant name.
|
int |
getMaxLevel()
Not required by Image interface.
|
static int |
getMaxLevel(java.awt.image.BufferedImage bimage)
Not required by Image interface, but useful.
|
Metadata |
getMetadata()
Get metadata associated with the image.
|
int |
getNBands()
Get the number of bands (channels) in the Image.
|
static int |
getNBands(java.awt.image.BufferedImage bim)
Not required by Image interface, but useful.
|
int[] |
getPixel(int x,
int y)
Get array of int pixel values for all bands at the given integer (x, y)
position.
|
double[] |
getPixelDouble(int x,
int y)
Get array of double pixel values for all bands at the given integer
(x, y) position.
|
double[] |
getPixelDoubleInterpolated(double x,
double y)
Get array of double pixel values for all bands at the given fractional
(x, y) position.
|
int[] |
getPixelInterpolated(double x,
double y)
Get array of int pixel values for all bands at the given fractional
(x, y) position.
|
RangeInt |
getRange()
Get the minimum and maximum values occurring across all channels, as a
pair of int values.
|
RangeInt |
getRangeByRescanning()
Get overall range of values across all channels, as a pair of int values.
|
RangeDouble |
getRangeByRescanningDouble()
Get overall range of values across all channels, as a pair of double values.
|
RangeDouble |
getRangeDouble()
Get the minimum and maximum values occurring across all channels, as a
pair of double values.
|
int |
getWidth()
Get the width, in pixels, of the Image.
|
java.awt.image.BufferedImage |
gnomonicProjection(java.awt.image.BufferedImage src,
int focalLength_mm,
double detectorWidth_mm,
double detectorHeight_mm)
Project from sphere to plane.
|
protected java.awt.image.BufferedImage |
inverseGnomonicProjection(java.awt.image.BufferedImage src,
int focalLength_mm,
double detectorWidth_mm,
double detectorHeight_mm)
Project from plane to sphere.
|
void |
invert()
Invert the colour at every pixel in the image.
|
void |
keepOnlyDifferingPixels(Image other,
int threshold)
Keep only pixels in this image which differ by more than the threshold
amount (in at least one band) from pixels at the same position in the
other image.
|
void |
meanFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
Replace every pixel in the image by the mean value of its n x n
neighbourhood, where n = 2.halfWidth + 1.
|
void |
medianFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
Replace every pixel in the image by the median value of its n x n
neighbourhood, where n = 2.halfWidth + 1.
|
void |
multiply(double f)
Multiply all pixel values (in all bands) in the Image by factor f,
truncating the result if pixels contain integer values.
|
void |
multiply(Image other)
Multiply pixel values of current image by those of another.
|
void |
multiply(Image other,
double f1,
double f2)
Multiply fraction f1 of this image by f2 of the other.
|
void |
nearestExtremeFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
Replace every pixel in the image by the nearest of the max and min of
its n x n neighbourhood, where n = 2.halfWidth + 1.
|
void |
neutraliseBackground()
Equate the histogram modes of all channels by stretching from the overall
maximum value.
|
void |
rankFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
Replace every pixel in the image by its rank in its n x n neighbourhood,
where n = 2.halfWidth + 1.
|
void |
reapplyColour(Image intensityImage,
Image colourImage)
For combining a monochrome intensity image with a multi-band colour
information image, the 2 images having been created by splitIntensity ().
|
void |
replaceBrighterPixels(Image source)
Assuming the source image has the same dimensions, replace in the present
image any pixels which are brighter in the source (in all channels).
|
void |
rotate(Angle a)
Rotate the image anticlockwise by the given angle about its centre.
|
void |
save(java.lang.String filePath)
Save image as a file.
|
void |
save(java.lang.String filePath,
RangeDouble range)
Save image as a file.
|
void |
save(java.lang.String filePath,
RangeInt range)
Save image as a file.
|
void |
saveAsFITS(java.lang.String filePath)
This is called by save() if the filePath ends in ".fits" but it may be
called directly.
|
void |
scale(double factor,
boolean interpolating)
Scale the image by the given factor
|
void |
scale(double factor,
boolean interpolating,
java.awt.Point centre)
Scale the image in x and y by the given factor, keeping the centre fixed.
|
java.awt.image.BufferedImage |
scaleDownForDisplay(int factor)
Create a BufferedImage compatible with the display and scale the current
Image down into it by an integer factor (maximum speed).
|
void |
set(java.awt.image.BufferedImage bim)
Set pixel values from bim into the data array.
|
void |
setBufferedImage(java.awt.image.BufferedImage bim) |
void |
setMetadata(Metadata theData)
Associate metadata with the image.
|
void |
setPixel(int x,
int y,
int[] px)
Does nothing if (x, y) is outside the image.
|
void |
setPixel(int x,
int y,
int band,
int px)
Set value into a single band of a pixel without changing the other bands.
|
void |
setPixelDouble(int x,
int y,
double[] px)
Does nothing if (x, y) is outside the image.
|
void |
setPixelDouble(int x,
int y,
int band,
double px)
Set value into a single band of a pixel without changing the other bands.
|
protected void |
setRange(RangeInt range)
Does nothing because we know the range of an 8- or 16-bit image.
|
void |
showInfo()
Display information about the current image in a dialogue.
|
Image[] |
splitIntensity()
Create a monochrome image in which each pixel has the value I = sum of the
band levels of the current image plus a colour image in which the pixel in
each band has the value maxLevel * bandLevel / I.
|
void |
subtract(Image other)
Subtract pixel values of other image from this image data array, raising
result by minimum possible so it is always positive.
|
void |
subtractToZero(Image other)
Subtract pixel values of other image from this image data array,
clipping negative results to zero.
|
ByteMask |
threshold(Threshold thresh)
Threshold the image to detect pixels in the range(s) specified by the
given threshold.
|
java.lang.String |
toFoldedString(java.lang.String lineEnd)
Return complete metadata in a form suitable for display.
|
void |
translate(double dx,
double dy)
Displace the image content by the given offset vector, interpolating
between pixels.
|
void |
translate(int dx,
int dy)
Displace the image content by the given offset vector, a whole number
of pixels.
|
void |
varianceFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
Replace every pixel in the image by the variance of its n x n
neighbourhood, where n = 2.halfWidth + 1.
|
applyCurve, compareTo, createImage, createImage, getCalibration, getEv, getFilePath, getGraphicsConfiguration, pixelBrighter, pixelBrighter, pixelsDiffer, pixelsDiffer, plotResponseCurve, recombine, rotate, rotate180, rotate270, rotate90, sameBitsAndBands, sameSizeBitsAndBands, saturate, setCalibration, setEv, setFilePath, showInfo, swapQuadrantsequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitadd, applyCurve, convertToImage16, convertToImage32, convertToImage64, convertToImage8, getBytesPerChannel, getCalibration, getEv, getFilePath, gnomonicProjection, inverseGnomonicProjection, isRaw, plotResponseCurve, rotate, rotate180, rotate270, rotate90, saturate, setCalibration, setEv, setFilePath, splitChannels, swapQuadrants, toStringprotected java.awt.image.BufferedImage bim
protected int[] zeroPxInt
protected double[] zeroPxDouble
public java.awt.image.BufferedImage getBufferedImage()
public void setBufferedImage(java.awt.image.BufferedImage bim)
protected void checkCompatibility(java.awt.image.BufferedImage bim)
throws IncompatibleImageException
IncompatibleImageExceptionpublic void add(java.awt.image.BufferedImage bim2)
throws IncompatibleImageException
Imageadd in interface ImageIncompatibleImageExceptionpublic int[] addPixel(int x,
int y,
int[] px)
public void addProportion(Image other, double fractionThis, double fractionOther) throws IncompatibleImageException
addProportion in interface ImageIncompatibleImageExceptionpublic void addTranslated(java.awt.image.BufferedImage bim,
int dx,
int dy)
throws IncompatibleImageException
ImageaddTranslated in interface ImageIncompatibleImageExceptionpublic void addTranslated(java.awt.image.BufferedImage bim,
double dx,
double dy)
throws IncompatibleImageException
ImageaddTranslated in interface ImageIncompatibleImageExceptionpublic void autoCrop()
public void autoStretch(boolean allChannelsSame)
autoStretch in interface Imagepublic void autoStretch(boolean allChannelsSame,
java.awt.Point topLeft,
java.awt.Point bottomRight)
autoStretch in interface Imagepublic ByteMask autoThreshold()
autoThreshold in interface Imagepublic void averageVertically()
averageVertically in interface Imagepublic void averageVertically(int yMin,
int yMax)
averageVertically in interface Imagepublic void blurGaussian(int nx,
int ny,
javax.swing.ProgressMonitor monitor)
blurGaussian in interface Imagepublic abstract Image clone()
public void convertToMonochrome()
convertToMonochrome in interface Imagepublic void convertToMonochrome(double... f)
convertToMonochrome in interface Imagepublic void convolve(Kernel kernel, javax.swing.ProgressMonitor monitor)
public void convolve(double[] horz,
double[] vert,
javax.swing.ProgressMonitor monitor)
public void correctBackground(double scale,
int cellFactor)
correctBackground in interface Imagepublic void crop(java.awt.Point pt1,
java.awt.Point pt2)
public void deconvolve(Kernel kernel, int nPasses, double weight, javax.swing.ProgressMonitor monitor)
deconvolve in interface Imagepublic void dispose()
Imagepublic void divide(int n)
public void divideByFlatField(Image flat)
divideByFlatField in interface Imagepublic void drawRim(int width,
java.awt.Color colour)
public void fit(int width,
int height)
public void flipHorizontal()
flipHorizontal in interface Imagepublic void flipVertical()
flipVertical in interface Imagepublic int getBitsPerChannel()
ImagegetBitsPerChannel in interface ImagegetBitsPerChannel in class ImageBasepublic static int getBitsPerChannel(java.awt.image.BufferedImage bimage)
public RangeInt[] getChannelRanges()
ImagegetChannelRanges in interface Imagepublic RangeDouble[] getChannelRangesDouble()
ImagegetChannelRangesDouble in interface Imagepublic int getHeight()
Imagepublic java.lang.String getImageTypeAsString()
getImageTypeAsString in interface Imagepublic static java.lang.String getImageTypeAsString(java.awt.image.BufferedImage bimage)
public int getMaxLevel()
getMaxLevel in interface Imagepublic static int getMaxLevel(java.awt.image.BufferedImage bimage)
public Metadata getMetadata()
ImageBasegetMetadata in interface ImagegetMetadata in class ImageBasepublic int getNBands()
Imagepublic static int getNBands(java.awt.image.BufferedImage bim)
public RangeInt getRangeByRescanning()
ImagegetRangeByRescanning in interface Imagepublic RangeDouble getRangeByRescanningDouble()
ImagegetRangeByRescanningDouble in interface Imagepublic int[] getPixel(int x,
int y)
Imagepublic double[] getPixelDouble(int x,
int y)
ImagegetPixelDouble in interface Imagepublic double[] getPixelDoubleInterpolated(double x,
double y)
ImagegetPixelDoubleInterpolated in interface Imagepublic int[] getPixelInterpolated(double x,
double y)
ImagegetPixelInterpolated in interface Imagepublic RangeInt getRange()
ImageBasepublic RangeDouble getRangeDouble()
ImagegetRangeDouble in interface Imagepublic int getWidth()
Imagepublic java.awt.image.BufferedImage gnomonicProjection(java.awt.image.BufferedImage src,
int focalLength_mm,
double detectorWidth_mm,
double detectorHeight_mm)
protected java.awt.image.BufferedImage inverseGnomonicProjection(java.awt.image.BufferedImage src,
int focalLength_mm,
double detectorWidth_mm,
double detectorHeight_mm)
public void invert()
public void keepOnlyDifferingPixels(Image other, int threshold)
keepOnlyDifferingPixels in interface Imagepublic void meanFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
meanFilter in interface Imagepublic void medianFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
medianFilter in interface Imagepublic void multiply(double f)
public void multiply(Image other)
public void multiply(Image other, double f1, double f2)
public void nearestExtremeFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
nearestExtremeFilter in interface Imagepublic void neutraliseBackground()
ImageneutraliseBackground in interface Imagepublic void rankFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
rankFilter in interface Imagepublic void reapplyColour(Image intensityImage, Image colourImage)
ImagereapplyColour in interface Imagepublic void replaceBrighterPixels(Image source)
replaceBrighterPixels in interface Imagepublic void rotate(Angle a)
public void save(java.lang.String filePath)
public void save(java.lang.String filePath,
RangeInt range)
public void save(java.lang.String filePath,
RangeDouble range)
public void saveAsFITS(java.lang.String filePath)
saveAsFITS in interface Imagepublic void scale(double factor,
boolean interpolating)
public void scale(double factor,
boolean interpolating,
java.awt.Point centre)
public java.awt.image.BufferedImage scaleDownForDisplay(int factor)
scaleDownForDisplay in interface Imagepublic void set(java.awt.image.BufferedImage bim)
throws IncompatibleImageException
Imageset in interface ImageIncompatibleImageExceptionpublic void setMetadata(Metadata theData)
ImageBasesetMetadata in interface ImagesetMetadata in class ImageBasepublic void setPixel(int x,
int y,
int[] px)
Imagepublic void setPixel(int x,
int y,
int band,
int px)
Imagepublic void setPixelDouble(int x,
int y,
double[] px)
ImagesetPixelDouble in interface Imagepublic void setPixelDouble(int x,
int y,
int band,
double px)
ImagesetPixelDouble in interface Imageprotected void setRange(RangeInt range)
public void showInfo()
public Image[] splitIntensity()
splitIntensity in interface Imagepublic void subtract(Image other) throws IncompatibleImageException
subtract in interface ImageIncompatibleImageExceptionpublic void subtractToZero(Image other) throws IncompatibleImageException
subtractToZero in interface ImageIncompatibleImageExceptionpublic ByteMask threshold(Threshold thresh)
public void translate(int dx,
int dy)
public void translate(double dx,
double dy)
public void varianceFilter(int halfWidth,
javax.swing.ProgressMonitor monitor)
varianceFilter in interface Imagepublic java.lang.String toFoldedString(java.lang.String lineEnd)
ImagetoFoldedString in interface Image