Pildile kuvatava teksti lisamiseks objektide ääriste joonistamisel Pillow Pythoni teegi funktsiooni "draw_vertices" abil saame järgida samm-sammult protsessi. See protsess hõlmab tuvastatud objektide tippude hankimist Google Vision API-st, objektide piiride joonistamist tippude abil ja lõpuks kuvatava teksti lisamist pildile.
1. Otsi tuvastatud objektide tipud:
– Kasutage pildil olevate objektide tuvastamiseks Google Vision API-t.
– ekstraheerige API vastusest iga tuvastatud objekti tipud. Tipud tähistavad objekti ümbritseva piirdekasti nelja nurka.
2. Joonistage objektide piirid tippude abil:
– Laadige pilt Pythonis Pillow teegi abil.
– Looge Pillow teegist ImageDraw mooduli eksemplar.
– Itereerige üle iga objekti tippude ja joonistage ristkülik, kasutades ImageDraw mooduli funktsiooni "draw.rectangle".
– Funktsioon "joonista.ristkülik" võtab argumentidena ristküliku ülemise vasaku ja alumise nurga koordinaadid.
3. Lisage pildile kuvatav tekst:
– Looge ImageDraw mooduli teine eksemplar.
– Itereerige üle iga objekti tippude ja lisage kuvatav tekst, kasutades ImageDraw mooduli funktsiooni "draw.text".
– Funktsioon "draw.text" võtab argumentidena teksti asukoha ja tekstistringi koordinaadid.
– Saate kohandada teksti fonti, suurust, värvi ja muid omadusi, määrates funktsioonis "draw.text" täiendavad parameetrid.
Siin on näide koodilõigust, mis demonstreerib ülalkirjeldatud protsessi:
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")
Selles näites eeldame, et objektide tipud on Google Vision API-st juba saadud. Seejärel laadime Pillow teegi abil pildi, joonistame tippude abil objekti piirid ja lisame iga objekti kohale kuvatava teksti.
Ärge unustage kohandada koodi vastavalt teie konkreetsetele nõuetele, nagu font, fondi suurus ja teksti värv.
Muud hiljutised küsimused ja vastused selle kohta Objekti piiride joonistamine padjapüütoniteegi abil:
- Millised on meetodi "draw.line" parameetrid antud koodis ja kuidas neid kasutatakse tippude väärtuste vahele joonte tõmbamiseks?
- Kuidas saab padjateegi kasutada Pythonis objektide ääriste joonistamiseks?
- Mis on antud koodi funktsiooni "draw_vertices" eesmärk?
- Kuidas saab Google Vision API aidata mõista kujutisel olevaid kujundeid ja objekte?