Обнаружение концентрических кругов на изображении с использованием преобразования Хафа в AForge.NET

Я пытаюсь обнаружить концентрические круги на изображении бумажной мишени с помощью AForge.NET. Я могу очистить изображение с помощью Threshold(88) или Edges, но не могу понять, как обнаружить круги.

Исходный размер изображения = 450 x 479 пикселей.

Шаги до сих пор:

  1. преобразовать изображение в оттенки серого
  2. используйте Edge, чтобы найти круги (Threshold (88) также работает)
  3. Запустите HoughTransform с радиусом = 100, выведите с помощью «ToBitmap».
  4. Подсчитайте найденные круги (у меня обнаружено 69750 кругов)
  5. Нарисуйте 20 самых интенсивных кругов

У меня нет опыта обработки изображений; Любое руководство очень ценится.

Исходное изображениеОттенки серого КраяПреобразование Хафа Рисование кругов


person Benny G    schedule 03.12.2013    source источник
comment
Я не уверен, что здесь необходимо преобразование Хафа. Цель явно намного темнее фона и может быть легко обнаружена на изображении с пороговым значением.   -  person r3mainer    schedule 03.12.2013
comment
Я могу достаточно легко обнаружить темную дыру, используя обнаружение Blob, теперь мне нужен центр и радиус каждого из концентрических колец на цели.   -  person Benny G    schedule 04.12.2013
comment
Но кольца концентричны с мишенью и расположены через равные промежутки. Как только вы определили внешний край цели, можно напрямую рассчитать ее центральные координаты и положение кольца. Вы можете захотеть выполнить небольшой локализованный поиск на основе вычисленной позиции, но преобразование Хафа будет довольно громоздким способом сделать это.   -  person r3mainer    schedule 04.12.2013
comment
@squeamishossifrage: Спустя некоторое время и дополнительные советы у меня есть решение, и вы правы. Я использовал порог и каплю, чтобы найти внешний круг, а затем гистограмму, чтобы найти внутренние кольца (пики).   -  person Benny G    schedule 24.12.2013


Ответы (1)


Решение в этом случае состояло в том, чтобы вообще не использовать преобразование Хафа.

  1. Я использовал обнаружение порога и капли, чтобы найти внешний круг, который дал мне центр.
  2. Затем гистограмма горизонтальной интенсивности, чтобы найти пики, которые коррелируют с каждым кольцом.
  3. Затем сравните это с пиками гистограммы вертикальной интенсивности, чтобы получить радиус каждого кольца.
  4. Потом проверка на вменяемость.

У меня еще не работает обнаружение пиков, но оно в процессе, и все выглядит как работающее.

person Benny G    schedule 24.12.2013
comment
случается, есть образец кода, который делает это? - person MSK; 13.07.2018
comment
Я посмотрю, что смогу найти чуть позже, я забросил этот проект некоторое время назад. - person Benny G; 14.07.2018