TongTaiLvBo.m
上传用户:sss810909
上传日期:2022-06-30
资源大小:1k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. clear
  2. clc
  3. img=double(imread('E:exapleexp2.bmp'));
  4. %i=imread('0,jpg');
  5. %i=rgb2gray(img);
  6. figure,subplot(2,2,1),imshow(img./255),%%%%%图像灰度值归一化
  7. title('the initial picture');
  8. [M,N]=size(img);
  9. img=img+1;
  10. lnimg=log2(img);%取对数
  11. Fimg=fft2(lnimg);%傅里叶变换
  12. P=fftshift(Fimg);%将频域原点移到图像中心;
  13. subplot(2,2,2),imshow(uint8(abs(P)),[]),title('滤波前的频谱图像')
  14. %Do=1.4;  %一般是方差 (滤波器的高通截止频率)
  15. Do=2;
  16. for u=1:M 
  17.     for v=1:N  
  18.        D(u,v)=sqrt((u-floor(M/2))^2+(v-floor(N/2))^2);; %点(i,j)到频率平面原点的距离 
  19.         H(u,v)=(1.0)*(1.0-exp(-D(u,v)^2/(2*Do^2)))-0.6;%同态滤波器函数
  20.     end                
  21. end
  22. hImg=Fimg.*H; Q=fftshift(hImg);
  23. subplot(2,2,3)  ,imshow(uint8(abs(Q)),[])  ,title('滤波后的频谱图像')
  24. gImg=ifft2(hImg);    %反傅立叶变换 
  25. Y=exp(gImg);      %取指数 
  26. subplot(2,2,4),imshow((abs(Y)),[]),title(' the hormomorphic image')