net.grelf.grip
Class Accumulator64

java.lang.Object
  extended by net.grelf.image.ImageBase
      extended by net.grelf.image.Image64
          extended by net.grelf.grip.Accumulator64
All Implemented Interfaces:
java.lang.Cloneable, Accumulator, Image

public class Accumulator64
extends Image64
implements Accumulator

This is a 64-bits-per-channel floating point Accumulator.


Field Summary
 
Fields inherited from class net.grelf.image.Image64
data
 
Fields inherited from class net.grelf.image.ImageBase
metadata
 
Constructor Summary
Accumulator64(java.awt.image.BufferedImage bim)
          Use the BufferedImage to set the width, height and number of bands (channels) in this Image.
Accumulator64(int width, int height, int nBands)
          Creates image without setting any pixels.
Accumulator64(int width, int height, int nBands, boolean fillWithZeroes)
          Creates image with pixels optionally set to zero.
 
Method Summary
 void addWithStarBoost(Image8or16Base image, int starBoostFactor)
          For accumulating star trails.
 boolean averageShiftAccumulate(Image8or16Base image, int imNo, int middleImNo, java.util.List<MatchPair> matches, BlobMeas[][] lookup, int nBrightest)
          For image imNo of a sequence, add the pixel values into the accumulator but first shift the image so that matched point pairs are superimposed.
 boolean brightestShiftAccumulate(Image8or16Base image, int imNo, int middleImNo, java.util.List<PointFloat> centres)
          For image imNo of a sequence, add the pixel values into the accumulator but first shift the image so that brightest objects in this image and the middle image of the sequence are superimposed.
9.11.26: changed last parameter from BlobMeas [][] lookup.
 boolean warpAccumulate(Image8or16Base image, int imNo, int middleImNo, java.util.List<MatchPair> matches, BlobMeas[][] lookup, int nBrightest)
          For image imNo of a sequence, add the pixel values into the accumulator but first distort the image so that matched point pairs are superimposed.
 
Methods inherited from class net.grelf.image.Image64
add, add, add, addProportion, addTranslated, addTranslated, applyCurve, applyCurveDouble, autoCrop, autoStretch, autoStretch, autoThreshold, averageVertically, averageVertically, blurGaussian, checkCompatibility, clone, convertToImage16, convertToImage32, convertToImage64, convertToImage8, convertToMonochrome, convertToMonochrome, convolve, convolve, correctBackground, crop, deconvolve, dispose, divide, divideByFlatField, drawRim, fit, flipHorizontal, flipVertical, getBitsPerChannel, getChannelRanges, getChannelRangesDouble, getHeight, getHorizontalSamplesDouble, getImageTypeAsString, getNBands, getPixel, getPixelDouble, getPixelDoubleInterpolated, getPixelInterpolated, getRange, getRangeByRescanning, getRangeByRescanningDouble, getRangeDouble, getVerticalSamplesDouble, getWidth, gnomonicProjection, inverseGnomonicProjection, invert, isRaw, meanFilter, medianFilter, multiply, multiply, multiply, nearestExtremeFilter, neutraliseBackground, rankFilter, reapplyColour, rotate, save, save, save, saveAsFITS, scale, scaleDownForDisplay, set, setPixel, setPixel, setPixelDouble, setPixelDouble, setRangeDouble, showInfo, splitChannels, subtract, subtractToZero, threshold, toFoldedString, toString, translate, translate, varianceFilter
 
Methods inherited from class net.grelf.image.ImageBase
createImage, createImage, getCalibration, getFilePath, getGraphicsConfiguration, getMetadata, recombine, sameBitsAndBands, sameSizeBitsAndBands, setCalibration, setFilePath, setMetadata, showInfo
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.grelf.image.Image
add, add, addProportion, addTranslated, addTranslated, applyCurve, autoCrop, autoStretch, autoStretch, autoThreshold, averageVertically, averageVertically, blurGaussian, clone, convertToImage16, convertToImage32, convertToImage64, convertToImage8, convertToMonochrome, convertToMonochrome, convolve, convolve, correctBackground, crop, deconvolve, dispose, divide, divideByFlatField, drawRim, fit, flipHorizontal, flipVertical, getBitsPerChannel, getCalibration, getChannelRanges, getChannelRangesDouble, getFilePath, getHeight, getImageTypeAsString, getMetadata, getNBands, getPixel, getPixelDouble, getPixelDoubleInterpolated, getPixelInterpolated, getRange, getRangeByRescanning, getRangeByRescanningDouble, getRangeDouble, getWidth, gnomonicProjection, inverseGnomonicProjection, invert, isRaw, meanFilter, medianFilter, multiply, multiply, multiply, nearestExtremeFilter, neutraliseBackground, rankFilter, reapplyColour, rotate, save, save, save, saveAsFITS, scale, scaleDownForDisplay, set, setCalibration, setFilePath, setMetadata, setPixel, setPixel, setPixelDouble, setPixelDouble, showInfo, splitChannels, subtract, subtractToZero, threshold, toFoldedString, toString, translate, translate, varianceFilter
 

Constructor Detail

Accumulator64

public Accumulator64(int width,
                     int height,
                     int nBands)
Creates image without setting any pixels.


Accumulator64

public Accumulator64(int width,
                     int height,
                     int nBands,
                     boolean fillWithZeroes)
Creates image with pixels optionally set to zero.


Accumulator64

public Accumulator64(java.awt.image.BufferedImage bim)
              throws IncompatibleImageException
Use the BufferedImage to set the width, height and number of bands (channels) in this Image. Populate the pixel values in the image data array from the BufferedImage also.

Throws:
IncompatibleImageException
Method Detail

brightestShiftAccumulate

public boolean brightestShiftAccumulate(Image8or16Base image,
                                        int imNo,
                                        int middleImNo,
                                        java.util.List<PointFloat> centres)
                                 throws IncompatibleImageException
For image imNo of a sequence, add the pixel values into the accumulator but first shift the image so that brightest objects in this image and the middle image of the sequence are superimposed.
9.11.26: changed last parameter from BlobMeas [][] lookup. The reason for this is that when matching on single bright objects we may mean the moon, nearly filling the image, in which case we would run out of memory if holding all details of that for every image in a sequence.

Specified by:
brightestShiftAccumulate in interface Accumulator
Throws:
IncompatibleImageException

averageShiftAccumulate

public boolean averageShiftAccumulate(Image8or16Base image,
                                      int imNo,
                                      int middleImNo,
                                      java.util.List<MatchPair> matches,
                                      BlobMeas[][] lookup,
                                      int nBrightest)
                               throws IncompatibleImageException
For image imNo of a sequence, add the pixel values into the accumulator but first shift the image so that matched point pairs are superimposed. Use the average translation vector from all matched objects.

Specified by:
averageShiftAccumulate in interface Accumulator
Throws:
IncompatibleImageException

warpAccumulate

public boolean warpAccumulate(Image8or16Base image,
                              int imNo,
                              int middleImNo,
                              java.util.List<MatchPair> matches,
                              BlobMeas[][] lookup,
                              int nBrightest)
                       throws IncompatibleImageException
For image imNo of a sequence, add the pixel values into the accumulator but first distort the image so that matched point pairs are superimposed. Return false if not able to warp the image.

Specified by:
warpAccumulate in interface Accumulator
Throws:
IncompatibleImageException

addWithStarBoost

public void addWithStarBoost(Image8or16Base image,
                             int starBoostFactor)
                      throws IncompatibleImageException
For accumulating star trails. The starBoostFactor should be something like the number of images being accumulated.

Specified by:
addWithStarBoost in interface Accumulator
Throws:
IncompatibleImageException