MATLAB Answers

How to connect lines in a skeletonized image with arcs

9 views (last 30 days)
Steve
Steve on 11 Jun 2019
Answered: Steve on 12 Jun 2019
Hi,
I'm trying to find a way to have MATLAB connect the lines of the tripods in the first image (i.e., vertex_tripods.bmp) with arcs so that it looks something like the second image (i.e., vertex_tripods_connected.bmp). I would also like to have MATLAB calculate the angles of the tripods in the first image (with respect to the vertical axis). Thanks in advance for your help!

  0 Comments

Sign in to comment.

Answers (2)

darova
darova on 12 Jun 2019
Use bwmorph() to find branch points. I sorted them in counter clock-wise order:
img.png
Find distance and center between neighbor points:
img1.png
Assume arc radius is 1000 pixels. Draw perpendicular vector (length L) from center of a segment - get arc center p0
img2.pngimg3.png
Rotate radius vector using angle and rotation matrix to get points on arc
img4.png

  4 Comments

Show 1 older comment
Steve
Steve on 12 Jun 2019
The code also needs to work for larger numbers of tripods (see attached image: vertex_tripods2).
darova
darova on 12 Jun 2019
are those connections can be just straight lines?

Sign in to comment.


Steve
Steve on 12 Jun 2019
It should look like the second attached image (vertex_tripods_connected.bmp). In theory, the connections cannot be straight lines, but they can be arcs with very large radii.

  0 Comments

Sign in to comment.

Sign in to answer this question.