Connect lines of binary image

Dear comunity,
I have the following image composed by many (almost closed) lines. I am contacting you because I would like to know if somebody has an elegant solution to connect the lines (some of them are broken). If possible, I would like to avoid the use of morphological operators as it is importat to me to maintain the lines profile.
Thank you in advance for your help,
Santiago

6 Comments

I would like to know if somebody has an elegant solution to close the lines
What does it mean?
Dear Kalyan, I just changed the text so it can be better understood; I want to connect the lines. Thanks!
Have you tried a morphological operation with a non-symmetrical structuring element? That would probably get you most of the way there.
Have you tried houghtransform. It can help you find the lines.
[H,T,R] = hough(BW);
P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));
lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
Dear Mohammad Sami,
That sounds very interesting. Could you please explain a little bit more? (e.g. how to plot the lines...)
Thank you very much.
Have you looked at the documentation for the houghlines function? It includes an example.
As for my suggestion, you can very easily create a non-symmetrical structuring element like this:
r=1;
x=linspace(-1,1,10);
y=linspace(-2,2,10);
[X,Y]=ndgrid(x,y);
SE=sqrt(X.^2+Y.^2) <= r;

Sign in to comment.

Answers (0)

Categories

Asked:

on 24 Jan 2020

Commented:

Rik
on 27 Jan 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!