diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor.cs
new file mode 100644
index 000000000..1d0a29a35
--- /dev/null
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Six Labors.
+// Licensed under the Apache License, Version 2.0.
+
+using SixLabors.ImageSharp.PixelFormats;
+
+namespace SixLabors.ImageSharp.Processing.Processors.Convolution
+{
+ ///
+ /// Defines edge detection using the two 1D gradient operators.
+ ///
+ public sealed class EdgeDetector2DProcessor : IImageProcessor
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The 2D edge detector kernel.
+ ///
+ /// Whether to convert the image to grayscale before performing edge detection.
+ ///
+ public EdgeDetector2DProcessor(EdgeDetector2DKernel kernel, bool grayscale)
+ {
+ this.Kernel = kernel;
+ this.Grayscale = grayscale;
+ }
+
+ ///
+ /// Gets the 2D edge detector kernel.
+ ///
+ public EdgeDetector2DKernel Kernel { get; }
+
+ ///
+ /// Gets a value indicating whether to convert the image to grayscale before performing
+ /// edge detection.
+ ///
+ public bool Grayscale { get; }
+
+ ///
+ public IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
+ where TPixel : unmanaged, IPixel
+ => new EdgeDetector2DProcessor(configuration, this, source, sourceRectangle);
+ }
+}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor{TPixel}.cs
index 6c831e727..80f8a7706 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetector2DProcessor{TPixel}.cs
@@ -13,42 +13,29 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
internal class EdgeDetector2DProcessor : ImageProcessor
where TPixel : unmanaged, IPixel
{
+ private readonly DenseMatrix kernelX;
+ private readonly DenseMatrix kernelY;
+ private readonly bool grayscale;
+
///
/// Initializes a new instance of the class.
///
/// The configuration which allows altering default behaviour or extending the library.
- /// The horizontal gradient operator.
- /// The vertical gradient operator.
- /// Whether to convert the image to grayscale before performing edge detection.
+ /// The defining the processor parameters.
/// The source for the current processor instance.
/// The source area to process for the current processor instance.
- internal EdgeDetector2DProcessor(
+ public EdgeDetector2DProcessor(
Configuration configuration,
- in DenseMatrix kernelX,
- in DenseMatrix kernelY,
- bool grayscale,
+ EdgeDetector2DProcessor definition,
Image source,
Rectangle sourceRectangle)
: base(configuration, source, sourceRectangle)
{
- Guard.IsTrue(kernelX.Size.Equals(kernelY.Size), $"{nameof(kernelX)} {nameof(kernelY)}", "Kernel sizes must be the same.");
- this.KernelX = kernelX;
- this.KernelY = kernelY;
- this.Grayscale = grayscale;
+ this.kernelX = definition.Kernel.KernelX;
+ this.kernelY = definition.Kernel.KernelY;
+ this.grayscale = definition.Grayscale;
}
- ///
- /// Gets the horizontal gradient operator.
- ///
- public DenseMatrix KernelX { get; }
-
- ///
- /// Gets the vertical gradient operator.
- ///
- public DenseMatrix KernelY { get; }
-
- public bool Grayscale { get; }
-
///
protected override void BeforeImageApply()
{
@@ -57,7 +44,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
opaque.Execute();
}
- if (this.Grayscale)
+ if (this.grayscale)
{
new GrayscaleBt709Processor(1F).Execute(this.Configuration, this.Source, this.SourceRectangle);
}
@@ -68,7 +55,13 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
///
protected override void OnFrameApply(ImageFrame source)
{
- using var processor = new Convolution2DProcessor(this.Configuration, this.KernelX, this.KernelY, true, this.Source, this.SourceRectangle);
+ using var processor = new Convolution2DProcessor(
+ this.Configuration,
+ in this.kernelX,
+ in this.kernelY,
+ true,
+ this.Source,
+ this.SourceRectangle);
processor.Apply(source);
}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor.cs
new file mode 100644
index 000000000..083a69bd2
--- /dev/null
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Six Labors.
+// Licensed under the Apache License, Version 2.0.
+
+using SixLabors.ImageSharp.PixelFormats;
+
+namespace SixLabors.ImageSharp.Processing.Processors.Convolution
+{
+ ///
+ /// Defines edge detection using eight gradient operators.
+ ///
+ public sealed class EdgeDetectorCompassProcessor : IImageProcessor
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The edge detector kernel.
+ ///
+ /// Whether to convert the image to grayscale before performing edge detection.
+ ///
+ public EdgeDetectorCompassProcessor(EdgeDetectorCompassKernel kernel, bool grayscale)
+ {
+ this.Kernel = kernel;
+ this.Grayscale = grayscale;
+ }
+
+ ///
+ /// Gets the edge detector kernel.
+ ///
+ public EdgeDetectorCompassKernel Kernel { get; }
+
+ ///
+ /// Gets a value indicating whether to convert the image to grayscale before performing
+ /// edge detection.
+ ///
+ public bool Grayscale { get; }
+
+ ///
+ public IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
+ where TPixel : unmanaged, IPixel
+ => new EdgeDetectorCompassProcessor(configuration, this, source, sourceRectangle);
+ }
+}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
index 14d728814..27963613e 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorCompassProcessor{TPixel}.cs
@@ -25,15 +25,18 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
/// Initializes a new instance of the class.
///
/// The configuration which allows altering default behaviour or extending the library.
- /// The kernels to use.
- /// Whether to convert the image to grayscale before performing edge detection.
+ /// The defining the processor parameters.
/// The source for the current processor instance.
/// The source area to process for the current processor instance.
- internal EdgeDetectorCompassProcessor(Configuration configuration, in EdgeDetectorCompassKernel kernels, bool grayscale, Image source, Rectangle sourceRectangle)
+ internal EdgeDetectorCompassProcessor(
+ Configuration configuration,
+ EdgeDetectorCompassProcessor definition,
+ Image source,
+ Rectangle sourceRectangle)
: base(configuration, source, sourceRectangle)
{
- this.grayscale = grayscale;
- this.kernels = kernels.Flatten();
+ this.grayscale = definition.Grayscale;
+ this.kernels = definition.Kernel.Flatten();
}
///
diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor.cs
index a9d20b547..6fcfca662 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor.cs
@@ -6,26 +6,37 @@ using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
- /// Defines a processor that detects edges within an image using a single two dimensional matrix.
+ /// Defines edge detection using a single 2D gradient operator.
///
- public abstract class EdgeDetectorProcessor : IImageProcessor
+ public sealed class EdgeDetectorProcessor : IImageProcessor
{
///
/// Initializes a new instance of the class.
///
- /// A value indicating whether to convert the image to grayscale before performing edge detection.
- protected EdgeDetectorProcessor(bool grayscale)
+ /// The edge detector kernel.
+ ///
+ /// Whether to convert the image to grayscale before performing edge detection.
+ ///
+ public EdgeDetectorProcessor(EdgeDetectorKernel kernel, bool grayscale)
{
+ this.Kernel = kernel;
this.Grayscale = grayscale;
}
///
- /// Gets a value indicating whether to convert the image to grayscale before performing edge detection.
+ /// Gets the edge detector kernel.
+ ///
+ public EdgeDetectorKernel Kernel { get; }
+
+ ///
+ /// Gets a value indicating whether to convert the image to grayscale before performing
+ /// edge detection.
///
public bool Grayscale { get; }
///
- public abstract IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- where TPixel : unmanaged, IPixel;
+ public IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
+ where TPixel : unmanaged, IPixel
+ => new EdgeDetectorProcessor(configuration, this, source, sourceRectangle);
}
}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor{TPixel}.cs b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor{TPixel}.cs
index e56e0d1a7..62dd54919 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor{TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/EdgeDetectorProcessor{TPixel}.cs
@@ -20,20 +20,18 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
/// Initializes a new instance of the class.
///
/// The configuration which allows altering default behaviour or extending the library.
- /// The 2d gradient operator.
- /// Whether to convert the image to grayscale before performing edge detection.
+ /// The defining the processor parameters.
/// The source for the current processor instance.
/// The target area to process for the current processor instance.
public EdgeDetectorProcessor(
Configuration configuration,
- in EdgeDetectorKernel kernelXY,
- bool grayscale,
+ EdgeDetectorProcessor definition,
Image source,
Rectangle sourceRectangle)
: base(configuration, source, sourceRectangle)
{
- this.kernelXY = kernelXY.KernelXY;
- this.grayscale = grayscale;
+ this.kernelXY = definition.Kernel.KernelXY;
+ this.grayscale = definition.Grayscale;
}
///
diff --git a/src/ImageSharp/Processing/Processors/Convolution/KayyaliProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/KayyaliProcessor.cs
deleted file mode 100644
index c13e8b543..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/KayyaliProcessor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection processing using the Kayyali operator filter.
- /// See .
- ///
- public sealed class KayyaliProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public KayyaliProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetector2DProcessor(
- configuration,
- KayyaliKernels.KayyaliX,
- KayyaliKernels.KayyaliY,
- this.Grayscale,
- source,
- sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorCompassKernel.cs b/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorCompassKernel.cs
index 34fca9192..bda861799 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorCompassKernel.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorCompassKernel.cs
@@ -12,6 +12,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
/// An edge detection kenel comprised of Kirsch gradient operators.
+ /// .
///
public static EdgeDetectorCompassKernel Kirsch =
new EdgeDetectorCompassKernel(
@@ -26,6 +27,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
///
/// An edge detection kenel comprised of Robinson gradient operators.
+ ///
///
public static EdgeDetectorCompassKernel Robinson =
new EdgeDetectorCompassKernel(
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorKernel.cs b/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorKernel.cs
index 7b1f91263..86b8a24d9 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorKernel.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Kernels/EdgeDetectorKernel.cs
@@ -12,16 +12,19 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
/// An edge detection kernel containing a 3x3 Laplacian operator.
+ ///
///
public static EdgeDetectorKernel Laplacian3x3 = new EdgeDetectorKernel(LaplacianKernels.Laplacian3x3);
///
/// An edge detection kernel containing a 5x5 Laplacian operator.
+ ///
///
public static EdgeDetectorKernel Laplacian5x5 = new EdgeDetectorKernel(LaplacianKernels.Laplacian5x5);
///
/// An edge detection kernel containing a Laplacian of Gaussian operator.
+ /// .
///
public static EdgeDetectorKernel LaplacianOfGaussian = new EdgeDetectorKernel(LaplacianKernels.LaplacianOfGaussianXY);
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/KirschKernels.cs b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/KirschKernels.cs
index ccd8a6c8d..87ccb174d 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/KirschKernels.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/KirschKernels.cs
@@ -4,7 +4,8 @@
namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
- /// Contains the eight matrices used for Kirsch edge detection
+ /// Contains the eight matrices used for Kirsch edge detection.
+ /// .
///
internal static class KirschKernels
{
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/LaplacianKernels.cs b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/LaplacianKernels.cs
index ce574341f..7036300c7 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/LaplacianKernels.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/LaplacianKernels.cs
@@ -1,10 +1,12 @@
-// Copyright (c) Six Labors.
+// Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0.
namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
- /// Contains Laplacian kernels of different sizes
+ /// Contains Laplacian kernels of different sizes.
+ ///
+ /// .
///
internal static class LaplacianKernels
{
@@ -31,4 +33,4 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{ 0, 0, -1, 0, 0 }
};
}
-}
\ No newline at end of file
+}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/RobinsonKernels.cs b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/RobinsonKernels.cs
index 0dde36f02..7d0478aa5 100644
--- a/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/RobinsonKernels.cs
+++ b/src/ImageSharp/Processing/Processors/Convolution/Kernels/Implementation/RobinsonKernels.cs
@@ -5,6 +5,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Convolution
{
///
/// Contains the kernels used for Robinson edge detection.
+ ///
///
internal static class RobinsonKernels
{
diff --git a/src/ImageSharp/Processing/Processors/Convolution/KirschProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/KirschProcessor.cs
deleted file mode 100644
index 62bd17016..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/KirschProcessor.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection using the Kirsch operator filter.
- /// See .
- ///
- public sealed class KirschProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public KirschProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetectorCompassProcessor(configuration, new KirschKernels(), this.Grayscale, source, sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Laplacian3x3Processor.cs b/src/ImageSharp/Processing/Processors/Convolution/Laplacian3x3Processor.cs
deleted file mode 100644
index 957c61b07..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/Laplacian3x3Processor.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Applies edge detection processing to the image using the Laplacian 3x3 operator filter.
- ///
- ///
- public sealed class Laplacian3x3Processor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public Laplacian3x3Processor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetectorProcessor(configuration, LaplacianKernels.Laplacian3x3, this.Grayscale, source, sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/Laplacian5x5Processor.cs b/src/ImageSharp/Processing/Processors/Convolution/Laplacian5x5Processor.cs
deleted file mode 100644
index 8b28662ae..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/Laplacian5x5Processor.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection processing using the Laplacian 5x5 operator filter.
- /// .
- ///
- public sealed class Laplacian5x5Processor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public Laplacian5x5Processor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetectorProcessor(configuration, LaplacianKernels.Laplacian5x5, this.Grayscale, source, sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/LaplacianOfGaussianProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/LaplacianOfGaussianProcessor.cs
deleted file mode 100644
index 5c8f7c40d..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/LaplacianOfGaussianProcessor.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Applies edge detection processing to the image using the Laplacian of Gaussian operator filter.
- /// See .
- ///
- public sealed class LaplacianOfGaussianProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public LaplacianOfGaussianProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetectorProcessor(configuration, LaplacianKernels.LaplacianOfGaussianXY, this.Grayscale, source, sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/PrewittProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/PrewittProcessor.cs
deleted file mode 100644
index c5ae14935..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/PrewittProcessor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection using the Prewitt operator filter.
- /// See .
- ///
- public sealed class PrewittProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public PrewittProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetector2DProcessor(
- configuration,
- PrewittKernels.PrewittX,
- PrewittKernels.PrewittY,
- this.Grayscale,
- source,
- sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/RobertsCrossProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/RobertsCrossProcessor.cs
deleted file mode 100644
index 57df83a14..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/RobertsCrossProcessor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection processing using the Roberts Cross operator filter.
- /// See .
- ///
- public sealed class RobertsCrossProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public RobertsCrossProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetector2DProcessor(
- configuration,
- RobertsCrossKernels.RobertsCrossX,
- RobertsCrossKernels.RobertsCrossY,
- this.Grayscale,
- source,
- sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/RobinsonProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/RobinsonProcessor.cs
deleted file mode 100644
index 22c8562e2..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/RobinsonProcessor.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection using the Robinson operator filter.
- /// See .
- ///
- public sealed class RobinsonProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public RobinsonProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetectorCompassProcessor(configuration, new RobinsonKernels(), this.Grayscale, source, sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/ScharrProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/ScharrProcessor.cs
deleted file mode 100644
index d9a0745e2..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/ScharrProcessor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection processing using the Scharr operator filter.
- ///
- ///
- public sealed class ScharrProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public ScharrProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetector2DProcessor(
- configuration,
- ScharrKernels.ScharrX,
- ScharrKernels.ScharrY,
- this.Grayscale,
- source,
- sourceRectangle);
- }
-}
diff --git a/src/ImageSharp/Processing/Processors/Convolution/SobelProcessor.cs b/src/ImageSharp/Processing/Processors/Convolution/SobelProcessor.cs
deleted file mode 100644
index 73632392e..000000000
--- a/src/ImageSharp/Processing/Processors/Convolution/SobelProcessor.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-namespace SixLabors.ImageSharp.Processing.Processors.Convolution
-{
- ///
- /// Defines edge detection using the Sobel operator filter.
- /// See .
- ///
- public sealed class SobelProcessor : EdgeDetectorProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// Whether to convert the image to grayscale before performing edge detection.
- public SobelProcessor(bool grayscale)
- : base(grayscale)
- {
- }
-
- ///
- public override IImageProcessor CreatePixelSpecificProcessor(Configuration configuration, Image source, Rectangle sourceRectangle)
- => new EdgeDetector2DProcessor(
- configuration,
- SobelKernels.SobelX,
- SobelKernels.SobelY,
- this.Grayscale,
- source,
- sourceRectangle);
- }
-}