docs: public static <T extends ImageGray<T>>
  	InputToBinary<T> blockMean(ConfigLength regionWidth, double scale , boolean down, boolean thresholdFromLocalBlocks,
  							   Class<T> inputType) {
  		if( BOverrideFactoryThresholdBinary.blockMean != null )
  			return BOverrideFactoryThresholdBinary.blockMean.handle(regionWidth, scale, down,
  					thresholdFromLocalBlocks, inputType);
  
  		BlockProcessor processor;
  		if( inputType == GrayU8.class )
  			processor = new ThresholdBlockMean_U8(scale,down);
  		else
  			processor = new ThresholdBlockMean_F32((float)scale,down);
  
  		if( BoofConcurrency.USE_CONCURRENT ) {
  			return new ThresholdBlock_MT(processor, regionWidth, thresholdFromLocalBlocks, inputType);
  		} else {
  			return new ThresholdBlock(processor, regionWidth, thresholdFromLocalBlocks, inputType);
  		}
  	}