diff --git a/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs b/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs index 75bd2d256..0036b5dc9 100644 --- a/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs +++ b/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs @@ -60,10 +60,10 @@ namespace SixLabors.ImageSharp.Processing.Normalization } } - Span lut = memoryAllocator.Allocate(luminanceLevels, clear: true).GetSpan(); + // creating the lookup table: subtracting cdf min, so we do not need to do that inside the for loop for (int i = 0; i < histogram.Length; i++) { - lut[i] = cdf[i] - cdfMin; + cdf[i] = cdf[i] - cdfMin; } // apply the cdf to each pixel of the image @@ -77,7 +77,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization TPixel sourcePixel = row[x]; int luminance = this.GetLuminance(sourcePixel, is16bitPerChannel, ref rgb24, ref rgb48); - double luminanceEqualized = (lut[luminance] / numberOfPixelsMinusCdfMin) * luminanceLevelsMinusOne; + double luminanceEqualized = (cdf[luminance] / numberOfPixelsMinusCdfMin) * luminanceLevelsMinusOne; luminanceEqualized = Math.Round(luminanceEqualized); if (is16bitPerChannel)