gaussianKernel1D method

Float32List gaussianKernel1D(
  1. double s,
  2. int? n
)

Generate a Gaussian kernel.

Returns a kernel of size N approximating a 1D Gaussian distribution with standard deviation S.

Implementation

Float32List gaussianKernel1D(double s, int? n) {
  n ??= 7;
  final kernel = Float32List(n);
  int halfN = (n * 0.5).floor();
  double odd = n % 2;
  int i = 0;

  if (s == 0 || n == 0) return kernel;
  for (i = 0; i <= halfN; i++) {
    kernel[i] = gauss(s * (i - halfN - odd * 0.5), s);
  }
  for (; i < n; i++) {
    kernel[i] = kernel[n - 1 - i];
  }
  return kernel;
}