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