/// <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); }