code: public static <T extends ImageGray<T>, K extends Kernel2D>
  	K gaussian2D(Class<T> imageType, double sigma, int radius )
  	{
  		boolean isFloat = GeneralizedImageOps.isFloatingPoint(imageType);
  		int numBits = Math.max(32, GeneralizedImageOps.getNumBits(imageType));
  		return gaussian(2,isFloat, numBits, sigma,radius);
  	}
docs: Creates a 2D Gaussian kernel of the specified type.
  
  @param imageType The type of image which is to be convolved by this kernel.
  @param sigma The distributions stdev.  If &le; 0 then the sigma will be computed from the radius.
  @param radius Number of pixels in the kernel's radius.  If &le; 0 then the sigma will be computed from the sigma.
  @return The computed Gaussian kernel.