digiwild / app /boxes_map.py
vancauwe's picture
feat: bounding boxes on bird body
b092e67
raw
history blame
882 Bytes
from PIL import Image, ImageDraw, ImageFont
from boxes_define import gdf
# Function to draw the bounding boxes on the image
def draw_bounding_boxes(image_path, gdf):
image = Image.open(image_path+'bird.png').convert("RGB")
# Convert the image to an editable format
draw = ImageDraw.Draw(image)
# Optional: Load a font (requires a TTF file)
try:
font = ImageFont.truetype("arial.ttf", 15)
except IOError:
font = ImageFont.load_default()
# Draw each bounding box on the image
for _, row in gdf.iterrows():
xmin, ymin, xmax, ymax = row['geometry'].bounds
draw.rectangle([xmin, ymin, xmax, ymax], outline="red", width=2)
draw.text((xmin, ymin-10), row['name'], fill="red", font=font)
image.save(image_path+'bird_boxed.png', "PNG")
if __name__ == "__main__":
draw_bounding_boxes('assets/images/', gdf)