Code covered by the BSD License  

Highlights from
Line Simplification

5.0

5.0 | 3 ratings Rate this file 47 Downloads (last 30 days) File Size: 6.03 KB File ID: #21132
image thumbnail

Line Simplification

by Wolfgang Schwanghart

 

19 Aug 2008 (Updated 13 Jul 2010)

Recursive Douglas-Peucker Polyline Simplification (Iterative Endpoint Fit)

| Watch this File

File Information
Description

dpsimplify uses the recursive Douglas-Peucker line simplification algorithm to reduce the number of vertices in a polyline according to a specified tolerance. The algorithm is also know as Iterative Endpoint Fit algorithm. dpsimplify can handle polylines and polygones in 2d and higher dimensions.

The submission now contains another m-file (dpsimplify_octave.m) that has been slightly modified to run with GNU Octave.

Syntax:

[ps,ix] = dpsimplify(p,tol)

where p is a nxm matrix that contains n vertices in m dimensions.
 
For additional information on the algorithm follow this link
http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm

Acknowledgements
This submission has inspired the following:
Region Growing (2D/3D grayscale)
MATLAB release MATLAB 7.5 (R2007b)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (10)
20 Aug 2008 Gwendolyn Fisch

Hi,

the implementation fails if start and end point of the given line are the same.

Gwen

21 Aug 2008 Wolfgang Schwanghart

Hi Gwen,

you are right. I'll fix that as soon as possible.

Thanks,
Wolfgang

21 Aug 2008 Wolfgang Schwanghart

The file has been updated so that the function can handle polylines, where the first and last vertex have the same coordinates. Just wait a short time until the updated version from 22. August appears.

30 Mar 2010 Alistair Templeton

Hi Wolfgang,
I wanted to simplify a contour as exported from a piece of imaging software which was way oversampled. Your program completely plugged and played, perfect!

Cheers

20 Oct 2010 AndreasChr Christ

Hi Wolfgang,
I have got cell tracking algorithm for microcopy images as m-files.
Unfortunately this uses MathLabs function "reducem". But we don't have the maps toolbox this function belongs to. Do you have experience if your dpsimplify could repolace reducem?
Yours
Andreas

25 Oct 2010 Wolfgang Schwanghart

Hi Andreas,

unfortunately I do not have access to the mapping toolbox, so I cannot tell if the results will be the same for dpsimplify and reducem. In general, however, I think, you can replace reducem with this function.

Best regards,
Wolfgang

29 Oct 2010 AndreasChr Christ

Hi Wolfgang,
thanks for your answer. Iwill try it
Regards
Andreas

19 Jan 2011 Brandon  
05 Sep 2011 Daniel  
29 Sep 2011 Mate  
Please login to add a comment or rating.
Updates
22 Aug 2008

algorithm works also for polygons (start and end point of the polyline are the same).

23 Sep 2008

First, the algorithm can now handle nans in the vertex array. It assumes that nans in the array serve as separator of single polylines and treats each polyline/polygon separately.

10 Jan 2009

only minor changes: added some comments and changed the link to more information since it was dead.

15 Jun 2009

Removed a bug in calculating the second output argument. Improved handling of lines with only one segment.

14 Jun 2010

Added some information in the description.

13 Jul 2010

added m-file that runs with GNU Octave

Tag Activity for this File
Tag Applied By Date/Time
approximation Wolfgang Schwanghart 22 Oct 2008 10:15:16
interpolation Wolfgang Schwanghart 22 Oct 2008 10:15:16
polyline Wolfgang Schwanghart 22 Oct 2008 10:15:16
vertex reduction Wolfgang Schwanghart 22 Oct 2008 10:15:16
mathematics Wolfgang Schwanghart 22 Oct 2008 10:15:16
approximations Wolfgang Schwanghart 22 Oct 2008 10:15:16
approximations John 14 Jun 2010 22:53:27
interpolation John 14 Jun 2010 22:53:34
vertex reduction John 14 Jun 2010 22:53:47
polyline Rikard 30 Dec 2010 09:05:01

Contact us at files@mathworks.com