I need to create a numpy 2D array which represents a binary mask of a polygon, using standard Python packages.
(Larger context: I want to get the distance transform of this polygon using scipy.ndimage.morphology.distance_transform_edt.)
Can anyone show me how to do this?
The answer turns out to be quite simple:
import numpy
from PIL import Image, ImageDraw
# polygon = [(x1,y1),(x2,y2),...] or [x1,y1,x2,y2,...]
# width = ?
# height = ?
img = Image.new('L', (width, height), 0)
ImageDraw.Draw(img).polygon(polygon, outline=1, fill=1)
mask = numpy.array(img)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With