как найти полукруг на картинке?
Подскажите как найти полукруг на картинке ? Есть такой код, но он находит полный круг на картинке
import numpy as np
import argparse
import cv2
parser = argparse.ArgumentParser()
parser.add_argument("image", metavar="image_file", help = "Image file")
args = parser.parse_args()
image = cv2.imread(args.image)
image_output = image.copy()
# конвертация в grayscale
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# детекция кругов
circles = cv2.HoughCircles(image_gray, cv2.HOUGH_GRADIENT, 1.4, 1, param1=1, param2=20, minRadius=6, maxRadius=10)
if circles is not None:
# конвертация координат центра и радиуса в int
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
print(f"Center: {x},{y} Radius: {r}")
# обведём найденный круг
cv2.circle(image_output, (x, y), r, (0, 255, 0), 1)
# и ткнём точку в центр
cv2.circle(image_output, (x, y), 2, (255, 0 , 255), -1)
cv2.imshow("The result", image_output)
cv2.waitKey(0)
Ответы (1 шт):
Автор решения: barsik34566
→ Ссылка
Не полукруг а окружность. Самый простой метод если дан радиус в пикселях можно перебрать попиксельно картинку проверяя процент пикселей принадлежащих уравнению окружности сдвигая его центр. Еще можно добавить проверку на зеленый цвет.
Получите массив XY координаты пикселя, значение баллы совпадения с окружностью.
