To add display text to the image when drawing object borders using the "draw_vertices" function in the Pillow Python library, we can follow a step-by-step process. This process involves retrieving the vertices of the detected objects from the Google Vision API, drawing the object borders using the vertices, and finally adding the display text to the image.
1. Retrieve the vertices of the detected objects:
– Utilize the Google Vision API to detect objects in an image.
– Extract the vertices of each detected object from the API response. The vertices represent the four corners of the bounding box that surrounds the object.
2. Draw object borders using the vertices:
– Load the image using the Pillow library in Python.
– Create an instance of the ImageDraw module from the Pillow library.
– Iterate over the vertices of each object and draw a rectangle using the "draw.rectangle" function from the ImageDraw module.
– The "draw.rectangle" function takes the coordinates of the top-left and bottom-right corners of the rectangle as arguments.
3. Add display text to the image:
– Create another instance of the ImageDraw module.
– Iterate over the vertices of each object and add the display text using the "draw.text" function from the ImageDraw module.
– The "draw.text" function takes the coordinates of the text position and the text string as arguments.
– You can customize the font, size, color, and other properties of the text by specifying additional parameters in the "draw.text" function.
Here's an example code snippet that demonstrates the process described above:
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 this example, we assume that the vertices of the objects have already been obtained from the Google Vision API. We then load the image using the Pillow library, draw the object borders using the vertices, and add display text above each object.
Remember to adjust the code according to your specific requirements, such as the font, font size, and text color.
Other recent questions and answers regarding Examination review:
- What are the parameters of the "draw.line" method in the provided code, and how are they used to draw lines between vertices values?
- How can the pillow library be used to draw object borders in Python?
- What is the purpose of the "draw_vertices" function in the provided code?
- How can the Google Vision API help in understanding shapes and objects in an image?

