Accord.Imaging.Filters.LevelsLinear.CalculateMap C# (CSharp) Method

CalculateMap() private static method

Calculate conversion map.
private static CalculateMap ( IntRange inRange, IntRange outRange, byte map ) : void
inRange AForge.IntRange Input range.
outRange AForge.IntRange Output range.
map byte Conversion map.
return void
        private static void CalculateMap(IntRange inRange, IntRange outRange, byte[] 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 < 256; i++)
            {
                byte v = (byte)i;

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

                map[i] = v;
            }
        }
    }
LevelsLinear