Ak chcete pridať zobrazovaný text do obrázka pri kreslení hraníc objektu pomocou funkcie „draw_vertices“ v knižnici Pillow Python, môžeme postupovať krok za krokom. Tento proces zahŕňa získanie vrcholov zistených objektov z Google Vision API, nakreslenie hraníc objektu pomocou vrcholov a nakoniec pridanie zobrazovaného textu do obrázka.
1. Získajte vrcholy zistených objektov:
– Využite Google Vision API na detekciu objektov na obrázku.
– Extrahujte vrcholy každého zisteného objektu z odpovede API. Vrcholy predstavujú štyri rohy ohraničujúceho rámčeka, ktorý obklopuje objekt.
2. Nakreslite hranice objektu pomocou vrcholov:
– Načítajte obrázok pomocou knižnice Pillow v Pythone.
– Vytvorte inštanciu modulu ImageDraw z knižnice Pillow.
– Iterujte cez vrcholy každého objektu a nakreslite obdĺžnik pomocou funkcie „draw.rectangle“ z modulu ImageDraw.
– Funkcia „draw.rectangle“ berie ako argumenty súradnice ľavého horného a pravého dolného rohu obdĺžnika.
3. Pridajte k obrázku zobrazený text:
– Vytvorte ďalšiu inštanciu modulu ImageDraw.
– Iterujte cez vrcholy každého objektu a pridajte zobrazovaný text pomocou funkcie „draw.text“ z modulu ImageDraw.
– Funkcia „draw.text“ berie ako argumenty súradnice polohy textu a textového reťazca.
– Písmo, veľkosť, farbu a ďalšie vlastnosti textu môžete prispôsobiť zadaním ďalších parametrov vo funkcii „draw.text“.
Tu je príklad útržku kódu, ktorý demonštruje proces opísaný vyššie:
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 príklade predpokladáme, že vrcholy objektov už boli získané z Google Vision API. Potom načítame obrázok pomocou knižnice Pillow, nakreslíme hranice objektu pomocou vrcholov a nad každý objekt pridáme zobrazený text.
Nezabudnite upraviť kód podľa vašich špecifických požiadaviek, ako je písmo, veľkosť písma a farba textu.
Ďalšie nedávne otázky a odpovede týkajúce sa Kreslenie hraníc objektov pomocou vankúšovej pythonovej knižnice:
- Aké sú parametre metódy "draw.line" v poskytnutom kóde a ako sa používajú na kreslenie čiar medzi hodnotami vrcholov?
- Ako sa dá knižnica vankúšov použiť na kreslenie hraníc objektov v Pythone?
- Aký je účel funkcie „draw_vertices“ v poskytnutom kóde?
- Ako môže rozhranie Google Vision API pomôcť pochopiť tvary a objekty na obrázku?