如何使用三次样条插值得到java中的曲线?
How to use cubic spline interpolation to get a curve in java?
我正在从事图像处理工作,以使用三次样条插值获得中间点 here。我怎样才能用 Java 语言实现这一点。比如我有一些要点:
- x = 24, 35, 67, 78,79.
- y = 13、45、8、45、23。
我想获得 x=1 到 100 的中间点。
java 中是否有可用的库或函数。请告诉。
看看 JFree 等库 (http://www.jfree.org/index.html), JGraph and JGraphT (http://jgrapht.org/)。
Apache 通用数学库具有 class AkimaSplineInterpolator,可用于使用 Akima 算法计算数据集的三次样条插值。
<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());
}
}
我正在从事图像处理工作,以使用三次样条插值获得中间点 here。我怎样才能用 Java 语言实现这一点。比如我有一些要点:
- x = 24, 35, 67, 78,79.
- y = 13、45、8、45、23。 我想获得 x=1 到 100 的中间点。
java 中是否有可用的库或函数。请告诉。
看看 JFree 等库 (http://www.jfree.org/index.html), JGraph and JGraphT (http://jgrapht.org/)。
Apache 通用数学库具有 class AkimaSplineInterpolator,可用于使用 Akima 算法计算数据集的三次样条插值。
<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());
}
}