Пример #1
0
        /// <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;
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
 public static void Run <T>(this PositionDependentExtractor <T> Algorithm, T Argument, Image Input, AlgorithmRunParameters Parameters)
 {
     RunAlgorithm(Algorithm, Argument, Input, Parameters);
 }
Пример #4
0
 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);
 }
Пример #5
0
 public static void Run <T>(this Combiner <T> Algorithm, T Argument, Image[] Input, Image Output, AlgorithmRunParameters Parameters)
 {
     RunAlgorithm(Algorithm, Argument, Input, Output, Parameters);
 }
Пример #6
0
#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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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);
        }
Пример #9
0
        /// <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);
        }
Пример #10
0
        /// <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);
        }