NodePipeline/NodePipeline.Application/ImageProcessing/GaussianKernel.cs
2026-01-02 20:55:25 +03:00

23 lines
554 B
C#

namespace NodePipeline.Application.ImageProcessing;
public static class GaussianKernel
{
public static float[] Create(int radius)
{
var size = radius * 2 + 1;
var kernel = new float[size];
var sigma = radius / 2f;
float sum = 0;
for (var i = 0; i < size; i++)
{
var x = i - radius;
kernel[i] = (float)Math.Exp(-(x * x) / (2 * sigma * sigma));
sum += kernel[i];
}
for (var i = 0; i < size; i++) kernel[i] /= sum;
return kernel;
}
}