Simplify a 2D closed contour/polygon to within user-defined boundary offset tolerance
Updated 4 Sep 2020

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 (2024). DecimatePoly (, GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Bounding Regions in Help Center and MATLAB Answers

Inspired: MatClust

Community Treasure Hunt

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

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

Use from GitHub

- migrated to GitHub

Modified code according to suggestions made by Georgios Gkantzounis and Erik Husby

updated description

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.