diff --git a/src/ImageSharp/Processing/Normalization/HistogramEqualizationExtension.cs b/src/ImageSharp/Processing/HistogramEqualizationExtension.cs similarity index 85% rename from src/ImageSharp/Processing/Normalization/HistogramEqualizationExtension.cs rename to src/ImageSharp/Processing/HistogramEqualizationExtension.cs index aa3c86d249..b472a2750c 100644 --- a/src/ImageSharp/Processing/Normalization/HistogramEqualizationExtension.cs +++ b/src/ImageSharp/Processing/HistogramEqualizationExtension.cs @@ -2,8 +2,9 @@ // Licensed under the Apache License, Version 2.0. using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Processing.Processors.Normalization; -namespace SixLabors.ImageSharp.Processing.Normalization +namespace SixLabors.ImageSharp.Processing { /// /// Adds extension that allows applying an HistogramEqualization to the image. @@ -16,7 +17,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization /// The pixel format. /// The image this method extends. /// The number of different luminance levels. Typical values are 256 for 8-bit grayscale images - /// or 65536 for 16-bit grayscale images.Defaults to 65536. + /// or 65536 for 16-bit grayscale images. Defaults to 65536. /// A histogram equalized grayscale image. public static IImageProcessingContext HistogramEqualization(this IImageProcessingContext source, int luminanceLevels = 65536) where TPixel : struct, IPixel diff --git a/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs b/src/ImageSharp/Processing/Processors/Normalization/HistogramEqualizationProcessor.cs similarity index 95% rename from src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs rename to src/ImageSharp/Processing/Processors/Normalization/HistogramEqualizationProcessor.cs index 782df4762c..fdd439a33a 100644 --- a/src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Normalization/HistogramEqualizationProcessor.cs @@ -5,11 +5,10 @@ using System; using System.Numerics; using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Processing.Processors; using SixLabors.Memory; using SixLabors.Primitives; -namespace SixLabors.ImageSharp.Processing.Normalization +namespace SixLabors.ImageSharp.Processing.Processors.Normalization { /// /// Applies a global histogram equalization to the image. @@ -22,7 +21,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization /// Initializes a new instance of the class. /// /// The number of different luminance levels. Typical values are 256 for 8-bit grayscale images - /// or 65536 for 16-bit grayscale images.Defaults to 65536. + /// or 65536 for 16-bit grayscale images. Defaults to 65536. public HistogramEqualizationProcessor(int luminanceLevels = 65536) { Guard.MustBeGreaterThan(luminanceLevels, 0, nameof(luminanceLevels)); @@ -117,7 +116,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization { // Convert to grayscale using ITU-R Recommendation BT.709 var vector = sourcePixel.ToVector4(); - int luminance = Convert.ToInt32(((.2126F * vector.X) + (.7152F * vector.Y) + (.0722F * vector.Y)) * luminanceLevels); + int luminance = Convert.ToInt32(((.2126F * vector.X) + (.7152F * vector.Y) + (.0722F * vector.Y)) * (luminanceLevels - 1)); return luminance; } diff --git a/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs b/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs index 2fc49db8af..ebecfec5a8 100644 --- a/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs +++ b/tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs @@ -3,7 +3,6 @@ using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; -using SixLabors.ImageSharp.Processing.Normalization; using Xunit; namespace SixLabors.ImageSharp.Tests.Processing.Normalization