Norėdami pridėti rodomą tekstą prie vaizdo, kai piešiate objektų ribas naudodami funkciją „Draw_vertices“ Pillow Python bibliotekoje, galime atlikti nuoseklų procesą. Šis procesas apima aptiktų objektų viršūnių nuskaitymą iš „Google Vision“ API, objektų kraštinių nubrėžimą naudojant viršūnes ir galiausiai rodomo teksto pridėjimą prie vaizdo.
1. Gaukite aptiktų objektų viršūnes:
– Norėdami aptikti objektus vaizde, naudokite „Google Vision“ API.
– Iš API atsako išskleiskite kiekvieno aptikto objekto viršūnes. Viršūnės žymi keturis objektą supančio ribojamojo langelio kampus.
2. Nubrėžkite objekto ribas naudodami viršūnes:
– Įkelkite vaizdą naudodami „Python“ pagalvės biblioteką.
– Sukurkite „ImageDraw“ modulio egzempliorių iš „Pillow“ bibliotekos.
– Pakartokite kiekvieno objekto viršūnes ir nubrėžkite stačiakampį naudodami „ImageDraw“ modulio funkciją „draw.rectangle“.
– Funkcija "draw.rectagle" kaip argumentus paima stačiakampio viršutinio kairiojo ir apatinio dešiniojo kampų koordinates.
3. Pridėkite rodomą tekstą prie vaizdo:
– Sukurkite kitą „ImageDraw“ modulio egzempliorių.
– Pakartokite kiekvieno objekto viršūnes ir pridėkite rodomą tekstą naudodami „ImageDraw“ modulio funkciją „draw.text“.
– Funkcija "draw.text" kaip argumentus paima teksto padėties koordinates ir teksto eilutę.
– Galite tinkinti teksto šriftą, dydį, spalvą ir kitas savybes, funkcijoje „draw.text“ nurodydami papildomus parametrus.
Štai kodo fragmento pavyzdys, kuriame parodytas aukščiau aprašytas procesas:
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")
Šiame pavyzdyje darome prielaidą, kad objektų viršūnės jau gautos iš Google Vision API. Tada įkeliame vaizdą naudodami pagalvės biblioteką, nubrėžiame objekto ribas naudodami viršūnes ir virš kiekvieno objekto pridedame rodomą tekstą.
Nepamirškite pakoreguoti kodo pagal savo specifinius reikalavimus, pvz., šriftą, šrifto dydį ir teksto spalvą.
Kiti naujausi klausimai ir atsakymai apie Piešdami objekto kraštus naudodami pagalvių pitono biblioteką:
- Kokie yra „draw.line“ metodo parametrai pateiktame kode ir kaip jie naudojami brėžiant linijas tarp viršūnių reikšmių?
- Kaip pagalvių biblioteka gali būti naudojama objektų kraštams nubrėžti Python?
- Kokia yra funkcijos „draw_vertices“ paskirtis pateiktame kode?
- Kaip „Google Vision“ API gali padėti suprasti figūras ir objektus vaizde?