public void ExtractAnchors(string sourceFileName, GradientOperator gradientOperator, int gradientThreshold, int anchorScanInterval, int anchorThreshold) { // Arrange var source = LoadImage(sourceFileName); var rows = source.Size.Height; var columns = source.Size.Width; var gradients = new Gradients(rows, columns); gradients.ComputeGradient(source, gradientOperator, gradientThreshold); // Act var anchors = gradients.ExtractAnchors(anchorScanInterval, anchorThreshold); // Assert var anchorMap = new Mat(rows, columns, Depth.U8, 1); anchorMap.Set(Scalar.All(0)); foreach (var anchor in anchors) { anchorMap.SetReal(anchor.Y, anchor.X, 255); } var resultFileName = Path.Combine("Output", "ExtractAnchors", $"{Path.GetFileNameWithoutExtension(sourceFileName)}_{gradientOperator}_{gradientThreshold}_{anchorScanInterval}_{anchorThreshold}.png"); SaveImage(anchorMap, resultFileName); }
public void ComputeGradient(string sourceFileName, GradientOperator gradientOperator, int gradientThreshold) { // Arrange var source = LoadImage(sourceFileName); var rows = source.Size.Height; var columns = source.Size.Width; var gradients = new Gradients(rows, columns); // Act gradients.ComputeGradient(source, gradientOperator, gradientThreshold); // Assert var gradientFileName = Path.Combine("Output", "ComputeGradient", $"{Path.GetFileNameWithoutExtension(sourceFileName)}_{gradientOperator}_{gradientThreshold}_GradientMap.png"); var directionsFileName = Path.Combine("Output", "ComputeGradient", $"{Path.GetFileNameWithoutExtension(sourceFileName)}_{gradientOperator}_{gradientThreshold}_DirectionsMap.png"); SaveImage(gradients.GradientMap, gradientFileName); SaveImage(gradients.DirectionMap, directionsFileName); }