কম্পিউটার

পাইথনে OpenCV ব্যবহার করে কনট্যুর খুঁজুন এবং আঁকুন


চিত্র বিশ্লেষণের উদ্দেশ্যে আমরা Opencv (ওপেন সোর্স কম্পিউটার ভিশন লাইব্রেরি) পাইথন লাইব্রেরি ব্যবহার করি। Opencv ইন্সটল করার পর যে লাইব্রেরির নাম ইম্পোর্ট করতে হবে সেটি হল cv2।

নীচের উদাহরণে আমরা একটি চিত্র ফাইলে উপস্থিত কনট্যুরগুলি খুঁজে পাই। কনট্যুর আমাদের একটি ছবিতে উপস্থিত আকৃতি সনাক্ত করতে সাহায্য করে। কনট্যুরগুলিকে একটি চিত্রের সীমানা বরাবর সমস্ত বিন্দুতে যোগদানকারী লাইন হিসাবে সংজ্ঞায়িত করা হয় যার তীব্রতা একই। OPenCV-এ FindContours ফাংশন আমাদের কনট্যুর শনাক্ত করতে সাহায্য করে। একইভাবে drawContours ফাংশন আমাদের কনট্যুর আঁকতে সাহায্য করে। নিচে তাদের উভয়ের সিনট্যাক্স দেওয়া হল।

সিনট্যাক্স

cv.FindContours(image, mode=CV_RETR_LIST, method=CV_CHAIN_APPROX_SIMPLE)
Where
image is the name of the image
Mode is Contour retrieval mode
Method is Contour approximation method

cv.DrawContours(img, contours, contourIdx, colour, thickness)
Where
image is the name of the image
contours – All the input contours.
contourIdx – Parameter indicating a contour to draw. If it is negative, all the contours are drawn.
color – Color of the contours
thickness is how thick are the lines drawing the contour

উদাহরণ

নীচের উদাহরণে আমরা আমাদের ইনপুট ইমেজ হিসাবে নীচের ছবিটি ব্যবহার করি। তারপরে এটির চারপাশে কনট্যুর পেতে নীচের প্রোগ্রামটি চালান৷

পাইথনে OpenCV ব্যবহার করে কনট্যুর খুঁজুন এবং আঁকুন

উপরের চিত্রে আমরা তিনটি আকার খুঁজে পেতে পারি। আমরা নীচের প্রোগ্রামটি ব্যবহার করে সমস্ত বা তাদের কয়েকটির চারপাশে কনট্যুর আঁকতে পারি।

উদাহরণ

import cv2
# Load an image
image = cv2.imread(“path to image file”)
# Changing the colour-space
LUV = cv2.cvtColor(image, cv2.COLOR_BGR2LUV)
# Find edges
edges = cv2.Canny(LUV, 10, 100)
# Find Contours
contours, hierarchy = cv2.findContours(edges,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# Find Number of contours
print("Number of Contours is: " + str(len(contours)))
# Draw yellow border around two contours
cv2.drawContours(image, contours, 0, (0, 230, 255), 6)
cv2.drawContours(image, contours, 2, (0, 230, 255), 6)
# Show the image with contours
cv2.imshow('Contours', image)
cv2.waitKey(0)

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -

আউটপুট

Number of Contours found = 3

এবং আমরা নীচের চিত্রটি আউটপুট দেখাচ্ছে।

পাইথনে OpenCV ব্যবহার করে কনট্যুর খুঁজুন এবং আঁকুন


  1. ওপেনসিভি ব্যবহার করে একটি চিত্রের প্রান্ত সনাক্ত করতে পাইথন প্রোগ্রাম

  2. পাইথনে OpenCv ব্যবহার করে ছবি সংযোজন এবং মিশ্রণ

  3. পাইথন ওপেনসিভি মডিউল ব্যবহার করে হিস্টোগ্রাম সমতা

  4. পাইথনে OpenCV ব্যবহার করে ইমেজের ক্ষয় ও প্রসারণ