Class SIFTImageSimilarity

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

    public class SIFTImageSimilarity
    extends AlgorithmBase
    • Field Detail

      • sigma

        private double sigma
      • num_intervals

        private int num_intervals
      • assumed_blur

        private double assumed_blur
      • image_border_width

        private int image_border_width
      • tolerance

        private double tolerance
      • logFile

        private java.lang.String logFile
      • logger

        java.util.logging.Logger logger
      • descriptors1

        private java.util.Vector<java.util.Vector<java.lang.Double>> descriptors1
      • descriptors2

        private java.util.Vector<java.util.Vector<java.lang.Double>> descriptors2
    • Constructor Detail

      • SIFTImageSimilarity

        public SIFTImageSimilarity()
      • SIFTImageSimilarity

        public SIFTImageSimilarity​(ModelImage image1,
                                   ModelImage image2,
                                   double sigma,
                                   int num_intervals,
                                   double assumed_blur,
                                   int image_border_width,
                                   java.lang.String logFile)
    • Method Detail

      • 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​(java.util.Vector<java.util.Vector<java.lang.Double>> src1,
                                   java.util.Vector<java.util.Vector<java.lang.Double>> src2,
                                   double[][] dist,
                                   int[][] nidx,
                                   int normType,
                                   int K,
                                   java.util.Vector<java.lang.Double> mask,
                                   int update,
                                   boolean crosscheck)
      • BatchDistInvoker

        private void BatchDistInvoker​(java.util.Vector<java.util.Vector<java.lang.Double>> src1,
                                      java.util.Vector<java.util.Vector<java.lang.Double>> src2,
                                      double[][] dist,
                                      int[][] nidx,
                                      int K,
                                      java.util.Vector<java.lang.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)
      • findScaleSpaceExtrema

        private java.util.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)
      • generateDescriptors

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