退化函数为
Matlab代码:
function out=daqituanliu(img,k)
img=double(img);
F=fft2(img);
[m,n,h]=size(F);
H=zeros(m,n);
for i=1:m
for j=1:n
H(i,j)=exp(-k*((i-m/2)^2+(j-n/2)^2)^(5/6));
end
end
if h==1
out=uint8(real(ifft2(F.*H)));
elseif h==3
out=zeros(m,n,h);
for i=1:3
out(:,:,i)=real(ifft2(F(:,:,i).*H));
end
out=uint8(out);
end
效果展示:
k的取值范围自己调试。