【问题标题】:How to use cubic spline interpolation to get a curve in java? [closed]如何使用三次样条插值在java中获得曲线? [关闭]
【发布时间】:2016-05-30 07:02:41
【问题描述】:

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

  • x = 24、35、67、78,79。
  • y = 13、45、8、45、23。 我想获得 x=1 到 100 的中间点。

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

【问题讨论】:

    标签: java interpolation curve cubic-spline


    【解决方案1】:

    Apache 通用数学库具有 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());  
        }
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这两个库都不包含spline
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多