Привет, всем!
Помогите найти хороший алгоритм.
Даны зашумленные данные дуг 2х окружностей одинакового радиуса R в виде координат
(параметры окружностей: координаты центров и радиуса неизвестны). Также, можно считать, что известно какие точки принадлежат какой из окружностей. Но, если будут идеи как разделить эти множества точек, то я буду очень рад выслушать. Пример представлен на рисунке
Нужен алгоритм, с помощью которого можно будет найти центры этих окружностей и R.
Есть очень много скриптов на матлабе, которые помогают найти параметры окружности для зашумленных данных. Я пытался их использовать. Но, очень часто они дают сильное отличие в радиусах, если я использую их последовательно для каждой из дуг окружностей. А в моей задаче заранее известно, что радиусы одинаковые.
У меня есть идея, реализовать такой алгоритм:
Пусть
- точки, которые принадлежат одной окружности(черные точки) и
- точки, которые принадлежат другой окружности (красные точки) (см. рис)
Центры окружностей с одинаковыми радиусами найти из минимума функции
А потом, после того как найдутся центры
и
уже искать радиус как среднее расстояние от всех точек, т.е.
, где
и
количество черных и красных точек соответственно
Посоветуйте, может быть есть какие то другие хорошие алгоритмы для такой задачи или может предложенный алгоритм как то можно улучшить, если ничего лучше придумать нельзя.