Chcete-li přidat zobrazovaný text do obrázku při kreslení hranic objektů pomocí funkce "draw_vertices" v knihovně Pillow Python, můžeme postupovat krok za krokem. Tento proces zahrnuje načtení vrcholů detekovaných objektů z Google Vision API, nakreslení hranic objektů pomocí vrcholů a nakonec přidání zobrazovaného textu do obrázku.
1. Získejte vrcholy detekovaných objektů:
– Použijte Google Vision API k detekci objektů v obraze.
– Extrahujte vrcholy každého detekovaného objektu z odpovědi API. Vrcholy představují čtyři rohy ohraničovacího rámečku, který obklopuje objekt.
2. Nakreslete hranice objektu pomocí vrcholů:
– Načtěte obrázek pomocí knihovny Pillow v Pythonu.
– Vytvořte instanci modulu ImageDraw z knihovny Pillow.
– Iterujte přes vrcholy každého objektu a nakreslete obdélník pomocí funkce „draw.rectangle“ z modulu ImageDraw.
– Funkce „draw.rectangle“ bere jako argumenty souřadnice levého horního a pravého dolního rohu obdélníku.
3. Přidejte k obrázku zobrazovaný text:
– Vytvořte další instanci modulu ImageDraw.
– Iterujte přes vrcholy každého objektu a přidejte zobrazovaný text pomocí funkce „draw.text“ z modulu ImageDraw.
– Funkce "draw.text" bere jako argumenty souřadnice polohy textu a textový řetězec.
– Písmo, velikost, barvu a další vlastnosti textu můžete přizpůsobit zadáním dalších parametrů ve funkci „draw.text“.
Zde je ukázkový fragment kódu, který demonstruje výše popsaný proces:
python from PIL import Image, ImageDraw, ImageFont # Step 1: Retrieve the vertices of the detected objects # (Assuming you have already obtained the vertices from the Google Vision API) vertices = [ [(100, 100), (200, 100), (200, 200), (100, 200)], # Example vertices of object 1 [(300, 150), (400, 150), (400, 250), (300, 250)] # Example vertices of object 2 ] # Step 2: Draw object borders using the vertices image = Image.open("input_image.jpg") draw = ImageDraw.Draw(image) for vertex in vertices: draw.rectangle(vertex, outline="red") # Step 3: Add display text to the image font = ImageFont.truetype("arial.ttf", 12) text_draw = ImageDraw.Draw(image) for i, vertex in enumerate(vertices): text_position = vertex[0][0], vertex[0][1] - 20 text_draw.text(text_position, f"Object {i+1}", font=font, fill="red") # Save the modified image image.save("output_image.jpg")
V tomto příkladu předpokládáme, že vrcholy objektů již byly získány z Google Vision API. Poté načteme obrázek pomocí knihovny Pillow, nakreslíme okraje objektu pomocí vrcholů a přidáme text zobrazení nad každý objekt.
Nezapomeňte upravit kód podle svých konkrétních požadavků, jako je písmo, velikost písma a barva textu.
Další nedávné otázky a odpovědi týkající se Kreslení hranic objektů pomocí polštářové pythonové knihovny:
- Jaké jsou parametry metody "draw.line" v poskytnutém kódu a jak se používají ke kreslení čar mezi hodnotami vrcholů?
- Jak lze knihovnu polštářů použít ke kreslení hranic objektů v Pythonu?
- Jaký je účel funkce „draw_vertices“ v poskytnutém kódu?
- Jak může rozhraní Google Vision API pomoci při pochopení tvarů a objektů na obrázku?