protected static Kernel2D_F64 gaussian2D_F64(double sigma, int radius, boolean normalize) { Kernel1D_F64 kernel1D = gaussian1D_F64(sigma, radius, false); Kernel2D_F64 ret = KernelMath.convolve(kernel1D, kernel1D); if (normalize) { KernelMath.normalizeSumToOne(ret); } return ret; }
protected static Kernel1D_F64 gaussian1D_F64(double sigma, int radius, boolean normalize) { Kernel1D_F64 ret = new Kernel1D_F64(radius * 2 + 1); double[] gaussian = ret.data; int index = 0; for (int i = radius; i >= -radius; i--) { gaussian[index++] = UtilGaussian.computePDF(0, sigma, i); } if (normalize) { KernelMath.normalizeSumToOne(ret); } return ret; }