Class AlgorithmRemoveSlices

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable, java.util.EventListener

    public class AlgorithmRemoveSlices
    extends AlgorithmBase
    Algorithm verifies the z-th slice should be in included in the destination image, as defined in the list, remove. It copies the slice from the srcImage img to a buffer, and then from the buffer into the destination img. Copies the srcImage file info to a buffer and makes it conform to the new img, then copies it into the destImage file.

    Note that an image is a set of slices; each slice is XxY, with Z slices.**(as of 1 Nov, does not yet process the more complicated DICOM images Completely)

    Version:
    v0.11 1 Nov 1999 (processes most images)
    Author:
    David Parsons (parsonsd@cbel.cit.nih.gov) (with vast help from M.McAuliffe)
    See Also:
    JDialogRemoveSlices
    • Field Detail

      • oldZdim

        private int oldZdim
        Original Z dimension of the image.
      • remove

        private boolean[] remove
        List of slices to remove from source image.
      • sliceArea

        private int sliceArea
        Area of a slice (Xdim * Ydim).
      • Xdim

        private int Xdim
        X dimension of the image.
      • Ydim

        private int Ydim
        Y dimension of the image.
    • Constructor Detail

      • AlgorithmRemoveSlices

        public AlgorithmRemoveSlices​(ModelImage srcImage,
                                     ModelImage destImage,
                                     boolean[] removeSlices)
        Import source and destination images into the class.
        Parameters:
        srcImage - source image (image to clip from)
        destImage - destination image (image to paste to)
        removeSlices - list of boolean indicating which slices in source should *not* be in the destination
    • Method Detail

      • updateFileInfo

        public static void updateFileInfo​(ModelImage image,
                                          ModelImage resultImage)
        Copy important file information to resultant image structure.
        Parameters:
        image - Source image.
        resultImage - Resultant image.
      • calcInPlace

        public void calcInPlace()
        Calculates the final output and stores it in the source image.
      • calcStoreInDest

        public void calcStoreInDest()
        Calculates the final output and puts it in a destination image.
      • finalize

        public void finalize()
        Prepares this class for destruction.
        Overrides:
        finalize in class AlgorithmBase
      • getAxisOfChange

        protected int getAxisOfChange()
                               throws java.lang.Exception
        Calculates and returns the axis of change based on the srcImage. The default (for most images) is 2. DICOM images need to be checked.
        Returns:
        DOCUMENT ME!
        Throws:
        java.lang.Exception - DOCUMENT ME!
      • getColorFactor

        protected int getColorFactor()
        Calculates and returns the color factor based on the srcImage.
        Returns:
        DOCUMENT ME!
      • computeNewExtents

        private int[] computeNewExtents()
        Calculates and returns the new extents based on the source image and the list of slices to be removed.
        Returns:
        DOCUMENT ME!
      • getNumRemoved

        private int getNumRemoved()
        computes and returns the number of slices to remove.
        Returns:
        DOCUMENT ME!
      • getOffset

        private int getOffset​(ModelImage img,
                              int colorFactor,
                              int t)
        Calculate and return the offset for the given image and time slice.
        Parameters:
        img - -- ModelImage whose offset is being computed
        colorFactor - -- the image's colorFactor
        t - -- current time slice
        Returns:
        -- the computed offset into the data buffer
      • getOffset

        private int getOffset​(int ndims,
                              int[] extents,
                              int colorFactor,
                              int t)
        Calculate and return the offset for the given image and time slice.
        Parameters:
        ndims - -- number of dimensions
        extents - -- the extents for the image offset
        colorFactor - -- the image's colorFactor
        t - -- current time slice
        Returns:
        -- the computed offset into the data buffer
      • getSliceFileInfo

        private FileInfoBase getSliceFileInfo​(int srcSlice,
                                              int destSlice,
                                              int t,
                                              int[] newExtents)
        Build and return the fileInfo for the current slice based on the source slice, the destination slice and time slice.
        Parameters:
        srcSlice - the current slice index for the src image
        destSlice - the current slice index for the result (dest) image
        t - current time slice
        newExtents - the extents for the result (dest) image
        Returns:
        the fileInfo for destSlice