code: public static GrayF64 mean(GrayF64 input, @Nullable GrayF64 output, int radius,
  							   @Nullable GrayF64 storage, @Nullable DWorkArrays workVert) {
  
  		if( radius <= 0 )
  			throw new IllegalArgumentException("Radius must be > 0");
  
  		output = InputSanityCheck.checkDeclare(input,output);
  		storage = InputSanityCheck.checkDeclare(input,storage);
  
  		boolean processed = BOverrideBlurImageOps.invokeNativeMean(input, output, radius, storage);
  
  		if( !processed ){
  			ConvolveImageMean.horizontal(input, storage, radius);
  			ConvolveImageMean.vertical(storage, output, radius, workVert);
  		}
  
  		return output;
  	}
docs: Applies a mean box filter.
  
  @param input Input image.  Not modified.
  @param output (Optional) Storage for output image, Can be null.  Modified.
  @param radius Radius of the box blur function.
  @param storage (Optional) Storage for intermediate results.  Same size as input image.  Can be null.
  @return Output blurred image.