如何使用三次样条插值得到java中的曲线?

How to use cubic spline interpolation to get a curve in java?

我正在从事图像处理工作,以使用三次样条插值获得中间点 here。我怎样才能用 Java 语言实现这一点。比如我有一些要点:

java 中是否有可用的库或函数。请告诉。

看看 JFree 等库 (http://www.jfree.org/index.html), JGraph and JGraphT (http://jgrapht.org/)。

A​​pache 通用数学库具有 class AkimaSplineInterpolator,可用于使用 Akima 算法计算数据集的三次样条插值。

http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/analysis/interpolation/AkimaSplineInterpolator.html

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>

下面的代码不是您要求的完整实现。但是,您可以以此为起点并在此基础上进一步构建。希望这对您有所帮助!

public static void main(String[] main) {
    double [] xDouble = new double [] {24.0, 35.0, 67.0, 78.0,79.0};
    double [] yDouble = new double [] {13.0, 45.0, 8.0, 45.0, 23.0};

    AkimaSplineInterpolator asi = new AkimaSplineInterpolator();
    PolynomialSplineFunction psf = asi.interpolate(xDouble, yDouble);

    for (PolynomialFunction pf : psf.getPolynomials()) {
        System.out.println(pf.polynomialDerivative());  
    }
}