%greyscale morphological erosion with 5x5 kernel beeld=imread('testeros5x5.jpg','jpg'); [r k dim3]=size(beeld); A=beeld(:,:,1); nieuw=A; for i=1:r for j=1:k %3x3 kernel if i>1 & j>1 & A(i-1,j-1)>A(i,j) & nieuw(i-1,j-1)>A(i,j) nieuw(i-1,j-1)=A(i,j); end if iA(i,j) & nieuw(i+1,j+1)>A(i,j) nieuw(i+1,j+1)=A(i,j); end if j>1 & A(i,j-1)>A(i,j) & nieuw(i,j-1)>A(i,j) nieuw(i,j-1)=A(i,j); end if jA(i,j) & nieuw(i,j+1)>A(i,j) nieuw(i,j+1)=A(i,j); end if i>1 & A(i-1,j)>A(i,j) & nieuw(i-1,j)>A(i,j) nieuw(i-1,j)=A(i,j); end if iA(i,j) & nieuw(i+1,j)>A(i,j) nieuw(i+1,j)=A(i,j); end if i>1 & jA(i,j) & nieuw(i-1,j+1)>A(i,j) nieuw(i-1,j+1)=A(i,j); end if i1 & A(i+1,j-1)>A(i,j) & nieuw(i+1,j-1)>A(i,j) nieuw(i+1,j-1)=A(i,j); end %5x5 kernel, additional conditions if i>2 & j>2 & A(i-2,j-2)>A(i,j) & nieuw(i-2,j-2)>A(i,j) nieuw(i-2,j-2)=A(i,j); end if iA(i,j) & nieuw(i+2,j+2)>A(i,j) nieuw(i+2,j+2)=A(i,j); end if j>2 & A(i,j-2)>A(i,j) & nieuw(i,j-2)>A(i,j) nieuw(i,j-2)=A(i,j); end if jA(i,j) & nieuw(i,j+2)>A(i,j) nieuw(i,j+2)=A(i,j); end if i>2 & A(i-2,j)>A(i,j) & nieuw(i-2,j)>A(i,j) nieuw(i-2,j)=A(i,j); end if iA(i,j) & nieuw(i+2,j)>A(i,j) nieuw(i+2,j)=A(i,j); end if i>2 & jA(i,j) & nieuw(i-2,j+2)>A(i,j) nieuw(i-2,j+2)=A(i,j); end if i2 & A(i+2,j-2)>A(i,j) & nieuw(i+2,j-2)>A(i,j) nieuw(i+2,j-2)=A(i,j); end if i>2 & j>1 & A(i-2,j-1)>A(i,j) & nieuw(i-2,j-1)>A(i,j) nieuw(i-2,j-1)=A(i,j); end if iA(i,j) & nieuw(i+2,j+1)>A(i,j) nieuw(i+2,j+1)=A(i,j); end if i>2 & jA(i,j) & nieuw(i-2,j+1)>A(i,j) nieuw(i-2,j+1)=A(i,j); end if j>1 & iA(i,j) & nieuw(i+2,j-1)>A(i,j) nieuw(i+2,j-1)=A(i,j); end if i>1 & j>2 & A(i-1,j-2)>A(i,j) & nieuw(i-1,j-2)>A(i,j) nieuw(i-1,j-2)=A(i,j); end if iA(i,j) & nieuw(i+1,j+2)>A(i,j) nieuw(i+1,j+2)=A(i,j); end if i>1 & jA(i,j) & nieuw(i-1,j+2)>A(i,j) nieuw(i-1,j+2)=A(i,j); end if i2 & A(i+1,j-2)>A(i,j) & nieuw(i+1,j-2)>A(i,j) nieuw(i+1,j-2)=A(i,j); end end end imwrite(nieuw,'testeros5x5x2.jpg','jpg');