docs: public static <Input extends ImageGray<Input>, Output extends ImageGray<Output>>
  	GenericConvolveDown<Input,Output>
  	convolveSB(Kernel2D kernel, BorderType border, int skip, Class<Input> inputType, Class<Output> outputType)
  	{
  		outputType = BoofTesting.convertToGenericType(outputType);
  
  		Method m;
  		try {
  			switch( border ) {
  				case SKIP:
  					m = ConvolveImageDownNoBorder.class.getMethod(
  							"convolve",kernel.getClass(),inputType,outputType,int.class);
  					break;
  
  				case EXTENDED:
  					throw new IllegalArgumentException("Extended border is currently not supported.");
  
  				case NORMALIZED:
  					m = ConvolveImageDownNormalized.class.getMethod(
  							"convolve",kernel.getClass(),inputType,outputType,int.class);
  					break;
  
  				default:
  					throw new IllegalArgumentException("Unknown border type "+border);
  
  			}
  		} catch (NoSuchMethodException e) {
  			throw new IllegalArgumentException("The specified convolution cannot be found");
  		}
  
  		return new GenericConvolveDown<>(m, kernel, border, skip, ImageType.single(inputType), ImageType.single(outputType));
  	}