Pentru a adăuga text afișat la imagine atunci când desenați chenarele obiectelor folosind funcția „draw_vertices” din biblioteca Pillow Python, putem urma un proces pas cu pas. Acest proces implică preluarea nodurilor obiectelor detectate din API-ul Google Vision, desenarea granițelor obiectelor folosind nodurile și, în final, adăugarea textului afișat în imagine.
1. Preluați vârfurile obiectelor detectate:
– Utilizați API-ul Google Vision pentru a detecta obiecte dintr-o imagine.
– Extrageți vârfurile fiecărui obiect detectat din răspunsul API. Vârfurile reprezintă cele patru colțuri ale casetei de delimitare care înconjoară obiectul.
2. Desenați marginile obiectelor folosind vârfurile:
– Încărcați imaginea folosind biblioteca Pillow în Python.
– Creați o instanță a modulului ImageDraw din biblioteca Pillow.
– Iterați peste vârfurile fiecărui obiect și desenați un dreptunghi folosind funcția „draw.rectangle” din modulul ImageDraw.
– Funcția „draw.rectangle” ia ca argumente coordonatele colțurilor din stânga sus și din dreapta jos ale dreptunghiului.
3. Adăugați text de afișare la imagine:
– Creați o altă instanță a modulului ImageDraw.
– Iterați peste vârfurile fiecărui obiect și adăugați textul afișat folosind funcția „draw.text” din modulul ImageDraw.
– Funcția „draw.text” ia ca argumente coordonatele poziției textului și șirul de text.
– Puteți personaliza fontul, dimensiunea, culoarea și alte proprietăți ale textului prin specificarea unor parametri suplimentari în funcția „draw.text”.
Iată un exemplu de fragment de cod care demonstrează procesul descris mai sus:
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")
În acest exemplu, presupunem că vârfurile obiectelor au fost deja obținute din API-ul Google Vision. Apoi încărcăm imaginea folosind biblioteca Pillow, desenăm chenarele obiectelor folosind vârfurile și adăugăm text de afișare deasupra fiecărui obiect.
Nu uitați să ajustați codul în funcție de cerințele dvs. specifice, cum ar fi fontul, dimensiunea fontului și culoarea textului.
Alte întrebări și răspunsuri recente cu privire la Desenarea chenarelor obiectelor folosind biblioteca Python de perne:
- Care sunt parametrii metodei „draw.line” din codul furnizat și cum sunt utilizați pentru a desena linii între valorile vârfurilor?
- Cum poate fi folosită biblioteca de perne pentru a desena marginile obiectelor în Python?
- Care este scopul funcției „draw_vertices” din codul furnizat?
- Cum poate ajuta API-ul Google Vision la înțelegerea formelor și a obiectelor dintr-o imagine?