Find vertices in image of convex polygon

Version 1.0.0 (6.82 KB) by Matt J
Estimates the corner points of a pixelated convex polygon having a known number of vertices.
Updated 5 Feb 2020

View License

The command pgonCorners() implemented in this FEX submission takes a binary image of a convex polygon as input and returns estimated locations of its vertices (to the nearest pixel) as output. Prior knowledge of the number of vertices is assumed. The method used is based on an idea from linear programming discussed in this Matlab Answers post,

Although the method was designed with convex polygons in mind, it sometimes works rather well on approximately convex objects, as demonstrated in example scripts contained in this submission and illustrated in the thumbnail image above.


corners = pgonCorners(BW,k)
corners = pgonCorners(BW,k,N)


BW: Input binary image.
k: Number of vertices to search for.
N: Number of angular samples partitioning the unit circle (default=360).
Affects the resolution of the search.


corners: Detected corners in counter-clockwise order as a k x 2 matrix.

Cite As

Matt J (2024). Find vertices in image of convex polygon (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux
Find more on Geometric Transformation and Image Registration in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes