Beispiel #1
0
        /// <summary>
        /// The one option given to the user , if Warping preferred.
        /// </summary>
        /// <param name="i_SurfaceSize"></param>
        /// <param name="i_SourceToTargetMapping"></param>
        /// <param name="io_DrawingPoints"></param>
        public void StandardAlignmentLogic(Size i_SurfaceSize, Pair <DoubleMatrix, DoubleMatrix> i_SourceToTargetMapping, ref Point[] io_DrawingPoints)
        {
            //There are some harshly wrong matches, will try eliminate them using a treshold.
            //Without this stage, TPS can ruin our data in a way that it wont be usefull anymore.
            if (DistanceTreshold > 0)
            {
                enforceEuDistance(ref i_SourceToTargetMapping, DistanceTreshold);
            }

            //Preparing TPS algorithm
            TPS tpsWarpping = new TPS(i_SurfaceSize, i_SourceToTargetMapping.Element2);

            //Calculating transformation
            tpsWarpping.Calculate(i_SourceToTargetMapping.Element1);
            //Interpolating whole target
            tpsWarpping.Interpolate(ref io_DrawingPoints);
        }
        /// <summary>
        /// The one option given to the user , if Warping preferred.
        /// </summary>
        /// <param name="i_SurfaceSize"></param>
        /// <param name="i_SourceToTargetMapping"></param>
        /// <param name="io_DrawingPoints"></param>
        public void StandardAlignmentLogic(Size i_SurfaceSize, Pair<DoubleMatrix, DoubleMatrix> i_SourceToTargetMapping, ref Point[] io_DrawingPoints)
        {
            //There are some harshly wrong matches, will try eliminate them using a treshold.
            //Without this stage, TPS can ruin our data in a way that it wont be usefull anymore.
            if (DistanceTreshold > 0)
            {
                enforceEuDistance(ref i_SourceToTargetMapping, DistanceTreshold);
            }

            //Preparing TPS algorithm
            TPS tpsWarpping = new TPS(i_SurfaceSize, i_SourceToTargetMapping.Element2);
            //Calculating transformation
            tpsWarpping.Calculate(i_SourceToTargetMapping.Element1);
            //Interpolating whole target
            tpsWarpping.Interpolate(ref io_DrawingPoints);
        }