MATLAB: Detecting curves from binary image

binary imagecurve detectionhough transformimage analysisimage processing

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 [8890×1312] (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?

Best Answer

Try boundary()