code: public static <T extends ImageGray<T>, TD extends TupleDesc>
  	DetectDescribePoint<T, TD> createFromComponents( Class<T> imageType ) {
  		// create a corner detector
  		Class derivType = GImageDerivativeOps.getDerivativeType(imageType);
  		GeneralFeatureDetector corner = FactoryDetectPoint.createShiTomasi(new ConfigGeneralDetector(1000,5,1), null, derivType);
  		InterestPointDetector detector = FactoryInterestPoint.wrapPoint(corner, 1, imageType, derivType);
  
  		// describe points using BRIEF
  		DescribeRegionPoint describe = FactoryDescribeRegionPoint.brief(new ConfigBrief(true), imageType);
  
  		// Combine together.
  		// NOTE: orientation will not be estimated
  		return FactoryDetectDescribe.fuseTogether(detector, null, describe);
  	}
docs: Any arbitrary implementation of InterestPointDetector, OrientationImage, DescribeRegionPoint
  can be combined into DetectDescribePoint.  The syntax is more complex, but the end result is more flexible.
  This should only be done if there isn't a pre-made DetectDescribePoint.