tongtaifilter.m

来自「使用matlab编程环境实现同态信号的滤波处理」· M 代码 · 共 31 行

M
31
字号
function img_face=tongtaifilter(img0)
% close all;
% clear;
% clc;
[M,N]=size(img0);
img=double(img0);

img = log(1+img);        %取对数 
img  = fft2(img);    %傅立叶变换 
img =fftshift(img);      %将频域原点移到图像中心  
for i=1:M 
    for j=1:N  
        D(i,j)=sqrt(((i-floor(M/2))^2+(j-floor(N/2))^2)); %点(i,j)到频率平面原点的距离 
    end                
end 
c=4;        %锐化参数,可调 
Do=150 ;  %一般是方差 (滤波器的高通截止频率) 
H=(2.0-0.5)*(1-exp(-c*(D.^2/(Do^2))))+0.5; %滤波器函数 
himg=img.*H;    
himg=ifftshift(himg);
gimg=ifft2(himg);    %逆傅立叶变换 
gimg=exp(gimg);      %取指数 
G=real(gimg);    
img=G;
 img_min=min(img(:));img_max=max(img(:));
img=(img-img_min)/(img_max-img_min);  
img=imadjust(img,[0 1],[0 1],0.2);
w1=fspecial('gaussian',[5,5],2.3);
img_new=imfilter(img,w1);  
% figure,imshow(img_new,[]); 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?