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

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

Calculate conversion map.
private CalculateMap ( IntRange inRange, IntRange outRange, ushort map ) : void
inRange AForge.IntRange Input range.
outRange AForge.IntRange Output range.
map ushort Conversion map.
Результат void
        private 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;
            }
        }
    }