gpt4 book ai didi

java - FFT 实现

转载 作者:行者123 更新时间:2023-12-02 14:45:27 27 4
gpt4 key购买 nike

我正在开发使用 FFT 增强图像的应用程序。

我已经实现了FFT的代码:

enter image description here

对于上图中的第一个公式,我实现了如下代码:

  void fft(int x , int y , int size) {

for(int i=x; i<x+32 ; i++){
for(int j=y ; j<y+32 ; j++){
double kth = -2 * Math.PI * (((i*x)/size)+((j*y)/size));
ComplexNumber expo = new ComplexNumber(Math.cos(kth),Math.sin(kth));
output.values[i][j] = ComplexNumber.cMult(input.values[x][y],expo) ;
intermediate.values[i][j] = output.values[i][j];
input.values[i][j] = output.values[i][j];
}

}

}

我还实现了第二个和第三个公式的代码,但我得到的结果不正确。我应该怎么办 ?

为第一个等式实现的代码是否正确?

已编辑

我已经尝试在指纹图像上使用 Catalano 框架中建议的函数。应用Catalano框架后的输入图像和输出图像:

输入图像

enter image description here

傅里叶变换

enter image description here

频率过滤器

enter image description here

输出

enter image description here

当我将它应用于指纹图像时,输入图像和输出图像之间的差异并不是那么有效。即使在应用 FFT 后,指纹图像中的脊和谷之间的对比度也不能清楚地区分。所以是否有任何附加参数需要对指纹图像进行操作吗?

最佳答案

您可以在 java 中使用 FFT,如下所示:

此链接已失效 ( http://blog.datasingularity.com/?p=53 )

http://introcs.cs.princeton.edu/java/97data/FFT.java.html

并引用 FFTW 的信息是“西方最快的傅里叶变换”,并且有一些 Java 包装器:来自 http://www.fftw.org/download.html

关于java - FFT 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com