För att lägga till visningstext till bilden när du ritar objektgränser med funktionen "draw_vertices" i Pillow Python-biblioteket kan vi följa en steg-för-steg-process. Denna process innebär att man hämtar hörnen för de upptäckta objekten från Google Vision API, ritar objektgränserna med hjälp av hörnen och lägger slutligen till visningstexten i bilden.
1. Hämta hörnen för de upptäckta objekten:
– Använd Google Vision API för att upptäcka objekt i en bild.
– Extrahera hörnen för varje upptäckt objekt från API-svaret. Spåren representerar de fyra hörnen av begränsningsrutan som omger objektet.
2. Rita objektgränser med hjälp av hörnen:
– Ladda bilden med hjälp av Pillow-biblioteket i Python.
– Skapa en instans av ImageDraw-modulen från Pillow-biblioteket.
– Iterera över hörnen på varje objekt och rita en rektangel med funktionen "draw.rectangle" från ImageDraw-modulen.
– Funktionen "draw.rectangle" tar koordinaterna för rektangelns övre vänstra och nedre högra hörn som argument.
3. Lägg till visningstext i bilden:
– Skapa ytterligare en instans av ImageDraw-modulen.
– Iterera över hörnen på varje objekt och lägg till visningstexten med funktionen "draw.text" från ImageDraw-modulen.
– Funktionen "draw.text" tar koordinaterna för textpositionen och textsträngen som argument.
– Du kan anpassa teckensnitt, storlek, färg och andra egenskaper för texten genom att ange ytterligare parametrar i funktionen "draw.text".
Här är ett exempel på ett kodavsnitt som visar processen som beskrivs ovan:
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 det här exemplet antar vi att objektens hörn redan har erhållits från Google Vision API. Vi laddar sedan in bilden med hjälp av pillow-biblioteket, ritar objektkanterna med hjälp av hörnen och lägger till visningstext ovanför varje objekt.
Kom ihåg att justera koden efter dina specifika krav, som typsnitt, teckenstorlek och textfärg.
Andra senaste frågor och svar ang Rita objektgränser med hjälp av pythonbiblioteket:
- Vilka är parametrarna för "draw.line"-metoden i den medföljande koden, och hur används de för att rita linjer mellan vertexvärden?
- Hur kan kuddbiblioteket användas för att rita objektgränser i Python?
- Vad är syftet med funktionen "draw_vertices" i den medföljande koden?
- Hur kan Google Vision API hjälpa till att förstå former och objekt i en bild?