Code covered by the BSD License  

Highlights from
2D Line Curvature and Normals

4.75

4.8 | 4 ratings Rate this file 89 Downloads (last 30 days) File Size: 8.97 KB File ID: #32696
image thumbnail

2D Line Curvature and Normals

by

 

26 Aug 2011 (Updated )

Accurate Curvature and Normals of a line/contour consisting of 2D points

| Watch this File

File Information
Description

LineCurvature2D, This function calculates the curvature of a 2D line. It first fits polygons to the points. Then calculates the analytical curvature from the polygons.
 
   K = LineCurvature2D(Vertices,Lines)
  
  inputs,
    Vertices : A M x 2 list of line points.
    (optional)
    Lines : A N x 2 list of line pieces, by indices of the vertices
          (if not set assume Lines=[1 2; 3 4 ; ... ; M-1 M])
 
  outputs,
    K : M x 1 Curvature values

.
.
LineNormals2D, This function calculates the normals, of the line. Using the neighbouring points of each line/contour point, and forward an backward differences on the end points

  N=LineNormals2D(V,L)
 
  inputs,
    V : List of points/vertices 2 x M
  (optional)
    Lines : A N x 2 list of line pieces, by indices of the vertices
          (if not set assume Lines=[1 2; 3 4 ; ... ; M-1 M])
 
  outputs,
    N : The normals of the Vertices 2 x M
 

MATLAB release MATLAB 7.12 (R2011a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
29 Aug 2014 Michael

Thank you, good code to find in my case finger tips on a hand scan

18 Feb 2014 Yunfeng  
08 Jul 2013 Simon

Is there any literature to back this up??
Also, the grammar in the comments needs serious work....

18 Jan 2013 Willy

Thank you! Very usefull code! I would like to understand the maths behind the code better. Is this code based on some literature?

15 Oct 2011 Ravikiran Janardhana

I would like to point out a small typo:-
*****(correct)****
if(nargin<2)
L=[(1:(size(V,1)-1))' (2:size(V,1))'];
end
*****
In the code I saw,the above was :-
*****(typo)*****
Lines=[(1:(size(Vertices,1)-1))' (2:size(Vertices,1))'];
*****

Updates
17 Oct 2011

Corrected typo reported by Ravikiran Janardhana

Contact us