OpenCV-এর মৌলিক কাজ হল ছবি আঁকা। রেখা, বৃত্ত এবং আয়তক্ষেত্র ইত্যাদির মতো বিভিন্ন জ্যামিতিক আকার যোগ করার ক্ষমতা।
প্রায়শই চিত্র বিশ্লেষণের সাথে কাজ করে, আমরা চিত্রের একটি অংশ হাইলাইট করতে চাই, উদাহরণস্বরূপ একটি আয়তক্ষেত্র যোগ করে যা সেই অংশটিকে সংজ্ঞায়িত করে। এছাড়াও উদাহরণ হিসাবে কিছু নির্দেশ করার জন্য একটি তীর।
cv2.line() − এই ফাংশনটি একটি ছবিতে লাইন আঁকতে ব্যবহৃত হয়।
cv2.rectangle() − এই ফাংশনটি একটি ছবিতে আয়তক্ষেত্র আঁকতে ব্যবহৃত হয়।
cv2.circle() − এই ফাংশনটি একটি ছবিতে বৃত্ত আঁকতে ব্যবহৃত হয়।
cv2.putText() − এই ফাংশনটি ইমেজে টেক্সট লিখতে ব্যবহৃত হয়।
cv2.ellipse() − এই ফাংশনটি ইমেজের উপর উপবৃত্ত আঁকতে ব্যবহৃত হয়।
উদাহরণ কোড
npimport cv2my_img =np.zeros((350, 350, 3), dtype ="uint8")cv2.imshow('Window', my_img)cv2.waitKey(0)cv2.destroyAllWindows() হিসাবেnumpy আমদানি করুন প্রাক>আউটপুট
একটি রেখা আঁকতে
একটি লাইন আঁকার জন্য cv2.line() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি পাঁচটি আর্গুমেন্ট নেয়
- ইমেজ অবজেক্ট যার উপর আঁকতে হবে
- সূচনা বিন্দু স্থানাঙ্ক (x, y)
- শেষ বিন্দু স্থানাঙ্ক (x, y)
- BGR-এ স্ট্রোকের রঙ (আরজিবি নয়, উল্লেখ্য)
- স্ট্রোক বেধ (পিক্সেলে)
উদাহরণ কোড
npimport cv2my_img =np.zeros((350, 350, 3), dtype ="uint8")# হিসাবে numpy আমদানি করুন linecv2.line(my_img, (202, 220), (100, 160), (0) এর জন্য তৈরি , 20, 200), 10)cv2.imshow('Window', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
আউটপুট
একটি আয়তক্ষেত্র আঁকতে
একটি আয়তক্ষেত্র আঁকার জন্য cv2.rectangle() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি পাঁচটি ইনপুট প্যারামিটার গ্রহণ করে৷
- ইমেজ অবজেক্ট যার উপর আঁকতে হবে
- উপরে বাম দিকে শীর্ষবিন্দুর স্থানাঙ্ক (x, y)
- নিম্ন ডান শীর্ষবিন্দুর স্থানাঙ্ক (x, y)
- BGR-এ স্ট্রোকের রঙ (আরজিবি নয়, উল্লেখ্য)
- স্ট্রোক বেধ (পিক্সেলে)
উদাহরণ কোড
npimport cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# একটি আয়তক্ষেত্র তৈরি করা হচ্ছে (my_img, (30, 30) , 20, 200), 10)cv2.imshow('Window', my_img)# আমাদেরকে জোরপূর্বক বন্ধ না হওয়া পর্যন্ত ছবি# দেখতে দেয়।আউটপুট
একটি বৃত্ত আঁকতে
একটি বৃত্ত আঁকার জন্য, cv2.circle() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি পাঁচটি ইনপুট প্যারামিটার গ্রহণ করে৷
- ইমেজ অবজেক্ট যার উপর আঁকতে হবে
- সেন্টার স্থানাঙ্ক (x, y)
- বৃত্তের ব্যাসার্ধ
- BGR-এ স্ট্রোকের রঙ (আরজিবি নয়, উল্লেখ্য)
- স্ট্রোক বেধ (পিক্সেলে)
উদাহরণ কোড
npimport cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# হিসেবে numpy আমদানি করুন সার্কেলcv2.circle(my_img, (200, 200), 80, (0, 20, 200) তৈরি করুন , 10)cv2.imshow('Window', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
আউটপুট
একটি উপবৃত্ত আঁকতে
একটি উপবৃত্ত আঁকার জন্য, cv2.ellipse() ফাংশন ব্যবহার করা হয়। এই ফাংশনটি আটটি ইনপুট প্যারামিটার গ্রহণ করে৷
- ইমেজ অবজেক্ট যার উপর ছবি আঁকা হবে
- সেন্টার স্থানাঙ্ক (x, y)
- ছোট এবং বড় অক্ষের দৈর্ঘ্য (h, w)
- অধিবৃত্তের ঘূর্ণন কোণ (ঘড়ির কাঁটার বিপরীতে গণনা করা হয়)
- শুরু কোণ (ঘড়ির কাঁটার দিকে গণনা করা হয়)
- চূড়ান্ত কোণ (ঘড়ির কাঁটার দিকে গণনা করা)
- BGR-এ স্ট্রোকের রঙ (আরজিবি উল্লেখ্য নয়)
- স্ট্রোক বেধ
উদাহরণ কোড
npimport cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# হিসেবেইম্পোর্ট করুন -1)cv2.imshow('উইন্ডো', my_img)# জোরপূর্বক বন্ধ না হওয়া পর্যন্ত আমাদের ছবি# দেখতে দেয়cv2.waitKey(0)cv2.destroyAllWindows()
আউটপুট
বহুভুজ আঁকতে
একটি বহুভুজ আঁকার জন্য, cv2.polylines() ফাংশন ব্যবহার করা হয়। এই ফাংশনটির পাঁচ নম্বর আর্গুমেন্টের প্রয়োজন৷
- ছবি অবজেক্ট যার উপর আঁকতে হবে
- স্থানাঙ্কের বিন্যাস
- সত্য, যদি এটি একটি বন্ধ লাইন হয়
- স্ট্রোকের রঙ
- স্ট্রোক বেধ
উদাহরণ কোড
npimport cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")pts =np.array([[10,5],[20,30],[70,20] হিসাবেimport numpy ],[50,10]], np.int32)pts =pts.reshape((-1,1,2))cv2.polylines(my_img,[pts],True,(0,255,255))cv2.imshow('উইন্ডো) ', my_img)cv2.waitKey(0)cv2.destroyAllWindows()
আউটপুট
পাঠ্য আঁকতে
OpenCV দিয়ে টেক্সট লিখতে cv2.putText() ফাংশন আছে যা অনেক আর্গুমেন্ট গ্রহণ করে।
- যে চিত্রটি আঁকতে হবে
- যে পাঠ্যটি লিখতে হবে
- টেক্সট স্টার্ট পয়েন্টের স্থানাঙ্ক
- ফন্ট ব্যবহার করা হবে
- ফন্টের আকার
- পাঠ্য রঙ
- পাঠ্য পুরুত্ব
- ব্যবহৃত লাইনের ধরন
উদাহরণ কোড
npimport cv2my_img =np.zeros((400, 400, 3), dtype ="uint8")# লেখার টেক্সটফন্ট =cv2.FONT_HERSHEY_SIMPLEXcv2.putText(my_img,'int,05) হিসাবেnumpy আমদানি করুন font, 0.8, (255, 0, 0), 2, cv2.LINE_AA)cv2.imshow('Window', my_img)cv2.waitKey(0)cv2.destroyAllWindows()