MATLAB Answers

How to bridge the gaps

24 views (last 30 days)
Please, see attached image.
I already, tried bwmorph(img,'bridge'); but it couldn't connect the detached lines.
I don't want to use extreme values of imdilate() since then the original shape and direction of the lines is lost. With extreme values of imdilate() I get thicker lines and this is not something I want to. I want to retain the same thickness but to get them elongated in a way so they can connect.
Any advice please?
Thanks

  0 Comments

Sign in to comment.

Accepted Answer

KALYAN ACHARJYA
KALYAN ACHARJYA on 17 Sep 2019
Edited: KALYAN ACHARJYA on 17 Sep 2019
"I want to retain the same thickness but to get them elongated in a way so they can connect".
I tried using
se=strel('line',h,v);
result=imdilate(binary_image,se);
After that
use imerode (different structuring element), may be you will get similar to the original shape, with reaching the almost equal thickness.

  4 Comments

Show 1 older comment
KALYAN ACHARJYA
KALYAN ACHARJYA on 17 Sep 2019
Like
se=strel('line',10,2);
% Check with different values, h represents horizantal (borading) pixels
%v represents vertical (borading) pixels
%Test with different values ans structuring elements, you will see the differences
The challenge due to the shape of the lines, which are little curves, not exactly as horizantal line.
Stelios Fanourakis
Stelios Fanourakis on 17 Sep 2019
Yeah. The small gaps filled. However there is a big gap at the upper curve that when I use high values e.g. 45 or 55 for horizontal and 14 for vertical in order to bridge the big gap, they usually tend to lose their shape and direction.
KALYAN ACHARJYA
KALYAN ACHARJYA on 17 Sep 2019
Please look here it may helps

Sign in to comment.

More Answers (0)

Sign in to answer this question.