Pillow Python লাইব্রেরিতে "draw_vertices" ফাংশন ব্যবহার করে অবজেক্ট বর্ডার আঁকার সময় ছবিতে ডিসপ্লে টেক্সট যোগ করতে, আমরা ধাপে ধাপে একটি প্রক্রিয়া অনুসরণ করতে পারি। এই প্রক্রিয়ায় Google Vision API থেকে শনাক্ত করা বস্তুর শীর্ষবিন্দু পুনরুদ্ধার করা, শীর্ষবিন্দু ব্যবহার করে অবজেক্টের সীমানা অঙ্কন করা এবং অবশেষে ছবিতে প্রদর্শনের পাঠ্য যোগ করা জড়িত।
1. সনাক্ত করা বস্তুর শীর্ষবিন্দু পুনরুদ্ধার করুন:
- একটি ছবিতে বস্তু সনাক্ত করতে Google Vision API ব্যবহার করুন৷
- API প্রতিক্রিয়া থেকে প্রতিটি সনাক্ত করা বস্তুর শীর্ষবিন্দুগুলি বের করুন। শীর্ষবিন্দুগুলি বস্তুটিকে ঘিরে থাকা বাউন্ডিং বাক্সের চারটি কোণকে উপস্থাপন করে।
2. শীর্ষবিন্দু ব্যবহার করে বস্তুর সীমানা আঁকুন:
- পাইথনে পিলো লাইব্রেরি ব্যবহার করে ছবিটি লোড করুন।
- পিলো লাইব্রেরি থেকে ImageDraw মডিউলের একটি উদাহরণ তৈরি করুন।
– প্রতিটি বস্তুর শীর্ষবিন্দুতে পুনরাবৃত্তি করুন এবং ImageDraw মডিউল থেকে "draw.rectangle" ফাংশন ব্যবহার করে একটি আয়তক্ষেত্র আঁকুন।
- "draw.rectangle" ফাংশনটি আর্গুমেন্ট হিসাবে আয়তক্ষেত্রের উপরের-বাম এবং নীচে-ডান কোণগুলির স্থানাঙ্কগুলিকে গ্রহণ করে।
3. ছবিতে প্রদর্শন পাঠ্য যোগ করুন:
- ImageDraw মডিউলের আরেকটি উদাহরণ তৈরি করুন।
– প্রতিটি বস্তুর শীর্ষবিন্দুতে পুনরাবৃত্তি করুন এবং ImageDraw মডিউল থেকে "draw.text" ফাংশন ব্যবহার করে প্রদর্শন পাঠ্য যোগ করুন।
- "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 থেকে প্রাপ্ত হয়েছে। তারপরে আমরা পিলো লাইব্রেরি ব্যবহার করে ছবিটি লোড করি, শীর্ষবিন্দু ব্যবহার করে অবজেক্টের সীমানা আঁকুন এবং প্রতিটি অবজেক্টের উপরে ডিসপ্লে টেক্সট যোগ করি।
আপনার নির্দিষ্ট প্রয়োজনীয়তা, যেমন ফন্ট, ফন্টের আকার এবং পাঠ্যের রঙ অনুযায়ী কোড সামঞ্জস্য করতে মনে রাখবেন।
সম্পর্কিত অন্যান্য সাম্প্রতিক প্রশ্ন এবং উত্তর বালিশ পাইথন লাইব্রেরি ব্যবহার করে বস্তুর সীমানা আঁকুন:
- প্রদত্ত কোডে "draw.line" পদ্ধতির পরামিতিগুলি কী এবং কীভাবে তারা শীর্ষবিন্দুর মানের মধ্যে লাইন আঁকতে ব্যবহৃত হয়?
- পাইথনে বস্তুর সীমানা আঁকতে বালিশ লাইব্রেরি কীভাবে ব্যবহার করা যেতে পারে?
- প্রদত্ত কোডে "draw_vertices" ফাংশনের উদ্দেশ্য কী?
- গুগল ভিশন এপিআই কীভাবে একটি চিত্রের আকার এবং বস্তু বুঝতে সাহায্য করতে পারে?