java使用傅里叶变换,得到变换之后的傅里叶频谱图像。

本文介绍如何在Java中使用傅里叶变换处理图像,重点在于图像的滤波和去噪。作者分享了经过调试的代码,适用于灰度图像,并提供了验证示例。虽然一维FFT变换已验证通过,但傅里叶逆变换未能成功,作者期待高手指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用傅里叶变换来处理图像,可以滤波,去噪。 但是网络上java实现很少,可以运行的就更少,我总结了一些代码,并加以调试,


保证速度的情况下得以运行成功。 这些代码仅对灰度图验证通过。学习之用。

调用结果可以用http://cns-alumni.bu.edu/~slehar/fourier/fourier.html#filtering 网站的图片验证:

     

输入图像:ff8.bmp                  输出图像fft_result.bmp

     

输入图像:ff8.bmp                  输出图像fft_result.bmp

所有FFT变换都已经验证通过。  但是傅里叶逆变换没有成功。  有高手可以指点一下。 如何使逆变换的图片显示出来。

FFT 类负责一维变换:

package app.fourier;

public class FFT {

//	double r_data[] = null;
//	double i_data[] = null;
	
	// compute the FFT of x[], assuming its length is a power of 2
	public static void fft(Complex[] src, int row, int width, Complex[] dest) {
		
		Complex[] temp = new Complex[width];
		for (int k = 0; k < width; k++) {
			temp[k] = src[row * width + k];
		}
		temp = fft(temp);
		//set output
		for (int k = 0; k < width; k++) {
			dest[row * width + k] = temp[k];
		}
	}
	public static Complex[] fft(Complex[] x) {
		int N = x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值