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[]). – J. M.'s missing motivation May 22 '12 at 18:58ArcTan[x,y]rather than the form you are currently using – acl May 22 '12 at 19:50Apply[ArcTan, {x, y}]is a valid application, yes? – J. M.'s missing motivation May 22 '12 at 19:51curvLoc = (Position[ImageData[img], 0]); centredpts = Map[# - N@Mean[curvLoc] &, curvLoc]; topolars = {Sqrt[#[[1]]^2 + #[[2]]^2], ArcTan[#[[1]], #[[2]]]} &; frompolars = {#[[1]]*Cos[#[[2]]], #[[1]]*Sin[#[[2]]]} &; polarpts = Reverse[SortBy[topolars /@ centredpts, Last], 2]; fint = Interpolation[polarpts]; PolarPlot[fint[\[Theta]], {\[Theta], -\[Pi], \[Pi]}]to see what I mean. this happens becauseListPlot[polarpts[[All, 2]]]– acl May 22 '12 at 22:39polarptsis the polar angle, the second the radius; if you plot the radius, you see there are "overhangs") – acl May 22 '12 at 22:40