Detecting curves from binary image?

2 views (last 30 days)
I am trying to detect curves with a pre-determined shaped from a dataset. The input image will be similar to the following picture: data.png
I want to find a line through the left-most and right-most points, as roughly indicated in the following picture:
data_lines.png
So far, I can imagine two ways to get this result:
  • First find a way to extract the left-most points and right-most points and using a 3rd/5th degree polynomial or a hyperbolic sine fit through these points.
  • Using something like a hough transform but applying it for curved lines.
So far, I have not found a good way to get the results I need, also caused by the fact that the data set is quite large [8890x1312] (above images are stretched in the x direction), making it extremely slow to loop over each pixel.
Do you guys have any ideas to tackle this problem?
  2 Comments
Zihan Wu
Zihan Wu on 9 Jul 2019
Hi Sebbe,
I have the same problem with yours. How did you solve this problem in the end?
Thank you!
Image Analyst
Image Analyst on 10 Jul 2019
He accepted the answer below so I assume that is what he used. If boundary() is not working for you, then please post your image in a new question.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 24 Nov 2018
Try boundary()

More Answers (0)

Community Treasure Hunt

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

Start Hunting!