%greyscale morphological closing with 3x9 kernel
beeld=imread('lines.jpg','jpg');
[r k dim3]=size(beeld);
A=beeld(:,:,1);
nieuw=A;
%greyscale morphological dilation with 3x9 kernel
for i=1:r
for j=1:k
if j>1 & A(i,j-1)2 & A(i,j-2)3 & A(i,j-3)4 & A(i,j-4)1 & j>1 & A(i-1,j-1)1 & j1 & j>2 & A(i-1,j-2)1 & j1 & j>3 & A(i-1,j-3)1 & j1 & j>4 & A(i-1,j-4)1 & j1 & A(i+1,j-1)2 & A(i+1,j-2)3 & A(i+1,j-3)4 & A(i+1,j-4)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
%additional conditians for 3x9 kernel
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 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
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 i>1 & j>3 & A(i-1,j-3)>A(i,j) & nieuw(i-1,j-3)>A(i,j)
nieuw(i-1,j-3)=A(i,j);
end
if i3 & A(i+1,j-3)>A(i,j) & nieuw(i+1,j-3)>A(i,j)
nieuw(i+1,j-3)=A(i,j);
end
if j>3 & A(i,j-3)>A(i,j) & nieuw(i,j-3)>A(i,j)
nieuw(i,j-3)=A(i,j);
end
if i>1 & j>4 & A(i-1,j-4)>A(i,j) & nieuw(i-1,j-4)>A(i,j)
nieuw(i-1,j-4)=A(i,j);
end
if i4 & A(i+1,j-4)>A(i,j) & nieuw(i+1,j-4)>A(i,j)
nieuw(i+1,j-4)=A(i,j);
end
if j>4 & A(i,j-4)>A(i,j) & nieuw(i,j-4)>A(i,j)
nieuw(i,j-4)=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 iA(i,j) & nieuw(i+1,j+2)>A(i,j)
nieuw(i+1,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>1 & jA(i,j) & nieuw(i-1,j+3)>A(i,j)
nieuw(i-1,j+3)=A(i,j);
end
if iA(i,j) & nieuw(i+1,j+3)>A(i,j)
nieuw(i+1,j+3)=A(i,j);
end
if jA(i,j) & nieuw(i,j+3)>A(i,j)
nieuw(i,j+3)=A(i,j);
end
if i>1 & jA(i,j) & nieuw(i-1,j+4)>A(i,j)
nieuw(i-1,j+4)=A(i,j);
end
if iA(i,j) & nieuw(i+1,j+4)>A(i,j)
nieuw(i+1,j+4)=A(i,j);
end
if jA(i,j) & nieuw(i,j+4)>A(i,j)
nieuw(i,j+4)=A(i,j);
end
end
end
imwrite(nieuw,'linesopening3x9.jpg','jpg');