2016-05-30 387 views
-2

我正在進行圖像處理以獲得使用三次樣條插值的中間點,如同完成here。我如何用Java語言實現這一點。比如我有一些要點:如何使用三次樣條插值在java中獲得曲線?

  • x = 24,35,67,78,79。
  • Y = 13,45,8,45,23, 我想獲得的中間點爲x = 1至100。

enter image description here

是否有任何庫或功能在Java可用。請告訴。

回答

0

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