Lines surrounding contiguous regions in an image can be extracted using MATLAB's built-in contour/contourc functions, but these functions perform linear interpolation between pixels leading to 'cut corners'. bwperim from the imaging toolbox will trace boundaries without interpolation, but only provides its result as a pixel map. This function, bwperimtrace, instead outputs line segments that entirely contain all non-zero pixels in the input image. The package also includes contourc4, a replacement for contourc, which doesn't perform any interpolation between pixels.
Daniel Warren (2023). Trace perimeter of binary image with line segments (bwperimtrace) (https://www.mathworks.com/matlabcentral/fileexchange/49551-trace-perimeter-of-binary-image-with-line-segments-bwperimtrace), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired: Im2mesh (2D image to triangular meshes)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Update submission title to better reflect its purpose.