Трехмерное пространство Хафа

Я ищу радиус и координаты центра круга в изображении. уже пробовал 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 "Быстрое обнаружение кругов с использованием векторов пар градиентов")

Другие вопросы по тегам