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); }
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)); }