Por aldoni ekranan tekston al la bildo dum desegnado de objektobordoj uzante la funkcion "draw_vertices" en la biblioteko Pillow Python, ni povas sekvi paŝon post paŝo. Ĉi tiu procezo implikas preni la verticojn de la detektitaj objektoj de la Google Vision API, desegni la objektolimojn uzante la verticojn, kaj finfine aldoni la ekranan tekston al la bildo.
1. Prenu la verticojn de la detektitaj objektoj:
- Uzu la Google Vision API por detekti objektojn en bildo.
- Eltiru la verticojn de ĉiu detektita objekto el la API-respondo. La verticoj reprezentas la kvar angulojn de la limkesto kiu ĉirkaŭas la objekton.
2. Desegnu objektajn randojn uzante la verticojn:
- Ŝarĝu la bildon per la Pillow-biblioteko en Python.
– Kreu ekzemplon de la modulo ImageDraw el la Biblioteko Pillow.
– Ripetu super la verticoj de ĉiu objekto kaj desegnu rektangulon uzante la funkcion "draw.rectangle" de la modulo ImageDraw.
– La funkcio "draw.rectangle" prenas la koordinatojn de la supra-maldekstra kaj malsupra-dekstra anguloj de la rektangulo kiel argumentoj.
3. Aldonu montran tekston al la bildo:
– Kreu alian okazon de la modulo ImageDraw.
– Ripetu super la verticoj de ĉiu objekto kaj aldonu la montran tekston per la funkcio "draw.text" de la modulo ImageDraw.
– La funkcio "draw.text" prenas la koordinatojn de la tekstopozicio kaj la tekstoĉeno kiel argumentojn.
– Vi povas personecigi la tiparon, grandecon, koloron kaj aliajn trajtojn de la teksto specifante pliajn parametrojn en la funkcio "draw.text".
Jen ekzempla kodpeceto, kiu montras la procezon priskribitan supre:
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")
En ĉi tiu ekzemplo, ni supozas ke la verticoj de la objektoj jam estis akiritaj de la Google Vision API. Ni tiam ŝarĝas la bildon per la Biblioteko Pillow, desegnas la objektolimojn per la verticoj, kaj aldonas montran tekston super ĉiu objekto.
Memoru ĝustigi la kodon laŭ viaj specifaj postuloj, kiel la tiparo, tiparo kaj tekstokoloro.
Aliaj lastatempaj demandoj kaj respondoj pri Desegnado de objektaj limoj per kusena pitona biblioteko:
- Kio estas la parametroj de la "draw.line" metodo en la provizita kodo, kaj kiel ili estas uzataj por desegni liniojn inter verticoj valoroj?
- Kiel la kusena biblioteko povas esti uzata por desegni objektolimojn en Python?
- Kio estas la celo de la funkcio "draw_vertices" en la provizita kodo?
- Kiel la API de Google Vision povas helpi kompreni formojn kaj objektojn en bildo?