Lai attēlam pievienotu displeja tekstu, zīmējot objektu apmales, izmantojot Pillow Python bibliotēkas funkciju "draw_vertices", mēs varam sekot soli pa solim. Šis process ietver atklāto objektu virsotņu izgūšanu no Google Vision API, objektu robežu zīmēšanu, izmantojot virsotnes, un, visbeidzot, attēlam pievienojot displeja tekstu.
1. Izgūstiet atklāto objektu virsotnes:
- Izmantojiet Google Vision API, lai noteiktu objektus attēlā.
- Izņemiet katra atklātā objekta virsotnes no API atbildes. Virsotnes attēlo četrus norobežojošās lodziņas stūrus, kas ieskauj objektu.
2. Zīmējiet objektu robežas, izmantojot virsotnes:
- Ielādējiet attēlu, izmantojot Python bibliotēku Pillow.
– Izveidojiet ImageDraw moduļa gadījumu no Pillow bibliotēkas.
– Atkārtojiet katra objekta virsotnes un uzzīmējiet taisnstūri, izmantojot ImageDraw moduļa funkciju "draw.rectangle".
– Funkcija "draw.rectangle" izmanto taisnstūra augšējā kreisā un apakšējā labā stūra koordinātas kā argumentus.
3. Pievienojiet attēlam displeja tekstu:
– Izveidojiet citu ImageDraw moduļa gadījumu.
– Atkārtojiet katra objekta virsotnes un pievienojiet displeja tekstu, izmantojot ImageDraw moduļa funkciju "draw.text".
– Funkcija "draw.text" izmanto teksta pozīcijas un teksta virknes koordinātas kā argumentus.
– Varat pielāgot teksta fontu, izmēru, krāsu un citas īpašības, funkcijā "draw.text" norādot papildu parametrus.
Šeit ir koda fragmenta piemērs, kas parāda iepriekš aprakstīto procesu:
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")
Šajā piemērā mēs pieņemam, ka objektu virsotnes jau ir iegūtas no Google Vision API. Pēc tam mēs ielādējam attēlu, izmantojot spilvenu bibliotēku, zīmējam objekta robežas, izmantojot virsotnes, un pievienojam displeja tekstu virs katra objekta.
Atcerieties pielāgot kodu atbilstoši savām īpašajām prasībām, piemēram, fontam, fonta izmēram un teksta krāsai.
Citi jaunākie jautājumi un atbildes par Objekta robežu zīmēšana, izmantojot spilvena pitona bibliotēku:
- Kādi ir metodes "draw.line" parametri sniegtajā kodā un kā tie tiek izmantoti līniju vilkšanai starp virsotņu vērtībām?
- Kā spilvenu bibliotēku var izmantot, lai Python zīmētu objektu robežas?
- Kāds ir funkcijas "draw_vertices" mērķis sniegtajā kodā?
- Kā Google Vision API var palīdzēt izprast attēla formas un objektus?