Найдите круги с помощью кругового преобразования Хафа
[
находит круги с радиусами в области значений, заданном centers
,radii
]
= imfindcircles(A
,radiusRange
)radiusRange
. Дополнительный выходной аргумент, radii
, содержит оцененные радиусы, соответствующие каждому центру окружности в centers
.
[
также возвращает вектор-столбец, centers
,radii
,metric
]
= imfindcircles(A
,radiusRange
)metric
, содержащая величины peaks массива аккумуляторов для каждого круга (в порядке убывания). Строки centers
и radii
соответствуют строкам metric
.
[___]
= imfindcircles(___,
задает дополнительные опции с одним или несколькими Name,Value
)Name,Value
аргументы в виде пар, с использованием любого из предыдущих синтаксисов.
Точность imfindcircles
ограничено, когда значение radius
(или rmin
) меньше или равно 5.
Шаг оценки радиуса обычно быстрее, если вы используете (по умолчанию) 'PhaseCode'
метод вместо 'TwoStage'
.
Оба метода расчета, 'PhaseCode'
и 'TwoStage'
ограничены в их способности обнаруживать концентрические круги. Результаты для концентрических кругов могут варьироваться в зависимости от входного изображения.
imfindcircles
не находит круги с центрами вне области изображения.
imfindcircles
выполняет предварительную обработку двоичных (логических) изображений для повышения точности результата. Он преобразует изображения truecolor в полутоновые с помощью функции rgb2gray
перед их обработкой.
imfindcircles
использует алгоритм, основанный на Круговом Преобразовании Хафа (CHT), для нахождения кругов в изображениях. Этот подход используется из-за его робастности при наличии шума, окклюзии и различного освещения.
CHT не является строго заданным алгоритмом, скорее существует ряд различных подходов, которые можно использовать при его реализации. Однако, по большому счету, существует три важных шага, которые являются общими для всех.
Матрица аккумуляторов Расчета
Пиксели переднего плана с высоким градиентом обозначаются как пиксели-кандидаты и могут отдавать «голоса» в массиве аккумуляторов. В классической реализации CHT пиксели кандидата голосуют в шаблоне вокруг них, который образует полный круг фиксированного радиуса. Фигура показывает пример пикселя кандидата, лежащего на фактическом круге (сплошном круге), и классического шаблона голосования CHT (штриховых кругов) для пикселя кандидата.
Классический шаблон голосования CHT
Оценка Центра
Голоса пикселей кандидата, принадлежащих кругу изображения, имеют тенденцию накапливаться в интервале массива аккумулятора, соответствующем центру круга. Поэтому центры окружностей оцениваются путем обнаружения peaks в массиве аккумуляторов. Фигура показывает пример пикселей кандидата (твердых точек), лежащих на фактическом круге (твердом круге), и их шаблонов голосования (штриховых кругов), которые совпадают в центре фактического круга.
Оценка радиуса
Если тот же массив аккумуляторов используется для более чем одного значения радиуса, как это обычно делается в алгоритмах CHT, радиусы обнаруженных кругов должны быть оценены как отдельный шаг.
imfindcircles
предоставляет два алгоритма нахождения кругов в изображениях: Фазовое кодирование (по умолчанию) и Двухэтапное. Оба имеют общие вычислительные шаги, но каждый также имеет свои уникальные аспекты.
Общие вычислительные функции, общие для обоих алгоритмов, следующие:
Использование 2-D аккумулятора Массива
Классическое преобразование Хафа требует трехмерные массивы для хранения голосов для нескольких радиусов, что приводит к большим требованиям к хранению и длительным временам вычислений. И Фазовое Кодирование, и Двухэтапные методы решают эту проблему, используя один 2 -D массив аккумуляторов для всех радиусов. Несмотря на то, что этот подход требует дополнительного шага оценки радиуса, общая вычислительная нагрузка обычно ниже, особенно при работе в большой области значений. Это широко распространенная практика в современных реализациях CHT.
Использование краевых пикселей
Общие требования к памяти и скорости сильно зависят от количества пикселей кандидата. Чтобы ограничить их количество, градиентная величина входного изображения является пороговым значением, так что только пиксели с высоким градиентом включаются в подсчет голосов.
Использование информации о ориентации ребра
Другой способ оптимизации эффективности - ограничить количество интервалов, доступных для пикселей кандидата. Это достигается путем использования локально доступной информации о ребре только для того, чтобы разрешить голосование с ограниченным интервалом по направлению градиента (фиг.2).
Режим голосования: Несколько радиусов, вдоль направления градиента
rmin | Минимальный радиус поиска |
rmax | Максимальный радиус поиска |
ractual | Радиус окружности, к которой принадлежит пиксель кандидата |
cmin | Центр окружности радиуса rmin |
cmax | Центр окружности радиуса rmax |
cactual | Центр окружности радиуса ractual |
Два метода CHT, используемые функциональными imfindcircles
принципиально отличаются тем, как вычисляются радиусы окружности.
Двухступенчатый
Радиусы явно оцениваются с использованием оцененных центров окружностей вместе с информацией об изображении. Метод основан на вычислении радиальных гистограмм [2] .[3]
Фазовое кодирование
Ключевой идеей в кодировании фазы [1] является использование комплексных чисел в массиве аккумуляторов с информацией о радиусе, закодированной в фазе записей массива. Голоса, поданные пикселями ребра, содержат информацию не только о возможных расположениях в центре, но и о радиусе круга, связанного с расположением центра. В отличие от Двухэтапного метода, где радиус должен быть оценен явно с помощью радиальных гистограмм, в Фазовом Кодировании радиус может быть оценен простым декодированием информации фазы из оцененного центрального местоположения в массиве аккумуляторов.
[1] T.J Atherton, D.J. Kerbyson. «Определение размера инвариантного круга». Image and Vision Computing. Том 17, № 11, 1999, с. 795-803.
[2] H.K Yuen, .J. Принсен, Дж. Иллингворт и Дж. Киттлер. Сравнительное исследование методов преобразования Хафа для нахождения круга. Image and Vision Computing. Том 8, № 1, 1990, с. 71-77.
[3] E.R. Davies, Machine Vision: Theory, Algorithms, Practicalities. Глава 10. 3-е издание. Morgan Kauffman Publishers, 2005.
hough
| houghlines
| houghpeaks
| viscircles