Om vertoonteks by die prent te voeg wanneer voorwerpgrense geteken word deur die "draw_vertices"-funksie in die Pillow Python-biblioteek te gebruik, kan ons 'n stap-vir-stap proses volg. Hierdie proses behels die herwinning van die hoekpunte van die bespeurde voorwerpe vanaf die Google Vision API, die teken van die objekgrense met behulp van die hoekpunte, en uiteindelik die byvoeging van die vertoonteks by die prent.
1. Haal die hoekpunte van die bespeurde voorwerpe op:
- Gebruik die Google Vision API om voorwerpe in 'n prent op te spoor.
- Onttrek die hoekpunte van elke bespeurde voorwerp uit die API-reaksie. Die hoekpunte verteenwoordig die vier hoeke van die grenskas wat die voorwerp omring.
2. Teken voorwerpgrense deur die hoekpunte te gebruik:
– Laai die prent met behulp van die Pillow-biblioteek in Python.
– Skep 'n instansie van die ImageDraw-module uit die Pillow-biblioteek.
– Itereer oor die hoekpunte van elke voorwerp en teken 'n reghoek deur die "draw.rectangle"-funksie van die ImageDraw-module te gebruik.
– Die "draw.rectangle"-funksie neem die koördinate van die boonste-links- en onder-regshoeke van die reghoek as argumente.
3. Voeg vertoonteks by die prent:
- Skep nog 'n geval van die ImageDraw-module.
– Herhaal oor die hoekpunte van elke voorwerp en voeg die vertoonteks by deur die "draw.text"-funksie van die ImageDraw-module te gebruik.
– Die "draw.text"-funksie neem die koördinate van die teksposisie en die teksstring as argumente.
– Jy kan die lettertipe, grootte, kleur en ander eienskappe van die teks aanpas deur bykomende parameters in die "draw.text"-funksie te spesifiseer.
Hier is 'n voorbeeld kodebrokkie wat die proses hierbo beskryf demonstreer:
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")
In hierdie voorbeeld neem ons aan dat die hoekpunte van die voorwerpe reeds van die Google Vision API verkry is. Ons laai dan die prent deur die Kussing-biblioteek te gebruik, teken die voorwerpgrense deur die hoekpunte te gebruik en voeg vertoonteks bo elke voorwerp by.
Onthou om die kode aan te pas volgens jou spesifieke vereistes, soos die lettertipe, lettergrootte en tekskleur.
Ander onlangse vrae en antwoorde t.o.v Teken voorwerpgrense met behulp van 'n kussingpython-biblioteek:
- Kan Google Vision API toegepas word op die opsporing en etikettering van voorwerpe met kussing Python-biblioteek in video's eerder as in beelde?
- Hoe om objekgrense rondom diere in beelde en video's te teken en hierdie grense met spesifieke dierename te benoem?
- Wat is die parameters van die "draw.line" metode in die verskafde kode, en hoe word dit gebruik om lyne tussen hoekpunte waardes te trek?
- Hoe kan die kussingbiblioteek gebruik word om voorwerpgrense in Python te teken?
- Wat is die doel van die "draw_vertices"-funksie in die verskafde kode?
- Hoe kan die Google Vision API help om vorms en voorwerpe in 'n prent te verstaan?