Trigrad.DataTypes.FrequencyTable.sobelPass C# (CSharp) Method

sobelPass() private method

private sobelPass ( PixelMap map, double kernel ) : ].double[
map PixelMap
kernel double
return ].double[
        private double[,] sobelPass(PixelMap map, double[,] kernel)
        {
            double[,] output = new double[map.Width, map.Height];

            for (int x = 0; x < map.Width; x++)
            {
                for (int y = 0; y < map.Height; y++)
                {
                    double sum = 0;
                    for (int u = 0; u < 3; u++)
                    {
                        for (int v = 0; v < 3; v++)
                        {
                            Point samplePoint = new Point(x - 1 + u, y - 1 + v);

                            if (map.Inside(samplePoint))
                            {
                                double kVal = kernel[u, v];
                                double imgVal = map[samplePoint].Lightness;

                                sum += kVal * imgVal;
                            }
                            else
                            {
                                sum += 0.5;
                            }
                        }
                    }
                    output[x, y] = sum;
                }
            }
            return output;
        }