多语言展示
当前在线:1786今日阅读:31今日分享:25

怎么对数据进行离散的Fourier变换?

离散Fourier变换,在信息处理过程中应用广泛。比如,在处理图像的时候,计算机获得的是离散的图像数据,因此使用的变换也是离散的。下面,我介绍一下对离散数据进行Fourier变换的方法。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

首先,给出一个离散的随机数据。a=Table[RandomInteger[9],10]

2

直接套用Fourier:Fourier[a]得到的结果,是一组复数序列。

3

给出一幅图片:img=图片;

4

把图片转化为图片数据:data=ImageData[img];通过数据,可以知道,这是一幅四通道图片。

5

看看一个小区域上的数据,进行处理的结果。Fourier[data[[50;;53,60;;63]]]

6

对整个数据进行处理,并看看相对应的小区域的处理结果。Fourier[data][[50;;53,60;;63]]这样可以发现,整体的变换结果,和局部的变换结果,差异很大。

7

把Fourier变换之后的图片数据,转化为图片:Fourier[data]//Image

8

好像,Fourier变换之后的数据转化为图片后,系统把虚数部分忽略了,只保留了实数部分。(Fourier[data]//Image//ImageData)[[50;;53,60;;63]]

9

看看Fourier[data]的实数部分:(Fourier[data]//Re)[[50;;53,60;;63]]发现不一样。

10

看看Fourier[data]的虚数部分:(Fourier[data]//Im)[[50;;53,60;;63]]也不一样。

11

这是怎么回事呢?我糊涂了。(Abs[Fourier[data]]^2)[[50;;53,60;;63]]也不是。

12

算了,不明白。把图片变得不那么黑:100*Fourier[data]//Image

13

(1-10*Fourier[data])//Image

注意事项

对图像进行傅立叶变换,真的是这个样子吗?

推荐信息