For å legge til visningstekst til bildet når du tegner objektgrenser ved hjelp av "draw_vertices"-funksjonen i Pillow Python-biblioteket, kan vi følge en trinn-for-trinn-prosess. Denne prosessen innebærer å hente toppunktene til de oppdagede objektene fra Google Vision API, tegne objektgrensene ved hjelp av toppunktene og til slutt legge til visningsteksten i bildet.
1. Hent toppunktene til de oppdagede objektene:
– Bruk Google Vision API for å oppdage objekter i et bilde.
– Trekk ut toppunktene til hvert oppdaget objekt fra API-svaret. Toppene representerer de fire hjørnene av avgrensningsrammen som omgir objektet.
2. Tegn objektgrenser ved å bruke hjørnene:
– Last inn bildet ved hjelp av Pillow-biblioteket i Python.
– Lag en forekomst av ImageDraw-modulen fra Pillow-biblioteket.
– Iterer over hjørnene til hvert objekt og tegn et rektangel ved å bruke "draw.rectangle"-funksjonen fra ImageDraw-modulen.
– Funksjonen "draw.rectangle" tar koordinatene til øvre venstre og nedre høyre hjørne av rektangelet som argumenter.
3. Legg til visningstekst i bildet:
– Opprett en annen forekomst av ImageDraw-modulen.
– Iterer over hjørnene til hvert objekt og legg til visningsteksten ved å bruke "draw.text"-funksjonen fra ImageDraw-modulen.
– Funksjonen "draw.text" tar koordinatene til tekstposisjonen og tekststrengen som argumenter.
– Du kan tilpasse skrifttype, størrelse, farge og andre egenskaper for teksten ved å spesifisere flere parametere i "draw.text"-funksjonen.
Her er en eksempelkodebit som demonstrerer prosessen beskrevet ovenfor:
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")
I dette eksemplet antar vi at toppunktene til objektene allerede er hentet fra Google Vision API. Vi laster deretter inn bildet ved hjelp av Pillow-biblioteket, tegner objektkantene ved hjelp av hjørnene og legger til visningstekst over hvert objekt.
Husk å justere koden i henhold til dine spesifikke krav, for eksempel skrifttype, skriftstørrelse og tekstfarge.
Andre nyere spørsmål og svar vedr Tegne objektsgrenser ved hjelp av python-biblioteket:
- Hva er parametrene til "draw.line"-metoden i den medfølgende koden, og hvordan brukes de til å tegne linjer mellom verdier for hjørner?
- Hvordan kan putebiblioteket brukes til å tegne objektgrenser i Python?
- Hva er formålet med "draw_vertices"-funksjonen i den angitte koden?
- Hvordan kan Google Vision API hjelpe til med å forstå former og objekter i et bilde?