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.
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing.Processors.Normalization;
namespace SixLabors.ImageSharp.Processing.Normalization
namespace SixLabors.ImageSharp.Processing
{
/// <summary>
/// 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>
/// <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
/// 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>
public static IImageProcessingContext<TPixel> HistogramEqualization<TPixel>(this IImageProcessingContext<TPixel> source, int luminanceLevels = 65536)
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 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
{
/// <summary>
/// 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.
/// </summary>
/// <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)
{
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;
}

1
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

Loading…
Cancel
Save