View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
2D Line Curvature and Normals

4.7 | 7 ratings Rate this file 96 Downloads (last 30 days) File Size: 8.97 KB File ID: #32696 Version: 1.3
image thumbnail

2D Line Curvature and Normals


Dirk-Jan Kroon (view profile)


26 Aug 2011 (Updated )

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

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information

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)
    Vertices : A M x 2 list of line points.
    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])
    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

    V : List of points/vertices 2 x M
    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])
    N : The normals of the Vertices 2 x M


This file inspired Thick Line(X,Y,Thickness).

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 (12)
25 Oct 2016 Sleh Eddine Brika

22 Aug 2016 Bojan

Bojan (view profile)

Hi . Can this code be used to break the curved line into small line segments of appropriate size with their ends overlapped to some small extent and then take hough transform?

Comment only
28 Jun 2016 GOPEE Ajit Kumar

can the code be used to find singular points in fingerprint? if yes how plz? thx. Ajit

Comment only
02 Mar 2016 Benjamin Miller

23 Jun 2015 Robbin van Hoek

From what i understand the algorithm only uses the direct neighbors of the point to be evaluated correct? is it possible to include multiple nearby points to get a more accurate result?

12 Mar 2015 Khalid Ali

What is meant by lines?

Comment only
12 Jan 2015 rabeeah

very useful code. i would also like to know the mathematical model used. does it use the freeman chain code Dirk?

Comment only
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

Simon (view profile)

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

Comment only
18 Jan 2013 Willy

Willy (view profile)

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:-
L=[(1:(size(V,1)-1))' (2:size(V,1))'];
In the code I saw,the above was :-
Lines=[(1:(size(Vertices,1)-1))' (2:size(Vertices,1))'];

17 Oct 2011 1.3

Corrected typo reported by Ravikiran Janardhana

Contact us