public SlidingWindowOperation( Configuration configuration, AdaptiveHistogramEqualizationSlidingWindowProcessor <TPixel> processor, ImageFrame <TPixel> source, MemoryAllocator memoryAllocator, Buffer2D <TPixel> targetPixels, SlidingWindowInfos swInfos, int yStart, int yEnd, bool useFastPath) { this.configuration = configuration; this.processor = processor; this.source = source; this.memoryAllocator = memoryAllocator; this.targetPixels = targetPixels; this.swInfos = swInfos; this.yStart = yStart; this.yEnd = yEnd; this.useFastPath = useFastPath; }
/// <summary> /// Creates the <see cref="HistogramEqualizationProcessor"/> that implements the algorithm /// defined by the given <see cref="HistogramEqualizationOptions"/>. /// </summary> /// <param name="options">The <see cref="HistogramEqualizationOptions"/>.</param> /// <returns>The <see cref="HistogramEqualizationProcessor"/>.</returns> public static HistogramEqualizationProcessor FromOptions(HistogramEqualizationOptions options) { HistogramEqualizationProcessor processor; switch (options.Method) { case HistogramEqualizationMethod.Global: processor = new GlobalHistogramEqualizationProcessor( options.LuminanceLevels, options.ClipHistogram, options.ClipLimitPercentage); break; case HistogramEqualizationMethod.AdaptiveTileInterpolation: processor = new AdaptiveHistogramEqualizationProcessor( options.LuminanceLevels, options.ClipHistogram, options.ClipLimitPercentage, options.NumberOfTiles); break; case HistogramEqualizationMethod.AdaptiveSlidingWindow: processor = new AdaptiveHistogramEqualizationSlidingWindowProcessor( options.LuminanceLevels, options.ClipHistogram, options.ClipLimitPercentage, options.NumberOfTiles); break; default: processor = new GlobalHistogramEqualizationProcessor( options.LuminanceLevels, options.ClipHistogram, options.ClipLimitPercentage); break; } return(processor); }