Package skyview.process.deedger
Class BoundaryMedian
- java.lang.Object
-
- skyview.process.deedger.BoundaryMedian
-
- All Implemented Interfaces:
Serializable
,Component
,Processor
public class BoundaryMedian extends Object implements Processor
This class adjusts the 0 point for data taken from multiple images to try to minize edge effects. The alogithm used in this version is as follows:- Find all of the 'edge' pixels in the image
and compute the jump over the edge.
- We determine the edge pixels by looking at the source images of pixels which differ by one in the x or y dimension. We sweep in both directions
- The jump is simply the change in value between the two pixels.
- Add the jump to the list of jumps between the two input images involved. Increment a matrix counting jumps between image pairs.
- Find the median jump for each pair of adjacent images. This will be used as the offset between these two images.
- Create an absolute offset array with a NaN offset for each input image.
- Find the source image which has the maximum number of pixels in the output image. Make this the base image with an absolute offset of 0.
- Consider the source images in two sets: the set for which an offset has been defined, and a set for which it has not. Initially only the base image is in the first set and all others are in the undefined set.
- Find the largest entry in the counts matrix where the row corresponds to an image with a defined offset, and the column corresponds to an image with an undefined offset.
- Set the offset of the undefined images as the offset of the defined image plus their relative offset.
- Iterate until all input images have an offset defined. If there are too few pixels in a boundary skip it.
- Apply the calculated offsets to the appropriate pixels of the input image.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BoundaryMedian()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getDescription()
Get a description of this objectString
getName()
Get a name for this objectvoid
process(Image[] inputs, Image output, int[] source, Sampler samp, DepthSampler dsamp)
Initialize the de-edger.void
updateHeader(nom.tam.fits.Header h)
Update a FITS header with the processing done here.
-
-
-
Method Detail
-
getName
public String getName()
Get a name for this object
-
getDescription
public String getDescription()
Get a description of this object- Specified by:
getDescription
in interfaceComponent
-
process
public void process(Image[] inputs, Image output, int[] source, Sampler samp, DepthSampler dsamp)
Initialize the de-edger.
-
updateHeader
public void updateHeader(nom.tam.fits.Header h)
Update a FITS header with the processing done here.- Specified by:
updateHeader
in interfaceProcessor
-
-