code: public static SiftDetector sift( @Nullable ConfigSiftScaleSpace configSS , @Nullable ConfigSiftDetector configDetector ) {
  
  		if( configSS == null )
  			configSS = new ConfigSiftScaleSpace();
  
  		if( configDetector == null )
  			configDetector = new ConfigSiftDetector();
  
  		NonMaxLimiter nonmax = FactoryFeatureExtractor.nonmaxLimiter(
  				configDetector.extract,configDetector.maxFeaturesPerScale);
  		SiftScaleSpace ss = new SiftScaleSpace(configSS.firstOctave,configSS.lastOctave,
  				configSS.numScales,configSS.sigma0);
  		return new SiftDetector(ss,configDetector.edgeR,nonmax);
  	}
docs: Creates a SIFT detector