// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; /// /// The Scharr operator filter. /// /// /// The pixel format. [SuppressMessage("ReSharper", "StaticMemberInGenericType", Justification = "We want to use only one instance of each array field for each generic type.")] public class ScharrProcessor : EdgeDetector2DProcessor where TColor : struct, IPackedPixel, IEquatable { /// /// The horizontal gradient operator. /// private static readonly Fast2DArray ScharrX = new Fast2DArray(new float[,] { { -3, 0, 3 }, { -10, 0, 10 }, { -3, 0, 3 } }); /// /// The vertical gradient operator. /// private static readonly Fast2DArray ScharrY = new Fast2DArray(new float[,] { { 3, 10, 3 }, { 0, 0, 0 }, { -3, -10, -3 } }); /// /// Initializes a new instance of the class. /// public ScharrProcessor() : base(ScharrX, ScharrY) { } } }