/// <summary> /// Prepares algorithm geometry. /// </summary> /// <param name="Details">Parameters to prepare.</param> /// <param name="Parameters">Input parameters.</param> internal static void PrepareGeometry(ref RunDetails Details, AlgorithmRunParameters Parameters) { /* Copies common parameters */ Details.FillZero = Parameters.FillZero; Details.Xstep = Parameters.Xstep; if (Details.Xstep == 0) { if (Details.OutputImage != null) { Details.Xstep = (int)Details.OutputImage.Width; } else { Details.Xstep = (int)Details.InputImages[0].Width; } } Details.Ystep = Parameters.Ystep; Details.InputMargins = Parameters.InputMargins; /* Compute block sizes */ if (Details.OutputImage != null) { Details.DataHeight = (int)Details.OutputImage.Height; Details.DataWidth = (int)Details.OutputImage.Width; } else { Details.DataHeight = (int)Details.InputImages[0].Height; Details.DataWidth = (int)Details.InputImages[0].Width; } }
public void RunPipeline <T>(PositionDependentMap <T> Map, string Name, int Number, ref FitsImage Pipeline, T Argument, AlgorithmRunParameters Parameters) { bool Value = EnsureImage(Name, Number, out FitsImage Result); if (!Value) { Map.Run(Argument, Pipeline, Result, Parameters); } Result.GetProperty <ImageSource>().AddToSet(Pipeline, Name); Pipeline = Result; LogHookImage(!Value, Name, Number); }
public static void Run <T>(this PositionDependentExtractor <T> Algorithm, T Argument, Image Input, AlgorithmRunParameters Parameters) { RunAlgorithm(Algorithm, Argument, Input, Parameters); }
public static void Run <T, U, V>(this SimpleMap <T, U, V> Algorithm, T Argument1, U Argument2, V Argument3, Image Input, Image Output, AlgorithmRunParameters Parameters) { RunAlgorithm(Algorithm, Argument1, Argument2, Argument3, Input, Output, Parameters); }
public static void Run <T>(this Combiner <T> Algorithm, T Argument, Image[] Input, Image Output, AlgorithmRunParameters Parameters) { RunAlgorithm(Algorithm, Argument, Input, Output, Parameters); }
#pragma warning disable CS1591 /* Extension method for running the delegates with the default scheduler */ public static void Run <T>(this SimpleMap <T> Algorithm, T Argument, Image Input, Image Output, AlgorithmRunParameters Parameters) { RunAlgorithm(Algorithm, Argument, Input, Output, Parameters); }
/// <summary> /// Runs the given algorithm on the input data. /// </summary> /// <typeparam name="T">Extra parameter type.</typeparam> /// <param name="Algorithm">Parallel algorithm.</param> /// <param name="Argument">Argument to be passed to all invocations.</param> /// <param name="Inputs">Input images.</param> /// <param name="Output">Output image.</param> /// <param name="Parameters">Parameters of the algorithm run.</param> public static void RunAlgorithm <T>(Combiner <T> Algorithm, T Argument, Image[] Inputs, Image Output, AlgorithmRunParameters Parameters) { RunDetails details = new RunDetails() { Algorithm = Algorithm, InputImages = Inputs, OutputImage = Output, Parameters = new object[] { Argument }, Type = AlgorithmType.Combiner, }; PrepareGeometry(ref details, Parameters); DefaultScheduler(details); }
/// <summary> /// Runs the given algorithm on the input data. /// </summary> /// <typeparam name="T">Extra parameter type.</typeparam> /// <param name="Algorithm">Parallel algorithm.</param> /// <param name="Argument">Argument to be passed to all invocations.</param> /// <param name="Input">Input image.</param> /// <param name="Output">Output image.</param> /// <param name="Parameters">Parameters of the algorithm run.</param> public static void RunAlgorithm <T>(PositionDependentMap <T> Algorithm, T Argument, Image Input, Image Output, AlgorithmRunParameters Parameters) { RunDetails details = new RunDetails() { Algorithm = Algorithm, InputImages = new Image[] { Input }, OutputImage = Output, Parameters = new object[] { Argument }, Type = AlgorithmType.PositionMap, }; PrepareGeometry(ref details, Parameters); DefaultScheduler(details); }
/// <summary> /// Runs the given algorithm on the input data. /// </summary> /// <typeparam name="T">First extra parameter type.</typeparam> /// <typeparam name="U">Second extra parameter type.</typeparam> /// <typeparam name="V">Third extra parameter type.</typeparam> /// <param name="Algorithm">Parallel algorithm.</param> /// <param name="Argument1">First argument to be passed to all invocations.</param> /// <param name="Argument2">Second argument to be passed to all invocations.</param> /// <param name="Argument3">Third argument to be passed to all invocations.</param> /// <param name="Input">Input image.</param> /// <param name="Output">Output image.</param> /// <param name="Parameters">Parameters of the algorithm run.</param> public static void RunAlgorithm <T, U, V>(SimpleMap <T, U, V> Algorithm, T Argument1, U Argument2, V Argument3, Image Input, Image Output, AlgorithmRunParameters Parameters) { RunDetails details = new RunDetails() { Algorithm = Algorithm, InputImages = new Image[] { Input }, OutputImage = Output, Parameters = new object[] { Argument1, Argument2, Argument3 }, Type = AlgorithmType.SimpleMap_TUV, }; PrepareGeometry(ref details, Parameters); DefaultScheduler(details); }
/// <summary> /// Runs the given algorithm on the input data. /// </summary> /// <typeparam name="T">Extra parameter type.</typeparam> /// <param name="Algorithm">Parallel algorithm.</param> /// <param name="Argument">Argument to be passed to all invocations.</param> /// <param name="Input">Input image.</param> /// <param name="Parameters">Parameters of the algorithm run.</param> public static void RunAlgorithm <T>(Extractor <T> Algorithm, T Argument, Image Input, AlgorithmRunParameters Parameters) { RunDetails details = new RunDetails() { Algorithm = Algorithm, InputImages = new Image[] { Input }, OutputImage = null, Parameters = new object[] { Argument }, Type = AlgorithmType.Extractor, }; PrepareGeometry(ref details, Parameters); DefaultScheduler(details); }