หากต้องการเพิ่มข้อความที่แสดงลงในรูปภาพเมื่อวาดเส้นขอบวัตถุโดยใช้ฟังก์ชัน "draw_vertices" ในไลบรารี Pillow Python เราสามารถทำตามขั้นตอนทีละขั้นตอนได้ กระบวนการนี้เกี่ยวข้องกับการดึงข้อมูลจุดยอดของวัตถุที่ตรวจพบจาก Google Vision API การวาดเส้นขอบวัตถุโดยใช้จุดยอด และสุดท้ายคือการเพิ่มข้อความที่แสดงลงในรูปภาพ
1. ดึงจุดยอดของวัตถุที่ตรวจพบ:
– ใช้ Google Vision API เพื่อตรวจจับวัตถุในรูปภาพ
– แยกจุดยอดของวัตถุแต่ละชิ้นที่ตรวจพบออกจากการตอบสนองของ API จุดยอดแสดงถึงมุมทั้งสี่ของกรอบขอบเขตที่ล้อมรอบวัตถุ
2. วาดเส้นขอบวัตถุโดยใช้จุดยอด:
– โหลดรูปภาพโดยใช้ไลบรารี Pillow ใน Python
– สร้างอินสแตนซ์ของโมดูล ImageDraw จากไลบรารี Pillow
– วนซ้ำจุดยอดของแต่ละวัตถุแล้ววาดรูปสี่เหลี่ยมผืนผ้าโดยใช้ฟังก์ชัน "draw.rectangle" จากโมดูล ImageDraw
– ฟังก์ชัน "draw.rectangle" ใช้พิกัดของมุมบนซ้ายและมุมล่างขวาของสี่เหลี่ยมผืนผ้าเป็นอาร์กิวเมนต์
3. เพิ่มข้อความที่แสดงให้กับรูปภาพ:
– สร้างอินสแตนซ์อื่นของโมดูล ImageDraw
– วนซ้ำจุดยอดของแต่ละวัตถุและเพิ่มข้อความที่แสดงโดยใช้ฟังก์ชัน "draw.text" จากโมดูล ImageDraw
– ฟังก์ชัน "draw.text" รับพิกัดของตำแหน่งข้อความและสตริงข้อความเป็นอาร์กิวเมนต์
– คุณสามารถปรับแต่งแบบอักษร ขนาด สี และคุณสมบัติอื่นๆ ของข้อความได้โดยระบุพารามิเตอร์เพิ่มเติมในฟังก์ชัน "draw.text"
ต่อไปนี้คือตัวอย่างข้อมูลโค้ดที่สาธิตกระบวนการที่อธิบายไว้ข้างต้น:
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")
ในตัวอย่างนี้ เราถือว่าจุดยอดของออบเจ็กต์ได้รับจาก Google Vision API แล้ว จากนั้นเราโหลดรูปภาพโดยใช้ไลบรารี Pillow วาดเส้นขอบวัตถุโดยใช้จุดยอด และเพิ่มข้อความที่แสดงไว้เหนือวัตถุแต่ละชิ้น
อย่าลืมปรับโค้ดตามความต้องการเฉพาะของคุณ เช่น แบบอักษร ขนาดแบบอักษร และสีข้อความ
คำถามและคำตอบล่าสุดอื่น ๆ เกี่ยวกับ การวาดเส้นขอบวัตถุโดยใช้หมอน python ไลบรารี:
- พารามิเตอร์ของเมธอด "draw.line" ในโค้ดที่ให้มามีอะไรบ้าง และพารามิเตอร์เหล่านี้ใช้ในการลากเส้นระหว่างค่าจุดยอดอย่างไร
- ไลบรารี่หมอนสามารถใช้เพื่อวาดเส้นขอบของวัตถุใน Python ได้อย่างไร
- จุดประสงค์ของฟังก์ชัน "draw_vertices" ในโค้ดที่ให้มาคืออะไร
- Google Vision API ช่วยในการทำความเข้าใจรูปร่างและวัตถุในรูปภาพได้อย่างไร