Я пытаюсь обнаружить несколько колец с помощью камеры. В данный момент я могу обнаружить кольца, но обнаруженные круги не стабилизируются. X, y и r колец непрерывно изменяют значение. Есть ли способ их стабилизировать?
def callback (self, data): try: cv_image = self.bridge.imgmsg_to_cv2 (data, "bgr8"), кроме CvBridgeError как e: print (e)
hsv = cv2.cvtColor(cv_image, cv2.COLOR_BGR2HSV)
l_b = np.array([l_h, l_s, l_v])
u_b = np.array([u_h, u_s, u_v])
mask = cv2.inRange(hsv, l_b, u_b)
res = cv2.bitwise_and(cv_image, cv_image, mask=mask)
output = res.copy()
gray = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 2, 215,
param1=61, param2=140, minRadius=42, maxRadius=60)
print(circles)
if circles is not None:
circles = np.round(circles[0, :].astype("int"))
for (x, y, r) in circles:
cv2.circle(output, (x, y), r, (0, 255, 0), 2)
Выходные данные, которые я получаю из 2 кругов:
[[[349. 129. 55.07267761] [143. 263. 49.64876556]]]
[[[347129. 56,63920975] [155. 261. 50.93132782]]]
[[[347. 129. 56.64803696] [147. 263. 55.56977463]]]
[[[349. 131. 56.43580246] [149. 265. 55.31726837]]]
[[[347. 129. 56.64803696] [151. 257. 51.10773087]]]
Надеюсь получить больше информации вместе.