示例#1
0
        public static IScalingAlgorithm Create(ScalingAlgorithms sa)
        {
            IScalingAlgorithm alg = null;

            switch (sa)
            {
            case ScalingAlgorithms.Linear:
                alg = new Linearscaling();
                break;

            case ScalingAlgorithms.SquareRoot:
                alg = new SquareRootscaling();
                break;

            case ScalingAlgorithms.Logarithmic:
                alg = new Logarithmicscaling();
                break;

            case ScalingAlgorithms.HistoEqualize:
                alg = new HEscaling();
                break;

            case ScalingAlgorithms.Square:
                alg = new SquareScaling();
                break;

            case ScalingAlgorithms.Custom:
                alg = new Customscaling();
                break;

            default:
                break;
            }
            return(alg);
        }
示例#2
0
        public byte[] Apply(int[] image, int width, int height, int numActivepixels, double[] colorTable, double dataMin, double dataMax)
        {
            // first build linear 8-bit map
            IScalingAlgorithm alg = ScalingAlgorithmFactory.Create(ScalingAlgorithms.Linear);

            double[] hist = BuildHistogram(image, width, height, numActivepixels, colorTable);
            return(alg.Apply(image, width, height, numActivepixels, hist, dataMin, dataMax));
        }