Vous êtes sur la page 1sur 3

1.ATMAV.

m
function [ Y ] = ATMAV( X, h )
% ATMED - The fuzzy filter with Triangular function with MEDian center
% x
- input (noisy image)
% y
- output (de-noised image)
% F
- window function, weighting function
if nargin < 2
h=3;
% local search window size: h=3; h=5; h=7; h=9; h=11;
f=1;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
else
f=(h-1)/2;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
end
F = zeros(h*h,1);
Y = zeros(size(X));
X = double(padarray(X,[f f],'symmetric'));
[m n ~] = size(X);
for i=1+f:1:m-f
for j=1+f:1:n-f
x=reshape(X(i-f:i+f, j-f:j+f),[],1);
xmin = min(x);
xmav = mean(x);
xmax = max(x);
F(:,:) = 0;
if (xmav-xmin==0)||(xmax-xmav==0)
F(:,:) = 1;
else
ind1 = find((x>=xmin)&(x<=xmav));
F(ind1) = 1-(xmav-x(ind1))/(xmav-xmin);
ind2 = find((x>=xmav)&(x<=xmax));
F(ind2) = 1-(x(ind2)-xmav)/(xmax-xmav);
end

end

Y(i-f,j-f) = sum(sum(F.*x))/sum(sum(F));
clear xmax xmin xmav ind1 ind2;

end
end

2.ATMED.m
function [ Y ] = ATMED( X, h )
% ATMED - The fuzzy filter with Triangular function with MEDian center
% x
- input (noisy image)
% y
- output (de-noised image)
% F
- window function, weighting function
if nargin < 2
h=3;
% local search window size: h=3; h=5; h=7; h=9; h=11;
f=1;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
else
f=(h-1)/2;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
end
F = zeros(h*h,1);
Y = zeros(size(X));
X = double(padarray(X,[f f],'symmetric'));
[m n ~] = size(X);

Page 1 of 3

for i=1+f:1:m-f
for j=1+f:1:n-f
x=reshape(X(i-f:i+f, j-f:j+f),[],1);
xmax = max(x);
xmin = min(x);
xmed = median(x);
F(:,:) = 0;
if (xmed-xmin==0)||(xmax-xmed==0)
F(:,:) = 1;
else
ind1 = find((x>=xmin)&(x<=xmed));
F(ind1) = 1-(xmed-x(ind1))/(xmed-xmin);
ind2 = find((x>=xmed)&(x<=xmax));
F(ind2) = 1-(x(ind2)-xmed)/(xmax-xmed);

end

end
Y(i-f,j-f) = sum(sum(F.*x))/sum(sum(F));
clear xmax xmin xmed;

end
end

3.TMAV.m
function [ Y ] = TMAV( X, h )
% TMED - The fuzzy filter with Triangular function with MEDian center
% x
- input (noisy image)
% y
- output (de-noised image)
% F
- window function, weighting function
if nargin < 2
h=3;
% local search window size: h=3; h=5; h=7; h=9; h=11;
f=1;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
else
f=(h-1)/2;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
end
F = zeros(h*h,1);
Y = zeros(size(X));
X = double(padarray(X,[f f],'symmetric'));
[m n ~] = size(X);
for i=1+f:1:m-f
for j=1+f:1:n-f
x=reshape(X(i-f:i+f, j-f:j+f),[],1);
xmax = max(x);
xmin = min(x);
xmav = mean(x);
xmv = max(xmax-xmav, xmav-xmin);
F(:,:) = 0;
if xmv==0
F(:,:) = 1;
else
F = (abs(x-xmav)/xmv);
end
Y(i-f,j-f) = sum(sum(F.*x))/sum(sum(F));
clear xmax xmin xmed xmm;

Page 2 of 3

end

end
end

4.TMED.m
function [ Y ] = TMED( X, h )
% TMED - The fuzzy filter with Triangular function with MEDian center
% x
- input (noisy image)
% y
- output (de-noised image)
% F
- window function, weighting function
if nargin < 2
h=3;
% local search window size: h=3; h=5; h=7; h=9; h=11;
f=1;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
else
f=(h-1)/2;
% padding value for window: f=1; f=2; f=3; f=4; f=5;
end
F = zeros(h*h,1);
Y = zeros(size(X));
X = double(padarray(X,[f f],'symmetric'));
[m n ~] = size(X);
for i=1+f:1:m-f
for j=1+f:1:n-f
x=reshape(X(i-f:i+f, j-f:j+f),[],1);
xmax = max(x);
xmin = min(x);
xmed = median(x);
xmm = max(xmax-xmed, xmed-xmin);
F(:,:) = 0;
if xmm==0
F(:,:) = 1;
else
F = (abs(x-xmed)/xmm);
end
Y(i-f,j-f) = sum(sum(F.*x))/sum(sum(F));
clear xmax xmin xmed xmm;
end
end
end

5.MSE.m
function e = MSE( y, s )
% Mean Square Error
% y - Original image
% s - de-noised image
[m n ~] = size(y);
y = double(y);
s = double(s);
e = sum(sum((y-s).^2))/(m*n);

Page 3 of 3

Vous aimerez peut-être aussi