Example #1
0
        public void DetectEdges_Rect_EdgeDetector2DProcessorSet(EdgeDetector2DKernel kernel, bool grayscale)
        {
            this.operations.DetectEdges(kernel, grayscale, this.rect);
            EdgeDetector2DProcessor processor = this.Verify <EdgeDetector2DProcessor>(this.rect);

            Assert.Equal(grayscale, processor.Grayscale);
            Assert.Equal(kernel, processor.Kernel);
        }
Example #2
0
        public void DetectEdges_Rect_EdgeDetector2DProcessorDefaultsSet()
        {
            this.operations.DetectEdges(this.rect);
            EdgeDetector2DProcessor processor = this.Verify <EdgeDetector2DProcessor>(this.rect);

            Assert.True(processor.Grayscale);
            Assert.Equal(KnownEdgeDetectorKernels.Sobel, processor.Kernel);
        }
Example #3
0
        public void DetectEdges_Rect_EdgeDetector2DProcessor_DefaultGrayScale_Set(EdgeDetector2DKernel kernel, bool _)
        {
            this.operations.DetectEdges(kernel, this.rect);
            EdgeDetector2DProcessor processor = this.Verify <EdgeDetector2DProcessor>(this.rect);

            Assert.True(processor.Grayscale);
            Assert.Equal(kernel, processor.Kernel);
        }
        /// <summary>
        /// Detects any edges within the image using a <see cref="EdgeDetector2DKernel"/>.
        /// </summary>
        /// <param name="source">The image this method extends.</param>
        /// <param name="kernel">The 2D edge detector kernel.</param>
        /// <param name="grayscale">
        /// Whether to convert the image to grayscale before performing edge detection.
        /// </param>
        /// <returns>The <see cref="IImageProcessingContext"/> to allow chaining of operations.</returns>
        public static IImageProcessingContext DetectEdges(
            this IImageProcessingContext source,
            EdgeDetector2DKernel kernel,
            bool grayscale)
        {
            var processor = new EdgeDetector2DProcessor(kernel, grayscale);

            source.ApplyProcessor(processor);
            return(source);
        }