%% NVBMF Nearest Value Based Mean Filter for S&P denoising function X=NVBMF(C1) [M,N]=size(C1); CC(1:M+10,1:N+10)=zeros(M+10,N+10); CC(6:M+5,6:N+5)=double(C1(1:M,1:N)); C=mod(CC,255);C2=double(C); modlu_image(1:M,1:N)=uint8(C(6:M+5,6:N+5)); [row,col,v] = find(C); uzunluk=length(v); gurultu_orani=1-(uzunluk/(M*N)); for i=6:M+5 for j=6:N+5 if C(i,j)==0 en_Yakin_pixels=C(i-5:i+5,j-5:j+5); [satir,sutun,deger] = find(en_Yakin_pixels); b=zeros(length(satir)); satir_uzaklik=(abs(satir-6)); sutun_uzaklik=(abs(sutun-6)); uzaklik=sqrt(satir_uzaklik.^2+sutun_uzaklik.^2); b=sort(uzaklik); bir_val=[]; for x=1:length(b) if x==1 bir=find(uzaklik==b(1)); bir_val=deger(bir); % bir_str_uzk=satir_uzaklik_1(bir); % bir_stn_uzk=sutun_uzaklik_1(bir); end end if isempty(bir_val) a=(C2(i-5:i+5,j-5:j+5)); x=find(a); uzunluk=length(x); C2(i,j)=sum(a(:))/uzunluk; else % C2(i,j)=bir_val(1); C2(i,j)=mean(bir_val); end end end end if gurultu_orani>0.45 for i=6:M+5 for j=6:N+5 if C(i,j)==0 v = nonzeros(C2(i-1:i+1,j-1:j+1)); a1=(C2(i-1:i+1,j-1:j+1)); x1=find(a1); uzunluk1=length(x1); C2(i,j)=sum(a1(:))/uzunluk1; end end end end son=uint8(C2(6:M+5,6:N+5)); C1=uint8(son); %figure,imshow(C1) X=C1; end