【发布时间】: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
我正在从事图像处理工作,以使用三次样条插值获得中间点,正如 here 所做的那样。我怎样才能用 Java 语言实现这一点。比如我有一些要点:
java 中有没有可用的库或函数。请告诉。
【问题讨论】:
标签: java interpolation curve cubic-spline
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/) 等库。
【讨论】:
spline