public static <T extends ImageGray<T>>
	DescribeRegionPoint<T,TupleDesc_B> brief( @Nullable ConfigBrief config , Class<T> imageType)
	{
		if( config == null )
			config = new ConfigBrief();
		config.checkValidity();

		BlurFilter<T> filter = FactoryBlurFilter.gaussian(ImageType.single(imageType),config.blurSigma,config.blurRadius);
		BinaryCompareDefinition_I32 definition =
				FactoryBriefDefinition.gaussian2(new Random(123), config.radius, config.numPoints);

		if( config.fixed) {
			return new WrapDescribeBrief<>(FactoryDescribePointAlgs.brief(definition, filter), imageType);
		} else {
			return new WrapDescribeBriefSo<>(FactoryDescribePointAlgs.briefso(definition, filter), imageType);
		}
	}
public static < T extends ImageGray < T > > DescribeRegionPoint < T , TupleDesc_B > brief ( @ Nullable ConfigBrief config , Class < T > imageType ) { if ( config == null ) config = new ConfigBrief ( ) ; config . checkValidity ( ) ; BlurFilter < T > filter = FactoryBlurFilter . gaussian ( ImageType . single ( imageType ) , config . blurSigma , config . blurRadius ) ; BinaryCompareDefinition_I32 definition = FactoryBriefDefinition . gaussian2 ( new Random ( 123 ) , config . radius , config . numPoints ) ; if ( config . fixed ) { return new WrapDescribeBrief < > ( FactoryDescribePointAlgs . brief ( definition , filter ) , imageType ) ; } else { return new WrapDescribeBriefSo < > ( FactoryDescribePointAlgs . briefso ( definition , filter ) , imageType ) ; } }
<p>
Creates a BRIEF descriptor.
</p>

@see boofcv.alg.feature.describe.DescribePointBrief
@see boofcv.alg.feature.describe.DescribePointBriefSO

@param config Configuration for BRIEF descriptor.  If null then default is used.
@param imageType Type of gray scale image it processes.
@return BRIEF descriptor