Учитывая множество точек (2D) т.е. точка помутнения (PC), то речь идет о robust
, accurate
и computing-friendly
метод , чтобы найти круги (или эллипсов в расширенной версии).
Интуитивно понятная идея заключается в использовании поиска методом грубой силы по всем возможным точкам (в качестве центра) {бесконечно!} И радиусам (опять же бесконечно!). Это ультра-крайне медленно и неэффективно.
Как показано ниже, каждый подобранный круг будет ранжироваться на основе количества точек ( nn
), расположенных на окружности окружности на расстоянии, меньшем порога ( t
). Так что есть, derr
чтобы представить среднее расстояние.
В расширенной форме эллипсы представляют интерес для установки.
Есть идеи, мозговой штурм, опыт, комментарии?
edge-detection
local-features
point-cloud
hough-transform
разработчик
источник
источник
Ответы:
Лучшие идеи, которые точно пытаются решить эту проблему - это Hough Transform .
В основном, сигнал в жестком пространстве будет
r, x, y
координатами. Здесьr
обозначает радиус иx,y
обозначает центр. Каждая точка может принадлежать одному или нескольким кругам. Так что в плоскости Хафа пройдите все возможные круги, где эта точка может принадлежать, и просто сделайте +1. Это не поиск, а коллекция.Теперь, если существует реальный круг, будет добавлено так много очков, и оценка такого
r, x, y
будет намного выше, чем у всех остальных. Выбор такой точки позволит вам выбрать правильные круги.Вот классическая статья еще в 1971 году (до моего рождения!), Которая изобрела эту концепцию.
Для учебника я бы предложил ссылки ниже:
В частности, для обнаружения круга, вы можете обратиться к этому ниже:
Эти методы очень эффективны и очень дружественны к компьютеру.
источник