برای افزودن متن نمایشی به تصویر هنگام ترسیم مرزهای شی با استفاده از تابع "draw_vertices" در کتابخانه Pillow Python، میتوانیم یک فرآیند گام به گام را دنبال کنیم. این فرآیند شامل بازیابی رئوس اشیاء شناسایی شده از Google Vision API، ترسیم مرزهای شی با استفاده از رئوس، و در نهایت افزودن متن نمایشگر به تصویر است.
1. رئوس اشیاء شناسایی شده را بازیابی کنید:
- از Google Vision API برای شناسایی اشیاء در یک تصویر استفاده کنید.
- رئوس هر شی شناسایی شده را از پاسخ API استخراج کنید. رئوس نشان دهنده چهار گوشه جعبه مرزی است که جسم را احاطه کرده است.
2. مرزهای شی را با استفاده از رئوس رسم کنید:
– تصویر را با استفاده از کتابخانه Pillow در پایتون بارگیری کنید.
– یک نمونه از ماژول 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" در کد ارائه شده چیست و چگونه از آنها برای کشیدن خطوط بین مقادیر رئوس استفاده می شود؟
- چگونه می توان از کتابخانه بالش برای ترسیم مرزهای اشیا در پایتون استفاده کرد؟
- هدف از تابع "draw_vertices" در کد ارائه شده چیست؟
- چگونه Google Vision API می تواند به درک اشکال و اشیاء در یک تصویر کمک کند؟