Exemplo n.º 1
0
        public override void Run()
        {
            Result = new Image <byte>(InputImage.Width, InputImage.Height);
            //calcola l'istogramma
            HistogramBuilder hb = new HistogramBuilder(InputImage);
            Histogram        h  = hb.Execute();

            //ricalcola ogni elemento dell'istogramma come somma dei precedenti
            for (int i = 1; i < 256; i++)
            {
                h[i] += h[i - 1];
            }
            //definisce la funzione di mapping e applica la lut
            LookupTableTransform <byte> lut = new LookupTableTransform <byte>(InputImage, p => (byte)(255 * h[p] / InputImage.PixelCount));

            Result = lut.Execute();
        }