For at tilføje displaytekst til billedet, når du tegner objektgrænser ved hjælp af "draw_vertices"-funktionen i Pillow Python-biblioteket, kan vi følge en trin-for-trin-proces. Denne proces involverer at hente hjørnerne af de registrerede objekter fra Google Vision API, tegne objektgrænserne ved hjælp af hjørnerne og til sidst tilføje visningsteksten til billedet.
1. Hent hjørnerne af de detekterede objekter:
– Brug Google Vision API til at registrere objekter i et billede.
– Udtræk hjørnerne af hvert detekteret objekt fra API-svaret. Hjørnerne repræsenterer de fire hjørner af den afgrænsningsramme, der omgiver objektet.
2. Tegn objektgrænser ved hjælp af hjørnerne:
– Indlæs billedet ved hjælp af Pillow-biblioteket i Python.
– Opret en instans af ImageDraw-modulet fra Pillow-biblioteket.
– Gentag over hjørnerne af hvert objekt, og tegn et rektangel ved hjælp af funktionen "draw.rectangle" fra ImageDraw-modulet.
– Funktionen "draw.rectangle" tager koordinaterne for det øverste venstre og nederste højre hjørne af rektanglet som argumenter.
3. Tilføj displaytekst til billedet:
– Opret endnu en instans af ImageDraw-modulet.
– Gentag over hjørnerne af hvert objekt, og tilføj displayteksten ved hjælp af "draw.text"-funktionen fra ImageDraw-modulet.
– Funktionen "draw.text" tager koordinaterne for tekstpositionen og tekststrengen som argumenter.
– Du kan tilpasse tekstens skrifttype, størrelse, farve og andre egenskaber ved at angive yderligere parametre i funktionen "draw.text".
Her er et eksempel på et kodestykke, der demonstrerer processen 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 eksempel antager vi, at hjørnerne af objekterne allerede er hentet fra Google Vision API. Vi indlæser derefter billedet ved hjælp af Pillow-biblioteket, tegner objektgrænserne ved hjælp af hjørnerne og tilføjer displaytekst over hvert objekt.
Husk at justere koden efter dine specifikke krav, såsom skrifttype, skriftstørrelse og tekstfarve.
Andre seneste spørgsmål og svar vedr Tegn objektgrænser ved hjælp af python-bibliotek med puder:
- Hvad er parametrene for "draw.line"-metoden i den medfølgende kode, og hvordan bruges de til at tegne linjer mellem topværdier?
- Hvordan kan pudebiblioteket bruges til at tegne objektgrænser i Python?
- Hvad er formålet med "draw_vertices"-funktionen i den medfølgende kode?
- Hvordan kan Google Vision API hjælpe med at forstå former og objekter i et billede?