Методы создания и обнаружения кругов

Общие методы:

  1. Генерация кругов. Вы можете создавать круги, используя математические уравнения или алгоритмы. Например, вы можете использовать уравнение окружности (x – cx)^2 + (y – cy)^2 = r^2, где (cx, cy) представляет координаты центра, а r представляет радиус. Вот пример на Python:
import matplotlib.pyplot as plt
import numpy as np
def generate_circle(cx, cy, r):
    theta = np.linspace(0, 2*np.pi, 100)
    x = cx + r * np.cos(theta)
    y = cy + r * np.sin(theta)
    return x, y
# Example usage
circle_x, circle_y = generate_circle(0, 0, 5)
plt.plot(circle_x, circle_y)
plt.axis('equal')
plt.show()
  1. Обнаружение кругов. Если у вас есть изображение и вы хотите обнаружить круги внутри него, вы можете использовать такие методы, как преобразование Хафа. OpenCV — популярная библиотека для обработки изображений, предоставляющая функции обнаружения кругов. Вот пример на Python:
import cv2
import numpy as np
def detect_circles(image_path):
    img = cv2.imread(image_path, 0)
    img = cv2.medianBlur(img, 5)
    circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, dp=1, minDist=20, param1=50, param2=30, minRadius=0, maxRadius=0)

    if circles is not None:
        circles = np.uint16(np.around(circles))
        for circle in circles[0, :]:
            center = (circle[0], circle[1])
            radius = circle[2]
            cv2.circle(img, center, radius, (0, 255, 0), 2)

    cv2.imshow("Circles Detected", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
# Example usage
detect_circles("image.jpg")