How to detect non-overlapping curves and fit a sinusoidal or polynomial function to each detected curve in a binary image?

4 visualizaciones (últimos 30 días)
I have a binary image that contains a series of non-overlapping curves that I need to detect, determine their total lengths, and fit a sinusoidal (or polynomial) function to each detected curve. The lines in the original image have a certain thickness and there are some edge features that are not needed so I'd like to remove them (1st image attached).
I have tried the skeletonization procedure using bwmorph to generate curves with one pixel thickness but this didn't work (2nd image). Currently I am using Image J plugin AnalyzeSkeleton to perform the thinning procedure (3rd image), which I would rather do in Matlab.
So, my question is the following: Can you please recommend a convenient Matlab procedure to help me treat (remove edge features and perform curve thinning) and analyze the attached binary image (detect curves, determine their length, and fit a function to each curve)?
Thank you so much for your help!

Respuestas (0)

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by