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

2 Ansichten (letzte 30 Tage)
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!

Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by