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, swapQuadrants
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
add, applyCurve, convertToImage16, convertToImage32, convertToImage64, convertToImage8, getBytesPerChannel, getCalibration, getEv, getFilePath, gnomonicProjection, inverseGnomonicProjection, isRaw, plotResponseCurve, rotate, rotate180, rotate270, rotate90, saturate, setCalibration, setEv, setFilePath, splitChannels, swapQuadrants, toString
protected 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
IncompatibleImageException
public void add(java.awt.image.BufferedImage bim2) throws IncompatibleImageException
Image
add
in interface Image
IncompatibleImageException
public int[] addPixel(int x, int y, int[] px)
public void addProportion(Image other, double fractionThis, double fractionOther) throws IncompatibleImageException
addProportion
in interface Image
IncompatibleImageException
public void addTranslated(java.awt.image.BufferedImage bim, int dx, int dy) throws IncompatibleImageException
Image
addTranslated
in interface Image
IncompatibleImageException
public void addTranslated(java.awt.image.BufferedImage bim, double dx, double dy) throws IncompatibleImageException
Image
addTranslated
in interface Image
IncompatibleImageException
public void autoCrop()
public void autoStretch(boolean allChannelsSame)
autoStretch
in interface Image
public void autoStretch(boolean allChannelsSame, java.awt.Point topLeft, java.awt.Point bottomRight)
autoStretch
in interface Image
public ByteMask autoThreshold()
autoThreshold
in interface Image
public void averageVertically()
averageVertically
in interface Image
public void averageVertically(int yMin, int yMax)
averageVertically
in interface Image
public void blurGaussian(int nx, int ny, javax.swing.ProgressMonitor monitor)
blurGaussian
in interface Image
public abstract Image clone()
public void convertToMonochrome()
convertToMonochrome
in interface Image
public void convertToMonochrome(double... f)
convertToMonochrome
in interface Image
public 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 Image
public 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 Image
public void dispose()
Image
public void divide(int n)
public void divideByFlatField(Image flat)
divideByFlatField
in interface Image
public void drawRim(int width, java.awt.Color colour)
public void fit(int width, int height)
public void flipHorizontal()
flipHorizontal
in interface Image
public void flipVertical()
flipVertical
in interface Image
public int getBitsPerChannel()
Image
getBitsPerChannel
in interface Image
getBitsPerChannel
in class ImageBase
public static int getBitsPerChannel(java.awt.image.BufferedImage bimage)
public RangeInt[] getChannelRanges()
Image
getChannelRanges
in interface Image
public RangeDouble[] getChannelRangesDouble()
Image
getChannelRangesDouble
in interface Image
public int getHeight()
Image
public java.lang.String getImageTypeAsString()
getImageTypeAsString
in interface Image
public static java.lang.String getImageTypeAsString(java.awt.image.BufferedImage bimage)
public int getMaxLevel()
getMaxLevel
in interface Image
public static int getMaxLevel(java.awt.image.BufferedImage bimage)
public Metadata getMetadata()
ImageBase
getMetadata
in interface Image
getMetadata
in class ImageBase
public int getNBands()
Image
public static int getNBands(java.awt.image.BufferedImage bim)
public RangeInt getRangeByRescanning()
Image
getRangeByRescanning
in interface Image
public RangeDouble getRangeByRescanningDouble()
Image
getRangeByRescanningDouble
in interface Image
public int[] getPixel(int x, int y)
Image
public double[] getPixelDouble(int x, int y)
Image
getPixelDouble
in interface Image
public double[] getPixelDoubleInterpolated(double x, double y)
Image
getPixelDoubleInterpolated
in interface Image
public int[] getPixelInterpolated(double x, double y)
Image
getPixelInterpolated
in interface Image
public RangeInt getRange()
ImageBase
public RangeDouble getRangeDouble()
Image
getRangeDouble
in interface Image
public int getWidth()
Image
public 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 Image
public void meanFilter(int halfWidth, javax.swing.ProgressMonitor monitor)
meanFilter
in interface Image
public void medianFilter(int halfWidth, javax.swing.ProgressMonitor monitor)
medianFilter
in interface Image
public 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 Image
public void neutraliseBackground()
Image
neutraliseBackground
in interface Image
public void rankFilter(int halfWidth, javax.swing.ProgressMonitor monitor)
rankFilter
in interface Image
public void reapplyColour(Image intensityImage, Image colourImage)
Image
reapplyColour
in interface Image
public void replaceBrighterPixels(Image source)
replaceBrighterPixels
in interface Image
public 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 Image
public 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 Image
public void set(java.awt.image.BufferedImage bim) throws IncompatibleImageException
Image
set
in interface Image
IncompatibleImageException
public void setMetadata(Metadata theData)
ImageBase
setMetadata
in interface Image
setMetadata
in class ImageBase
public void setPixel(int x, int y, int[] px)
Image
public void setPixel(int x, int y, int band, int px)
Image
public void setPixelDouble(int x, int y, double[] px)
Image
setPixelDouble
in interface Image
public void setPixelDouble(int x, int y, int band, double px)
Image
setPixelDouble
in interface Image
protected void setRange(RangeInt range)
public void showInfo()
public Image[] splitIntensity()
splitIntensity
in interface Image
public void subtract(Image other) throws IncompatibleImageException
subtract
in interface Image
IncompatibleImageException
public void subtractToZero(Image other) throws IncompatibleImageException
subtractToZero
in interface Image
IncompatibleImageException
public 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 Image
public java.lang.String toFoldedString(java.lang.String lineEnd)
Image
toFoldedString
in interface Image