首页 > 代码库 > [DIP] 数字图像处理 CH04

[DIP] 数字图像处理 CH04

---慢慢地go through冈萨雷斯的DIP和配套的matlab,记下一些零碎的知识点给自己以后复习。

 

DIP CH04 频率域滤波
x = nextpow2(a)可以找到最小整数x,使得2的x次幂比a大;

 

傅里叶频谱

F = fft2(f)   ---   傅里叶变换,f为图像,空间域,F为傅里叶频域,直流分量在左上角,(1,1);

Fc = fftshift(F)   ---   居中操作,将F的直流分量从左上角移动到频率矩形的中心;

S = abs(Fc)   ---   傅里叶频谱幅值;

S2 = log(1+S)   ---   调整动态范围;

imshow(S2,[])   ---   显示;

Fi = ifftshift(Fc)   ---   逆居中操作;

fi = ifft2(Fi)   ---   逆傅里叶变换;

 

书中paddedsize是寻找合适的图像函数和滤波函数尺寸,然后以0填充,可以选择合适的最小偶数,也可以选择合适的最小的2的整数次幂为尺寸,用以加快傅里叶变换的计算。

 

通过空间滤波器构造频域滤波器

H = freqz2(h,R,C)   ---   h为空间滤波器,R,C是生成的频域滤波器的尺寸,注意,H的直流分量在频率矩形的中心位置;

                             ---   因此与图像f的傅里叶变换 fft2(f,R,C) 得到的 F 不能直接相乘,F的直流分量在左上角,先将H通过 ifftshift(H) 逆居中操作;

                             ---   可视化的时候居中的频谱更合适,平时运算用没有居中的频谱(即直流分量左上角,或者说在四个角落上,这是离散傅里叶变换的周期性);

gscale   ---   类似于 imshow(f,[]),对图像作 min -> 0,max -> 255 的映射;

[DIP] 数字图像处理 CH04