I start with a photograph of a shape (physically made by the flow of a liquid into another), of which I can extract the border, manually or using Mathematica's feature detect feature :
Using the method described here, I extract some points of the shape, in a standard list form ({{x,y},{x,y}, ...}
). Here is the example plot of such data :
How to :
- Obtain the shape's area (area of the enclosed zone)
- How to get an algebraic fit of the shape (and/or part of it)?
- How to compare one shape against another, on their respective "jaggedness".
Question 3 is more of a mathematical question, but I'm just searching for an approximate comparison tool, more in the spirit of the following example than something absolute:
I expected CornerFilter
to work, but it seems to give no result whatsoever. As for 2, I can fit small part of the curve using Fit[]
, but the general shape has multiple point with the same x
, which forbid this.
PolygonSignedArea[pts_?MatrixQ] := Total[Det /@ Partition[pts, 2, 1, {1, 1}]]/2
. If the points aren't already sorted, Sjoerd says to look atListCurvePathPlot[]
(and the related functionFindCurvePath[]
). $\endgroup$