📄 hienhance.m
字号:
%function butterworth
I = imread('lena1.bmp');
data=zeros(256,256); H=zeros(256,256);data1=zeros(256,256);
% J=fft2(I);K=fftshift(J);
TYPE=1;
D0=10;
D1=50;
C=0.5;
for m=1:256
for n=1:256
data1(m,n)=I(m,n);
end
end
% for Mm=1:10
% for Nn=1:10
%
% L=round(abs(256*rand(1,1)));
% M=round(abs(256*rand(1,1)));
% if(L<=1) L=1;
% end
% if(L>=256) L=256;
% end
% if(M<=1) M=1;
% end
% if(M>=256) M=256;
% end
%
%
% data1(L,M)=data1(L,M)+256*(rand(1,1)-0.5);
% end
% end
J=fft2(data1);K=fftshift(J);
for m=1:256
for n=1:256
data(m,n)=K(m,n);
disabs=sqrt((m-128)^2+(n-128)^2);
%butterworth
if TYPE==1
distance=1/(1+(D0/disabs)^2)+C;
end
%tixing
if TYPE==2
distance=(disabs-D0)/(D1-D0)+C;
end
%gauss
if TYPE==3
distance=1-exp(-(disabs/D0)^2)+C;
end
H(m,n)=distance;
if TYPE==1
data(m,n)=H(m,n)*K(m,n);
end
if TYPE==3
data(m,n)=H(m,n)*K(m,n);
end
if TYPE==2
if disabs<D0
data(m,n)=C*K(m,n);
elseif disabs<D1
data(m,n)=H(m,n)*K(m,n);
else data(m,n)=(1+C).*K(m,n);
end
end
% if distance>100
% K(m,n)=0;
% end
end
end
JJ=ifftshift(data);
R=ifft2(JJ);
imshow(abs(R),[])
% imshow(data,[])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -