code: public static <T extends ImageGray<T>>
  	T convolveBorder( T integral ,
  					  IntegralKernel kernel,
  					  T output , int borderX , int borderY ) {
  		if( integral instanceof GrayF32) {
  			return (T)IntegralImageOps.convolveBorder((GrayF32)integral,kernel,(GrayF32)output,borderX,borderY);
  		} else if( integral instanceof GrayF64) {
  			return (T)IntegralImageOps.convolveBorder((GrayF64)integral,kernel,(GrayF64)output,borderX,borderY);
  		} else if( integral instanceof GrayS32) {
  			return (T)IntegralImageOps.convolveBorder((GrayS32)integral,kernel,(GrayS32)output,borderX,borderY);
  		} else if( integral instanceof GrayS64) {
  			return (T)IntegralImageOps.convolveBorder((GrayS64)integral,kernel,(GrayS64)output,borderX,borderY);
  		} else {
  			throw new IllegalArgumentException("Unknown input type");
  		}
  	}
docs: Convolves the kernel only across the image's border.
  
  @param integral Integral image. Not modified.
  @param kernel Convolution kernel.
  @param output The convolved image. If null a new image will be created. Modified.
  @param borderX Size of the image border along the horizontal axis.
  @param borderY size of the image border along the vertical axis.