Da bismo dodali prikazni tekst na sliku kada crtate granice objekta koristeći funkciju "draw_vertices" u biblioteci Pillow Python, možemo slijediti postupak korak po korak. Ovaj proces uključuje dohvaćanje vrhova otkrivenih objekata iz Google Vision API-ja, crtanje granica objekata pomoću vrhova i konačno dodavanje teksta za prikaz na sliku.
1. Dohvatite vrhove otkrivenih objekata:
– Koristite Google Vision API za otkrivanje objekata na slici.
– Izdvojite vrhove svakog otkrivenog objekta iz API odgovora. Vrhovi predstavljaju četiri ugla graničnog okvira koji okružuje objekat.
2. Nacrtajte granice objekta koristeći vrhove:
– Učitajte sliku koristeći biblioteku jastuka u Pythonu.
– Kreirajte instancu modula ImageDraw iz biblioteke Pillow.
– Iterirajte preko vrhova svakog objekta i nacrtajte pravougaonik koristeći funkciju "draw.rectangle" iz modula ImageDraw.
– Funkcija "draw.rectangle" uzima koordinate gornjeg lijevog i donjeg desnog ugla pravokutnika kao argumente.
3. Dodajte tekstualni prikaz na sliku:
– Kreirajte još jednu instancu ImageDraw modula.
– Iterirajte vrhove svakog objekta i dodajte tekst za prikaz koristeći funkciju "draw.text" iz modula ImageDraw.
– Funkcija "draw.text" uzima koordinate pozicije teksta i tekstualni niz kao argumente.
– Možete prilagoditi font, veličinu, boju i druga svojstva teksta navođenjem dodatnih parametara u funkciji "draw.text".
Evo primjera isječka koda koji demonstrira proces opisan gore:
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")
U ovom primjeru pretpostavljamo da su vrhovi objekata već dobijeni iz Google Vision API-ja. Zatim učitavamo sliku koristeći Pillow biblioteku, crtamo granice objekta koristeći vrhove i dodajemo tekst za prikaz iznad svakog objekta.
Ne zaboravite prilagoditi kod prema vašim specifičnim zahtjevima, kao što su font, veličina fonta i boja teksta.
Ostala nedavna pitanja i odgovori u vezi Crtanje granica predmeta pomoću biblioteke jastuka python:
- Koji su parametri metode "draw.line" u datom kodu i kako se koriste za crtanje linija između vrijednosti vrhova?
- Kako se biblioteka jastuka može koristiti za crtanje granica objekata u Pythonu?
- Koja je svrha funkcije "draw_vertices" u datom kodu?
- Kako Google Vision API može pomoći u razumijevanju oblika i objekata na slici?