Browse Source

moved extension to the processing namespace and the processor accordingly into Processors namespace

pull/644/head
popow 8 years ago
parent
commit
4fcefc5e1f
  1. 5
      src/ImageSharp/Processing/HistogramEqualizationExtension.cs
  2. 7
      src/ImageSharp/Processing/Processors/Normalization/HistogramEqualizationProcessor.cs
  3. 1
      tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs

5
src/ImageSharp/Processing/Normalization/HistogramEqualizationExtension.cs → src/ImageSharp/Processing/HistogramEqualizationExtension.cs

@ -2,8 +2,9 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing.Processors.Normalization;
namespace SixLabors.ImageSharp.Processing.Normalization namespace SixLabors.ImageSharp.Processing
{ {
/// <summary> /// <summary>
/// Adds extension that allows applying an HistogramEqualization to the image. /// Adds extension that allows applying an HistogramEqualization to the image.
@ -16,7 +17,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization
/// <typeparam name="TPixel">The pixel format.</typeparam> /// <typeparam name="TPixel">The pixel format.</typeparam>
/// <param name="source">The image this method extends.</param> /// <param name="source">The image this method extends.</param>
/// <param name="luminanceLevels">The number of different luminance levels. Typical values are 256 for 8-bit grayscale images /// <param name="luminanceLevels">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.</param> /// or 65536 for 16-bit grayscale images. Defaults to 65536.</param>
/// <returns>A histogram equalized grayscale image.</returns> /// <returns>A histogram equalized grayscale image.</returns>
public static IImageProcessingContext<TPixel> HistogramEqualization<TPixel>(this IImageProcessingContext<TPixel> source, int luminanceLevels = 65536) public static IImageProcessingContext<TPixel> HistogramEqualization<TPixel>(this IImageProcessingContext<TPixel> source, int luminanceLevels = 65536)
where TPixel : struct, IPixel<TPixel> where TPixel : struct, IPixel<TPixel>

7
src/ImageSharp/Processing/Normalization/HistogramEqualizationProcessor.cs → src/ImageSharp/Processing/Processors/Normalization/HistogramEqualizationProcessor.cs

@ -5,11 +5,10 @@ using System;
using System.Numerics; using System.Numerics;
using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing.Processors;
using SixLabors.Memory; using SixLabors.Memory;
using SixLabors.Primitives; using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Processing.Normalization namespace SixLabors.ImageSharp.Processing.Processors.Normalization
{ {
/// <summary> /// <summary>
/// Applies a global histogram equalization to the image. /// Applies a global histogram equalization to the image.
@ -22,7 +21,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization
/// Initializes a new instance of the <see cref="HistogramEqualizationProcessor{TPixel}"/> class. /// Initializes a new instance of the <see cref="HistogramEqualizationProcessor{TPixel}"/> class.
/// </summary> /// </summary>
/// <param name="luminanceLevels">The number of different luminance levels. Typical values are 256 for 8-bit grayscale images /// <param name="luminanceLevels">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.</param> /// or 65536 for 16-bit grayscale images. Defaults to 65536.</param>
public HistogramEqualizationProcessor(int luminanceLevels = 65536) public HistogramEqualizationProcessor(int luminanceLevels = 65536)
{ {
Guard.MustBeGreaterThan(luminanceLevels, 0, nameof(luminanceLevels)); Guard.MustBeGreaterThan(luminanceLevels, 0, nameof(luminanceLevels));
@ -117,7 +116,7 @@ namespace SixLabors.ImageSharp.Processing.Normalization
{ {
// Convert to grayscale using ITU-R Recommendation BT.709 // Convert to grayscale using ITU-R Recommendation BT.709
var vector = sourcePixel.ToVector4(); 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; return luminance;
} }

1
tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs

@ -3,7 +3,6 @@
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Normalization;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Normalization namespace SixLabors.ImageSharp.Tests.Processing.Normalization

Loading…
Cancel
Save