List of usage examples for org.apache.commons.math.distribution NormalDistributionImpl NormalDistributionImpl
public NormalDistributionImpl(double mean, double sd, double inverseCumAccuracy)
From source file:org.smurn.jsift.GaussianFilter.java
/** * Builds a one dimensional gaussian kernel. * @param sigma Standard deviation of the kernel. * @return Discretized kernel. Array length is odd, kernel is centered. */// www . j av a2s .c o m private static double[] buildKernel(final double sigma) { int windowSize = (int) Math.ceil(WINDOW_SIZE_FACTOR * sigma); NormalDistributionImpl ndist = new NormalDistributionImpl(0.0, sigma, PRECISION); double[] kernel = new double[2 * windowSize + 1]; double sum = 0; try { for (int i = 0; i < kernel.length; i++) { double x = i - windowSize; kernel[i] = ndist.cumulativeProbability(x - 0.5, x + 0.5); sum += kernel[i]; } } catch (MathException ex) { throw new RuntimeException(ex); } for (int i = 0; i < kernel.length; i++) { kernel[i] /= sum; } return kernel; }