Class SIFTImageSimilarity

java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.SIFTImageSimilarity
All Implemented Interfaces:
ActionListener, WindowListener, Runnable, EventListener

public class SIFTImageSimilarity extends AlgorithmBase
  • Field Details

  • Constructor Details

    • SIFTImageSimilarity

      public SIFTImageSimilarity()
    • SIFTImageSimilarity

      public SIFTImageSimilarity(ModelImage image1, ModelImage image2, double sigma, int num_intervals, double assumed_blur, int image_border_width, String logFile)
  • Method Details

    • runAlgorithm

      public void runAlgorithm()
      Description copied from class: AlgorithmBase
      Actually runs the algorithm. Implemented by inheriting algorithms.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • batchDistance

      private void batchDistance(Vector<Vector<Double>> src1, Vector<Vector<Double>> src2, double[][] dist, int[][] nidx, int normType, int K, Vector<Double> mask, int update, boolean crosscheck)
    • BatchDistInvoker

      private void BatchDistInvoker(Vector<Vector<Double>> src1, Vector<Vector<Double>> src2, double[][] dist, int[][] nidx, int K, Vector<Double> mask, int update)
    • computeKeypointsAndDescriptors

      public void computeKeypointsAndDescriptors(ModelImage image, boolean doimage1)
    • generateBaseImage

      private ModelImage generateBaseImage(ModelImage image, double sigma, double assumed_blur)
    • computeNumberOfOctaves

      private int computeNumberOfOctaves(int[] image_shape)
    • generateGaussianKernels

      private double[] generateGaussianKernels(double sigma, int num_intervals)
    • generateGaussianImages

      private ModelImage[][] generateGaussianImages(ModelImage image, int num_octaves, double[] gaussian_kernels)
    • generateDoGImages

      private ModelImage[][] generateDoGImages(ModelImage[][] gaussian_images)
    • findScaleSpaceExtrema

      private Vector<SIFTImageSimilarity.KeyPoint> findScaleSpaceExtrema(ModelImage[][] gaussian_images, ModelImage[][] dog_images, int num_intervals, double sigma, int image_border_width, double contrast_threshold)
    • isPixelAnExtremum

      private boolean isPixelAnExtremum(double[][][] subimages, double threshold)
    • localizeExtremumViaQuadraticFit

      private SIFTImageSimilarity.KeyPoint localizeExtremumViaQuadraticFit(int[] localized_image_index, int i, int j, int image_index, int octave_index, int num_intervals, ModelImage[] dog_images_in_octave, double sigma, double contrast_threshold, int image_border_width, double eigenvalue_ratio, int num_attempts_until_convergence)
    • computeGradientAtCenterPixel

      private double[] computeGradientAtCenterPixel(double[][][] pixel_array)
    • computeHessianAtCenterPixel

      private double[][] computeHessianAtCenterPixel(double[][][] pixel_array)
    • computeKeypointsWithOrientations

      private Vector<SIFTImageSimilarity.KeyPoint> computeKeypointsWithOrientations(SIFTImageSimilarity.KeyPoint keypoint, int octave_index, ModelImage gaussian_image, double radius_factor, int num_bins, double peak_ratio, double scale_factor)
    • removeDuplicateKeypoints

      private Vector<SIFTImageSimilarity.KeyPoint> removeDuplicateKeypoints(Vector<SIFTImageSimilarity.KeyPoint> keypoints)
    • convertKeypointsToInputImageSize

      private Vector<SIFTImageSimilarity.KeyPoint> convertKeypointsToInputImageSize(Vector<SIFTImageSimilarity.KeyPoint> keypoints)
    • unpackOctave

      private void unpackOctave(int[] octave, int[] layer, double[] scale, SIFTImageSimilarity.KeyPoint keypoint)
    • generateDescriptors

      private Vector<Vector<Double>> generateDescriptors(Vector<SIFTImageSimilarity.KeyPoint> keypoints, ModelImage[][] gaussian_images, int window_width, int num_bins, double scale_multiplier, double descriptor_max_value)