version (28.7 KB) by Anton Semechko
Simplify a 2D closed contour/polygon to within user-defined boundary offset tolerance


Updated 4 Sep 2020

From GitHub

View License on GitHub

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Decimate 2D contours/polygons

View DecimatePoly on File Exchange

Have you ever worked with 2D boundary shape representations and noticed that the same shape can be represented with reasonable accuracy by a much smaller number of points? Did you ever need to reduce the complexity of a 2D shape while retaining as many salient features as possible? If so then DecimatePoly.m is the function you have been looking for.

Quick Demos

DecimatePoly_demo1: Simplify a 2D contour extracted from a binary image. Three binary images are included as examples. This demo requires Image Processing Toolbox to run.

DecimatePoly_demo2: Simplifying complex shapes while retaining geometrically and visually salient features.

DecimatePoly_demo3: Use DecimatePoly.m to improve the run-time of in-polygon tests at the cost of minor misclassification errors.

Get Python version here

DecimatePoly.m was selected as Matlab Pick of the Week


MIT © 2019 Anton Semechko

Cite As

Anton Semechko (2022). DecimatePoly (, GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired: MatClust

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.