docs: public static  <T extends ImageGray<T>>
  	SquareImage_to_FiducialDetector<T> squareImage( @Nullable ConfigFiducialImage configFiducial,
  													@Nullable ConfigThreshold configThreshold,
  													Class<T> imageType )
  	{
  		if( configFiducial == null ) {
  			configFiducial = new ConfigFiducialImage();
  		}
  
  		if( configThreshold == null ) {
  			configThreshold = ConfigThreshold.local(ThresholdType.LOCAL_MEAN,21);
  		}
  
  		configFiducial.squareDetector.detector.clockwise = false;
  
  		InputToBinary<T> binary = FactoryThresholdBinary.threshold(configThreshold, imageType);
  		DetectPolygonBinaryGrayRefine<T> squareDetector =
  				FactoryShapeDetector.polygon(configFiducial.squareDetector, imageType);
  		DetectFiducialSquareImage<T> alg = new DetectFiducialSquareImage<>(binary,
  				squareDetector, configFiducial.borderWidthFraction, configFiducial.minimumBlackBorderFraction,
  				configFiducial.maxErrorFraction, imageType);
  
  		return new SquareImage_to_FiducialDetector<>(alg);
  	}