OpenCV প্ল্যাটফর্ম পাইথনের জন্য cv2 লাইব্রেরি প্রদান করে। এটি কম্পিউটার ভিশনে ব্যবহারী विभिन्न শেপ এনালাইসিসের জন্য ব্যবহার করা যায়। এই আর্টিকেলে আমরা OpenCV ব্যবহার করে সার্কেলের শেপ আইডেন্টিফাই করব। এর জন্য আমরা cv2.HoughCircles() ফাংশন ব্যবহার করব। এটি হফ ট্রান্সফর্ম ব্যবহার করে গ্রेyscale ইমেজে সার্কেল খুঁজে বের করে। নিচের উদাহরণে আমরা একটি ইমেজ ইনপুট হিসেবে নেব। তারপর এর একটি কপি বানিয়ে এই ট্রান্সফর্ম ফাংশন অ্যাপ্লাই করব সার্কেল আইডেন্টিফাই করার জন্য।
সিনট্যাক্স
cv2.HoughCircles(image, method, dp, minDist) Where Image is the image file converted to grey scale Method is the algorithm used to detect the circles. Dp is the inverse ratio of the accumulator resolution to the image resolution. minDist is the Minimum distance between the center coordinates of detected circles.
উদাহরণ
নিচের উদাহরণে আমরা নিচের ইমেজকে আমাদের ইনপুট ইমেজ হিসেবে ব্যবহার করব। তারপর নিচের প্রোগ্রাম রান করব সার্কেল পাওয়ার জন্য।

নিচের প্রোগ্রামটি একটি ইমেজ ফাইলে সার্কেলের উপস্থিতি ডিটেক্ট করে। যদি সার্কেল থাকে তবে এটি হাইলাইট করে।
উদাহরণ
import cv2
import numpy as np
image = cv2.imread('circle_ellipse_2.JPG')
output = image.copy()
img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# সার্কেল খুঁজুন
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1.3, 100)
# যদি কিছু সার্কেল পাওয়া যায়
if circles is not None:
# (x, y, r) ইন্টিজার হিসেবে পান
circles = np.round(circles[0, :]).astype("int")
print(circles)
# সার্কেলগুলোতে লুপ
for (x, y, r) in circles:
cv2.circle(output, (x, y), r, (0, 255, 0), 2)
# আউটপুট ইমেজ দেখান
cv2.imshow("circle", output)
cv2.waitKey(0)
উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়:
আউটপুট
[[93 98 84]]
এবং নিচের ডায়াগ্রাম আউটপুট হিসেবে দেখানো হয়েছে।
