Polygon Utilities


Mahotas is not a package to generate images, but there are a few simple functions to draw lines and polygons on an image (the target image is known as the canvas in this documentation).

The simplest function is line: Give it two points and it draws a line between them. The implementation is simple, and in Python, so it will be slow for many complex usage.

The main purpose of these utilities is to aid debugging and visualisation. If you need to generate fancy graphs, look for packages such as matplotlib.

Convex Hull

Convex hull functions are a more typical image processing feature. Mahotas has a simple one, called convexhull. Given a boolean image (or anything that will get interpreted as a boolean image), it finds the convex hull of all its on points.

The implementation is in C++, so it is fast.

A companion function fill_convexhull returns the convex hull as a binary image.

API Documentation

mahotas.polygon.line((y0, x0), (y1, x1), canvas, color=1)

Draw a line


p0 : pair of integers

first point

p1 : pair of integers

second point

canvas : ndarray

where to draw, will be modified in place

color : integer, optional

which value to store on the pixels (default: 1)


Implementation Reference

mahotas.polygon.fill_polygon([(y0, x0), (y1, x1), ..., ]canvas, color=1)

Draw a filled polygon in canvas


polygon : list of pairs

a list of (y,x) points

canvas : ndarray

where to draw, will be modified in place

color : integer, optional

which colour to use (default: 1)


Compute the convex hull as a polygon

This is an implementation of the Graham Scan: http://en.wikipedia.org/wiki/Graham_scan


bwimg : ndarray

input image (interpreted as boolean). Only 2D arrays are supported.


hull : ndarray

Set of (y,x) coordinates of hull corners


Compute the convex hull and return it as a binary mask

Parameters:bwimage : input image (interpreted as boolean)
Returns:hull : image of same size and dtype as bwimg with the hull filled in.