final static private ThinPlateR2LogRSplineKernelTransform init( final double[][] p, final double[][] q ) { assert p.length == q.length; final ThinPlateR2LogRSplineKernelTransform tps = new ThinPlateR2LogRSplineKernelTransform( p.length, p, q ); return tps; }
tps = new ThinPlateR2LogRSplineKernelTransform(srcPts, aMtx, bVec, dMtxDat);
final static protected ThinPlateSplineTransform makeTPS( final Set< PointMatch > matches ) throws Exception { final double[][] srcPts = new double[ 2 ][ matches.size() ]; final double[][] tgtPts = new double[ 2 ][ matches.size() ]; int i = 0; for ( final PointMatch match : matches ) { final double[] srcPt = match.getP1().getL(); final double[] tgtPt = match.getP2().getW(); srcPts[ 0 ][ i ] = srcPt[ 0 ]; srcPts[ 1 ][ i ] = srcPt[ 1 ]; tgtPts[ 0 ][ i ] = tgtPt[ 0 ]; tgtPts[ 1 ][ i ] = tgtPt[ 1 ]; ++i; } final ThinPlateR2LogRSplineKernelTransform tps = new ThinPlateR2LogRSplineKernelTransform(2, srcPts, tgtPts); return new ThinPlateSplineTransform( tps ); }