براي حذف نويز گوسي از چندين روش مي توان استفاده كرد، (كدهاي زير در متلب نوشته شده و براي توضيحات بيشتر براي هر كدام مي توانيد به كتاب پردازش تصوير گنزالس مراجعه كنيد)
1- استفاده از يك فيلتر نرم كننده
function [MO]=my_gussian_noise(MI,k)
N = size(MI,1);
M = size(MI,2);
TEMP=zeros(N,M);
for i=2:N-1
for j=2:M-1
row1=double(MI(i-1,j-1))+double(MI(i,j-1))+double(MI(i+1,j-1));
row2=double(MI(i-1,j))+double(MI(i+1,j))+double((k*MI(i,j)));
row3=double(MI(i,j+1))+double(MI(i+1,j+1))+double( MI(i-1,j+1));
TEMP(i,j)=uint32((row1+row2+row3)/(8+k));
end;
end;
MO=TEMP;
2- استفاده از فيلتر پايين گذر
%Fix Gussian Noise With Low Pass Filter
function [MO]=my_lowpass_filter(MI,k)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
ideal=double(Duv<=k);
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*ideal)));
3- استفاده از روش Butter Worth درجه 2
%Fix Gussian Noise With Butter Worth (Degree 2)
function [MO]=my_butter_worth2(MI,k)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
btw2=1 ./ (1.0 + (Duv ./ k).^(2));
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*btw2)));
4- استفاده از روش Butter Worth درجه 3
%Fix Gussian Noise With Butter Worth (Degree 3)
function [MO]=my_butter_worth4(MI)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
btw4=1 ./ (1.0 + (Duv ./ k).^(4));
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*btw4)));
براي حذف نويز فلفل نمكي شما كافيه يك ماسك را بر روي تصوير حركت دهيد
%Fix Salt And Pepper Noise
function [MO]=my_spark_noise(MI)
N = size(MI,1);
M = size(MI,2);
arr=[9];
for i=2:N-1
for j=2:M-1
arr(1)=MI(i-1,j-1);
arr(2)=MI(i,j-1);
arr(3)=MI(i+1,j-1);
arr(4)=MI(i-1,j);
arr(5)=MI(i,j);
arr(6)=MI(i+1,j);
arr(7)=MI(i-1,j+1);
arr(8)=MI(i,j+1);
arr(9)=MI(i+1,j+1);
arr=sort(arr);
TEMP(i,j)=arr(5);
end;
end;
MO=TEMP;