Github个人博客:https://joeyos.github.io
%Lee滤波
close all;clear all;clc;
IMAGE=imread('test.jpg');
IMAGE=rgb2gray(IMAGE);
figure();
imshow(IMAGE);title('原图');
[m,n]=size(IMAGE);
WL=7;%Lee滤波的窗长
IMAGE_filtered=zeros(m-floor(WL/2),n-floor(WL/2));
for i=floor(WL/2)+1 : m-floor(WL/2) %WL*WL滤波
for j=floor(WL/2)+1 : n-floor(WL/2)
Window=IMAGE(i-floor(WL/2) : i+floor(WL/2),j-floor(WL/2) : j+floor(WL/2));
%取窗口的数据
[k,p]=size(Window);
Temp=reshape(Window,1,k*p);
u_y=mean(Temp);
var_y=std2(Temp)*std2(Temp);
var_x=(var_y-u_y*u_y)/2;
a=1-var_x/var_y;
b=var_x/var_y;
IMAGE_filtered(i-floor(WL/2)+1,j-floor(WL/2)+1)=u_y+b*(IMAGE(i,j)-u_y);
end
end
IMAGE_filtered=IMAGE_filtered/max(max(IMAGE_filtered));
IMAGE_filtered=imadjust(IMA