Accord.Imaging.Filters.LevelsLinear16bpp.CalculateMap C# (CSharp) Метод

CalculateMap() приватный статический Метод

Calculate conversion map.
private static CalculateMap ( IntRange inRange, IntRange outRange, ushort map ) : void
inRange AForge.IntRange Input range.
outRange AForge.IntRange Output range.
map ushort Conversion map.
Результат void
        private static void CalculateMap(IntRange inRange, IntRange outRange, ushort[] map)
        {
            double k = 0, b = 0;

            if (inRange.Max != inRange.Min)
            {
                k = (double)(outRange.Max - outRange.Min) / (double)(inRange.Max - inRange.Min);
                b = (double)(outRange.Min) - k * inRange.Min;
            }

            for (int i = 0; i < 65536; i++)
            {
                ushort v = (ushort)i;

                if (v >= inRange.Max)
                    v = (ushort)outRange.Max;
                else if (v <= inRange.Min)
                    v = (ushort)outRange.Min;
                else
                    v = (ushort)(k * v + b);

                map[i] = v;
            }
        }
    }