task 1:
frameHSV = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
orange:
lower_bound = np.array([0, 120, 120])
upper_bound = np.array([25, 255, 255])
mask = cv2.inRange(frameHSV, lower_bound, upper_bound)
task 2:
kernel = np.ones((5, 5), np.uint8)
mask = cv2.dilate(mask, kernel, iterations=1)
mask = cv2.erode(mask, kernel, iterations=1)
task 3:
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# Get the largest contour
largest_contour = max(contours, key=cv2.contourArea)
mask = cv2.drawContours(frame, largest_contour, -1, (0, 255, 0), 3)
cv2.imshow('Coin Detector', mask)
M = cv2.moments(largest_contour)
centroid_x = int(M["m10"] / M["m00"]) - frame.shape[1] // 2
centroid_y = int(M["m01"] / M["m00"]) - frame.shape[0] // 2
contour_area = cv2.contourArea(largest_contour)
totaldistance = contour_area/ np.square(contour_area)
degreesperpixel = 0.2
angle_x = centroid_x * degreesperpixel
angle_y = centroid_y * degreesperpixel
sumangle = np.sqrt(angle_x ** 2 + angle_y ** 2)
radian_angle = np.radians(sumangle)
z = np.cos(radian_angle) * totaldistance
task 4:
print(angle_x)
print(angle_y)
print(z)