Я использую OpenCV в Python 3 для обнаружения белого / черного шара на белом поле и определения его точного (x, y, радиус) и цвета.
Я использую функции cv2.Canny () и cv2.findContours (), чтобы найти его, но проблема в том, что cv2.Canny () не всегда определяет полную форму круга (в большинстве случаев только 3/4 круга). Поэтому, когда я использую cv2.findContours (), он не определяет его как контур.
Пожалуйста, посмотри :
и
Это самый важный код:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edged = cv2.Canny(blurred, 10, 40) # 10 and 40 to be more perceptive
contours_canny= cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[-2]
После этого я использую: approx = cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)
Так что, если вы можете помочь мне найти решение, это было бы здорово! Может быть, есть функция, которая завершает форму круга, чтобы я мог его обнаружить?