Za dodajanje prikaznega besedila sliki pri risanju robov predmeta s funkcijo "draw_vertices" v knjižnici Pillow Python lahko sledimo postopku po korakih. Ta postopek vključuje pridobivanje oglišč zaznanih objektov iz API-ja Google Vision, risanje robov predmeta z oglišči in končno dodajanje prikazanega besedila sliki.
1. Pridobite oglišča zaznanih objektov:
– Uporabite Google Vision API za zaznavanje predmetov na sliki.
– Ekstrahirajte točke vsakega zaznanega predmeta iz odgovora API-ja. Oglišča predstavljajo štiri vogale omejevalnega polja, ki obdaja predmet.
2. Narišite meje predmeta z oglišči:
– Naložite sliko s knjižnico Pillow v Pythonu.
– Ustvarite primerek modula ImageDraw iz knjižnice Pillow.
– Ponavljajte po ogliščih vsakega predmeta in narišite pravokotnik s funkcijo "draw.rectangle" iz modula ImageDraw.
– Funkcija "draw.rectangle" kot argumente vzame koordinate zgornjega levega in spodnjega desnega vogala pravokotnika.
3. Sliki dodajte prikazno besedilo:
– Ustvarite drug primerek modula ImageDraw.
– Ponavljajte po točkah vsakega predmeta in dodajte prikazano besedilo s funkcijo "draw.text" iz modula ImageDraw.
– Funkcija "draw.text" sprejme koordinate položaja besedila in besedilni niz kot argumenta.
– Pisavo, velikost, barvo in druge lastnosti besedila lahko prilagodite tako, da določite dodatne parametre v funkciji "draw.text".
Tukaj je primer delčka kode, ki prikazuje zgoraj opisani postopek:
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 tem primeru predpostavljamo, da so bila oglišča objektov že pridobljena iz API-ja Google Vision. Nato naložimo sliko s knjižnico Pillow, narišemo meje predmeta z oglišči in nad vsak predmet dodamo prikazno besedilo.
Ne pozabite prilagoditi kode glede na vaše specifične zahteve, kot so pisava, velikost pisave in barva besedila.
Druga nedavna vprašanja in odgovori v zvezi Risanje meja predmeta s pomočjo knjižnice python za vzglavnike:
- Kakšni so parametri metode "draw.line" v navedeni kodi in kako se uporabljajo za risanje črt med vrednostmi tock?
- Kako lahko knjižnico vzglavnikov uporabimo za risanje robov predmetov v Pythonu?
- Kakšen je namen funkcije "draw_vertices" v predloženi kodi?
- Kako lahko Google Vision API pomaga pri razumevanju oblik in predmetov na sliki?