//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
namespace SixLabors.ImageSharp.Benchmarks
{
using System.IO;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Processing;
using CoreImage = ImageSharp.Image;
public class DetectEdges : BenchmarkBase
{
private Image image;
[GlobalSetup]
public void ReadImage()
{
if (this.image == null)
{
using (FileStream stream = File.OpenRead("../ImageSharp.Tests/TestImages/Formats/Bmp/Car.bmp"))
{
this.image = CoreImage.Load(stream);
}
}
}
[GlobalCleanup]
public void Cleanup()
{
this.image.Dispose();
}
[Benchmark(Description = "ImageSharp DetectEdges")]
public void ImageProcessorCoreDetectEdges()
{
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kayyali));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kayyali));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Kirsch));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Lapacian3X3));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Lapacian5X5));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.LaplacianOfGaussian));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Prewitt));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.RobertsCross));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Robinson));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Scharr));
this.image.Mutate(x => x.DetectEdges(EdgeDetection.Sobel));
}
}
}