feature_extraction
Class SURFExtractor

java.lang.Object
  extended by feature_extraction.DescriptorExtractor
      extended by feature_extraction.SURFExtractor

public class SURFExtractor
extends DescriptorExtractor

This class implements SURF feature extraction using the BoofCV library.

Author:
Eleftherios Spyromitros-Xioufis

Field Summary
private  int maxFeaturesPerScale
          The maximum features extracted per scale.
private  int minFeatureIntensity
          The minimum intensity threshold.
private  boolean modified
          The type of SURF to extract.
 
Fields inherited from class feature_extraction.DescriptorExtractor
l2Normalization, powerNormalization, SIFTLength, SURFLength, totalNumberInterestPoints
 
Constructor Summary
SURFExtractor()
           
SURFExtractor(int maxFeaturesPerScale, int minFeatureIntensity, boolean modified)
           
 
Method Summary
private  double[][] easy(boofcv.struct.image.ImageFloat32 image)
          Use generalized interfaces for working with SURF.
 double[][] extractDescriptorsInternal(java.awt.image.BufferedImage image)
          Detects key points inside the image and computes descriptions at those points.
 
Methods inherited from class feature_extraction.DescriptorExtractor
extractDescriptors, getTotalExtractionTime, getTotalNumberInterestPoints, setL2Normalization, setPowerNormalization
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

modified

private boolean modified
The type of SURF to extract. If true the slower-more stable method is used instead of the faster-less stable.


maxFeaturesPerScale

private int maxFeaturesPerScale
The maximum features extracted per scale.


minFeatureIntensity

private int minFeatureIntensity
The minimum intensity threshold.

Constructor Detail

SURFExtractor

public SURFExtractor()
              throws java.lang.Exception
Throws:
java.lang.Exception

SURFExtractor

public SURFExtractor(int maxFeaturesPerScale,
                     int minFeatureIntensity,
                     boolean modified)
              throws java.lang.Exception
Throws:
java.lang.Exception
Method Detail

extractDescriptorsInternal

public double[][] extractDescriptorsInternal(java.awt.image.BufferedImage image)
                                      throws java.lang.Exception
Detects key points inside the image and computes descriptions at those points.

Specified by:
extractDescriptorsInternal in class DescriptorExtractor
Throws:
java.lang.Exception

easy

private double[][] easy(boofcv.struct.image.ImageFloat32 image)
Use generalized interfaces for working with SURF. This removes much of the drudgery, but also reduces flexibility and slightly increases memory and computational requirements.

Parameters:
image - Input image type. DOES NOT NEED TO BE ImageFloat32, ImageUInt8 works too