|
from PIL import Image, ImageDraw, ImageFont |
|
|
|
from physical_boxes_define import gdf |
|
|
|
from dotenv import load_dotenv |
|
import os |
|
|
|
load_dotenv() |
|
PATH_ASSETS = os.getenv("PATH_ASSETS") |
|
|
|
|
|
|
|
def draw_bounding_boxes(image_path, gdf): |
|
image = Image.open(image_path + "bird.png").convert("RGB") |
|
|
|
draw = ImageDraw.Draw(image) |
|
|
|
|
|
|
|
font = ImageFont.truetype(PATH_ASSETS + "fonts/LiberationSans-Regular.ttf", 20) |
|
|
|
|
|
for _, row in gdf.iterrows(): |
|
xmin, ymin, xmax, ymax = row["geometry"].bounds |
|
draw.rectangle([xmin, ymin, xmax, ymax], outline="purple", width=2) |
|
draw.text((xmin, ymin - 22), row["name"], fill="black", font=font) |
|
|
|
image.save(image_path + "bird_boxed.png", "PNG") |
|
|
|
|
|
if __name__ == "__main__": |
|
draw_bounding_boxes(PATH_ASSETS + "images/", gdf) |
|
|