Трехмерное пространство Хафа
Я ищу радиус и координаты центра круга в изображении. уже пробовал 2D преобразование Хафа. но радиус моего круга тоже неизвестен. Я все еще новичок в компьютерном зрении, поэтому нуждаюсь в линиях гильдии и помощи для реализации трехмерного пространства.
2 ответа
Вы реализуете это так же, как 2D Hough space, но с дополнительным параметром. Псевдокод будет выглядеть так:
for each (x,y) in image
for each test_radius in [min_radius .. max_radius]
for each point (tx,ty) in the circle with radius test_radius around (x,y)
HoughSpace(tx,ty,test_radius) += image(x,y)
Титон дает вам правильный подход к формализации проблемы. Но тогда вы столкнетесь с другими проблемами, присущими грубому преобразованию:
как вы визуализируете пространство параметров? Вы можете реализовать что-то с помощью библиотеки, такой как VTK, но трехмерная визуализация данных - это всегда сложная тема. Визуализация важна для отладки вашего алгоритма обнаружения и является одной из приятных вещей с двумерным грубым преобразованием
обнаружение локального максимума нетривиально. Новое измерение будет означать, что ваше пространство параметров будет более разреженным. У вас будет больше настроек, чтобы сделать в этой области
Если вы ищете алгоритм обнаружения кругов, у вас могут быть лучшие варианты, чем грубое преобразование (мне кажется, Google "Быстрое обнаружение кругов с использованием векторов пар градиентов")