Class SuperimposedImage

  • Direct Known Subclasses:
    SuperimposedDicomImage

    public class SuperimposedImage
    extends java.lang.Object

    A class that supports matching the geometry of a superimposed image and an underlying images, and creating BufferedImages suitable for drawing on an underlying image.

    See Also:
    SingleImagePanel
    • Field Detail

      • DEFAULT_CLOSEST_SLICE_TOLERANCE_DISTANCE

        public static final double DEFAULT_CLOSEST_SLICE_TOLERANCE_DISTANCE
        See Also:
        Constant Field Values
      • superimposedSourceImage

        protected SourceImage superimposedSourceImage
      • cieLabScaled

        protected int[] cieLabScaled
    • Constructor Detail

      • SuperimposedImage

        protected SuperimposedImage()
      • SuperimposedImage

        public SuperimposedImage​(SourceImage superimposedSourceImage,
                                 GeometryOfVolume superimposedGeometry,
                                 int[] cieLabScaled)
        Parameters:
        superimposedSourceImage -
        superimposedGeometry -
        cieLabScaled -
      • SuperimposedImage

        public SuperimposedImage​(SourceImage superimposedSourceImage,
                                 GeometryOfVolume superimposedGeometry)
        Parameters:
        superimposedSourceImage -
        superimposedGeometry -
    • Method Detail

      • isSliceCloseEnoughToSuperimpose

        public static boolean isSliceCloseEnoughToSuperimpose​(GeometryOfSlice geometryOfSuperimposedSlice,
                                                              GeometryOfSlice geometryOfUnderlyingSlice,
                                                              double toleranceDistance)

        Is the superimposed slice close enough to the underlying slice to superimpose?

        Parameters:
        geometryOfSuperimposedSlice -
        geometryOfUnderlyingSlice -
        toleranceDistance - difference in distance along normal to orientation for underlying and superimposed frames to be close enough to superimpose, in mm
      • isSliceCloseEnoughToSuperimpose

        public static boolean isSliceCloseEnoughToSuperimpose​(GeometryOfSlice geometryOfSuperimposedSlice,
                                                              GeometryOfSlice geometryOfUnderlyingSlice)

        Is the superimposed slice close enough to the underlying slice to superimpose?

        Assumes a default tolerance factor that is close to zero but allows for floating point rounding error.

        Parameters:
        geometryOfSuperimposedSlice -
        geometryOfUnderlyingSlice -
      • getAppliedToUnderlyingImage

        public SuperimposedImage.AppliedToUnderlyingImage getAppliedToUnderlyingImage​(GeometryOfVolume underlyingGeometry,
                                                                                      int underlyingFrame,
                                                                                      double toleranceDistance)
        Parameters:
        underlyingGeometry -
        underlyingFrame - numbered from 0
        toleranceDistance - difference in distance along normal to orientation for underlying and superimposed frames to be close enough to superimpose, in mm
        Returns:
        an instance of AppliedToUnderlyingImage, which will contain a BufferedImage if a superimposed frame that is close enough can be found
      • getAppliedToUnderlyingImage

        public SuperimposedImage.AppliedToUnderlyingImage getAppliedToUnderlyingImage​(GeometryOfVolume underlyingGeometry,
                                                                                      int underlyingFrame)
        Parameters:
        underlyingGeometry -
        underlyingFrame - numbered from 0
        Returns:
        an instance of AppliedToUnderlyingImage, which will contain a BufferedImage if a superimposed frame that is close enough can be found
      • getIntegerScaledCIELabPCS

        public int[] getIntegerScaledCIELabPCS()