我正在图像处理中使用三次样条插值来获得中间点,如此处所示。我怎样才能用 Java 语言实现这一点。比如我有一些要点:
- x = 24、35、67、78,79。
- y = 13, 45, 8, 45, 23。我想得到 x=1 到 100 的中间点。
java中是否有任何可用的库或函数。请告诉。
我正在图像处理中使用三次样条插值来获得中间点,如此处所示。我怎样才能用 Java 语言实现这一点。比如我有一些要点:
java中是否有任何可用的库或函数。请告诉。
Apache 通用数学库具有 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());
}
}
看看 JFree ( http://www.jfree.org/index.html )、JGraph 和 JGraphT ( http://jgrapht.org/ ) 等库。