最近在学傅里叶变换,将傅里叶变换应用于图像处理,网上有好多的傅里叶变换的相关知识,自己百度的都被弄糊涂了,最后参考
http://wenku.baidu.com/link?url=oY9GoZ-ECMMZeFzbN6GoWN4d1SMiNQhECucGY0jEoTS-P9KHSsfwXy7-iLMPPFI-f2HGo_uFh4jrUGIBbxy2CEXOOEJ8DlXCBbT0FULrzIa
这份文件才有点明白,现在自己写写自己的理解。
我是学数学出生的,第一次接触傅里叶变换的理解:有些周期性函数可以使用三角函数表示出来,也就是使用sin和cos函数可以表达一些周期性函数。
那么傅里叶变换为什么可以这么实用,我从数学角度来讲述这个问题。
在图像处理中,我们面对的都是图中的一个个像素点,整幅图可以看做一个离散化的函数(定义域是位置,值域是颜色,我们所看到的就是一个矩阵),前面的傅里叶变换应用于离散周期函数变换是永远成立的。从数学角度出发,傅里叶变换是将一个函数变成另外一个函数,而且这个过程是可逆的,将原图像函数变成另外一幅图像(定义域是位置,值域是颜色),我们会发现变换后的图像复杂度大大降低,换句话说变换后的图像基本看不出什么信息,大部分图像都是一样的,只有少部分是有点亮光,还可以从矩阵(图像也就是矩阵)角度来解释,下面是原矩阵
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211}
这是一个8X8矩阵,使用余弦变换(傅里叶变换的一种变形)后得
354 22 70 -152 66 -10 -124 -232
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
这两个矩阵一对比,你会发现后者只有第一行有数据,后面统统没有数据,那么进行压缩存储图片所占空间将大大降低
除此之外,我们还可以使用反余弦变换进行恢复,恢复后的矩阵为
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
156 222 133 232 123 145 156 211
发现两个矩阵一模一样,其实在这个过程中会损失一点数据的,这次未损失主要是因为我举的矩阵太过特殊,比如下面(原矩阵)
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,105,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211},
{156,222,133,232,123,145,156,211}
经过余弦变换,再反余弦变换后得
156 222 133 232 123 145 156 211
156 222 133 233 123 145 156 210
156 222 133 232 123 145 156 211
156 222 133 232 123 144 156 211
156 222 133 232 123 104 156 211
156 222 133 231 123 145 156 211
156 222 133 232 123 145 156 211
156 223 133 232 123 145 156 211
对比两个矩阵,你会发现有一点差别,但是差别并不大,相比于能够压缩图片所占空间大小,这点损失是可以接受的。
再进一步观察第一次变换之后的矩阵,你发现除了第一行有数据外,后面的数据就是0,这傅里叶变换具有的特点,在变换函数越往前值越大,越往后值越小,而且经过人们实验发现往后的数据一般是原图像中噪音部分(白点),如果在进行傅里叶变换后取出往后部分数据,那么对原图像有一定的去噪作用,这就是傅里叶变换的另外一个用途。
补充:余弦变换,傅里叶变换具体公式就不在这里叙说,你只要百度一下就可得到,余弦变换是去除傅里叶变换的复数部分,只保留实数部分,这是因为余弦变换只针对对偶函数(关于y轴对称),傅里叶变换复数部分是sin函数,该函数是原点对称函数,因此对偶函数傅里叶变换后就是只有实数部分。所有在使用余弦变换是,原图像一定减去128,这样才能实现对称(原图像取值为0-256),反变换时加上128.
希望对大家有一点小小的帮助,我将继续努力。