docs: public static <T extends ImageGray<T>>
  	SquareBinary_to_FiducialDetector<T> squareBinary( ConfigFiducialBinary configFiducial,
  													  @Nullable ConfigThreshold configThreshold,
  													  Class<T> imageType ) {
  
  		if( configThreshold == null ) {
  			configThreshold = ConfigThreshold.local(ThresholdType.LOCAL_MEAN,21);
  		}
  
  		configFiducial.checkValidity();
  
  		final InputToBinary<T> binary = FactoryThresholdBinary.threshold(configThreshold, imageType);
  		final DetectPolygonBinaryGrayRefine<T> squareDetector = FactoryShapeDetector.
  				polygon(configFiducial.squareDetector,imageType);
  
  		final DetectFiducialSquareBinary<T> alg =
  				new DetectFiducialSquareBinary<>(configFiducial.gridWidth,
  						configFiducial.borderWidthFraction, configFiducial.minimumBlackBorderFraction,
  						binary, squareDetector, imageType);
  		alg.setAmbiguityThreshold(configFiducial.ambiguousThreshold);
  		return new SquareBinary_to_FiducialDetector<>(alg, configFiducial.targetWidth);
  	}