How can I define a measure of similarity between two line segments in $\mathbb{R}^2$?

10.2k Views Asked by At

I have two segments in $\mathbb{R}^2$ and I would like to define a measure of similarity between the two segments.

My idea is that I can apply:

  1. a scale transformation $s$ in order to equate the lenghts of the two segments;
  2. a translation $\mathbf{t}$ in order to equate the center points of the two segments;
  3. a 2D rotation of an angle $\alpha$ (described by a rotation matrix $\mathbf{R}$) in order to perfectly overlap the two segments.

and then the similarity measure would be based on

  1. the distance of $s$ from 1;
  2. the magnitude of $t$ (i.e. $\mathbf{t}^T\mathbf{t}$);
  3. the distance between $\alpha$ and 0 (or between $\mathbf{R}$ and the identity matrix $\mathbf{I}$).

but how to combine the above contributes? In a linear way?

Is there any "classic" measure of similarity already defined?

Edit: The two segments are oriented so $AB$ and $BA$ are different.

3

There are 3 best solutions below

0
On BEST ANSWER

One measure that is sometimes used, especially if the lines get more complicated is the (normal or weak) Fréchet distance (also on wiki) that takes into account the ordering of the points to be traversed on the lines. Also you may also find the answer here useful.

0
On

This paper describes six different measures, namely:

Hausdorff-distance (HD), Trucco-distance (TD), Modified line segment Hausdorff-distance (MHD), Modified perpendicular line segment Hausdorff-distance (MPHD), Midpoint-distance (MD), Closest point-distance (CD) and our new Straight line-distance function (SD).

WIRTZ, Stefan; PAULUS, Dietrich. Evaluation of established line segment distance functions. Proceedings of the 9th Open German-Russian Workshop on Pattern Recognition and Image Understanding Dec 1-5, 2014, Koblenz, Germany, 89.

1
On

I would like to suggest methods in this PPT(https://github.com/yaodi833/traj_similarity): enter image description here

And I find that TRACLUS is good for engineers

Reference: https://github.com/yaodi833/traj_similarity