Voit lisätä näyttötekstiä kuvaan piirrettäessä objektien rajoja käyttämällä Pillow Python -kirjaston "draw_vertices"-funktiota, voimme seurata vaiheittaista prosessia. Tämä prosessi sisältää havaittujen objektien kärjet hakemisen Google Vision API:sta, objektien reunojen piirtämisen kärkipisteiden avulla ja lopuksi näyttötekstin lisäämisen kuvaan.
1. Hae havaittujen objektien kärjet:
– Käytä Google Vision APIa havaitaksesi kuvassa olevat kohteet.
– Pura jokaisen havaitun objektin kärjet API-vastauksesta. Huippupisteet edustavat objektia ympäröivän rajauslaatikon neljää kulmaa.
2. Piirrä objektien reunat käyttämällä kärkipisteitä:
– Lataa kuva Pythonin Pillow-kirjaston avulla.
– Luo ImageDraw-moduulin ilmentymä Pillow-kirjastosta.
– Iteroi jokaisen objektin kärkien yli ja piirrä suorakulmio käyttämällä ImageDraw-moduulin "draw.rectangle"-toimintoa.
– "Draw.rectangle"-funktio ottaa argumenteiksi suorakulmion vasemman ja oikean alakulman koordinaatit.
3. Lisää näyttöteksti kuvaan:
– Luo toinen ImageDraw-moduulin esiintymä.
– Iteroi jokaisen objektin kärkien yli ja lisää näyttöteksti käyttämällä ImageDraw-moduulin "draw.text"-toimintoa.
– "Draw.text"-funktio ottaa argumenteiksi tekstin sijainnin ja tekstijonon koordinaatit.
– Voit mukauttaa tekstin fonttia, kokoa, väriä ja muita ominaisuuksia määrittämällä lisäparametreja "draw.text"-funktiossa.
Tässä on esimerkkikoodinpätkä, joka esittää yllä kuvatun prosessin:
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")
Tässä esimerkissä oletetaan, että objektien kärjet on jo saatu Google Vision API:sta. Lataamme sitten kuvan Pillow-kirjaston avulla, piirrämme objektien reunat kärkipisteiden avulla ja lisäämme näyttötekstin jokaisen objektin yläpuolelle.
Muista muokata koodia erityisvaatimustesi, kuten kirjasimen, fontin koon ja tekstin värin, mukaan.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen Objektin reunojen piirtäminen tyynypython-kirjastolla:
- Mitkä ovat "draw.line"-menetelmän parametrit toimitetussa koodissa ja miten niitä käytetään piirtämään viivoja kärkiarvojen välille?
- Kuinka tyynykirjastoa voidaan käyttää objektien reunojen piirtämiseen Pythonissa?
- Mikä on "draw_vertices"-funktion tarkoitus toimitetussa koodissa?
- Kuinka Google Vision API voi auttaa ymmärtämään kuvan muotoja ja esineitä?