imfindcircles
Encontrar círculos utilizando la transformada de Hough circular
Sintaxis
Descripción
[
encuentra círculos con radios en el intervalo especificado por centers
,radii
] = imfindcircles(A
,radiusRange
)radiusRange
. El argumento de salida adicional, radii
, contiene los radios estimados correspondientes a cada centro del círculo en centers
.
[
también devuelve un vector columna, centers
,radii
,metric
] = imfindcircles(A
,radiusRange
)metric
, que contiene las magnitudes de los picos del arreglo acumulador para cada círculo (en orden descendente). Las filas de centers
y radii
corresponden a las filas de metric
.
[___] = imfindcircles(___,
especifica opciones adicionales con uno o más argumentos de nombre-valor utilizando cualquiera de las sintaxis anteriores.Name,Value
)
Ejemplos
Argumentos de entrada
Argumentos de salida
Sugerencias
La precisión de
imfindcircles
es limitada cuando el valor deradius
(ormin
) es menor o igual a 5.El paso de estimación del radio suele ser más rápido si se utiliza el método (por defecto)
"PhaseCode"
en lugar de"TwoStage"
.Ambos métodos de cálculo
"PhaseCode"
y"TwoStage"
están limitados en su capacidad de detectar círculos concéntricos. Los resultados de los círculos concéntricos pueden variar en función de la imagen de entrada.imfindcircles
no encuentra círculos con centros fuera del dominio de la imagen.imfindcircles
convierte las imágenes en color verdadero a escala de grises mediante la funciónrgb2gray
antes de procesarlas. Las imágenes de tipo binario (logical
) y de tipo entero se convierten al tipo de datossingle
utilizando la funciónim2single
antes de procesarlas. Para mejorar la precisión del resultado para las imágenes binarias,imfindcircles
también aplica el suavizado gaussiano utilizandoimfilter
como paso de preprocesamiento.
Algoritmos
imfindcircles
utiliza un algoritmo basado en la transformada de Hough circular (CHT) para encontrar círculos en las imágenes. Este enfoque se utiliza por su solidez en presencia de ruido, oclusión e iluminación variable.
La CHT no es un algoritmo rigurosamente especificado, sino que hay una serie de enfoques diferentes que pueden adoptarse en su aplicación. Sin embargo, hay tres pasos importantes que son comunes a todos los enfoques.
Cálculo del arreglo acumulador
Los píxeles de primer plano de alto gradiente se designan como píxeles candidatos y se les permite emitir “votos” en el arreglo acumulador. En una implementación clásica de la CHT, los píxeles candidatos votan en un patrón a su alrededor que forma un círculo completo de radio fijo. La Figura 1a muestra un ejemplo de un píxel candidato situado en un círculo real (círculo sólido) y el patrón de votación clásico de la CHT (círculos discontinuos) para el píxel candidato.
Patrón de voto clásico de la CHT
Estimación del centro
Los votos de los píxeles candidatos que pertenecen a un círculo de la imagen tienden a acumularse en el bin del arreglo acumulador correspondiente al centro del círculo. Por lo tanto, los centros de los círculos se estiman detectando los picos en el arreglo acumulador. La Figura 1b muestra un ejemplo de los píxeles candidatos (puntos sólidos) situados en un círculo real (círculo sólido), y sus patrones de votación (círculos discontinuos) que coinciden en el centro del círculo real.
Estimación del radio
Si se utiliza el mismo arreglo acumulador para más de un valor de radio, como se suele hacer en los algoritmos de la CHT, los radios de los círculos detectados tienen que estimarse como un paso separado.
imfindcircles
proporciona dos algoritmos para encontrar círculos en las imágenes: el de codificación de fase (por defecto) y el de dos etapas. Ambos comparten algunos pasos computacionales comunes, pero cada uno tiene también sus propios aspectos únicos.
Las características computacionales comunes que comparten ambos algoritmos son las siguientes:
Uso de un arreglo acumulador 2D
La transformada de Hough clásica requiere un arreglo 3D para almacenar los votos de varios radios, lo que supone grandes necesidades de almacenamiento y largos tiempos de procesamiento. Tanto el método de codificación de fase como el de dos etapas resuelven este problema utilizando un único arreglo acumulador 2D para todos los radios. Aunque este enfoque requiere un paso adicional de estimación del radio, la carga computacional total suele ser menor, especialmente cuando se trabaja en un intervalo de radios amplio. Esta es una práctica ampliamente adoptada en las implementaciones modernas de la CHT.
Uso de píxeles de borde
Los requisitos generales de memoria y la velocidad se rigen en gran medida por el número de píxeles candidatos. Para limitar su número, la magnitud del gradiente de la imagen de entrada se umbraliza para que solo los píxeles de alto gradiente se incluyan en el recuento de votos.
Uso de la información sobre la orientación de los bordes
El rendimiento también se optimiza restringiendo el número de bins disponibles para los píxeles candidatos. Esto se consigue utilizando la información de los bordes disponible localmente para permitir únicamente la votación en un intervalo limitado a lo largo de la dirección del gradiente (Figura 2). La anchura del intervalo de votación, entre los puntos cmin y cmax en la figura, está determinada por el intervalo del radio definido por rmin y rmax.
Modo de votación: radios múltiples, a lo largo de la dirección del gradiente
rmin | Radio mínimo de búsqueda |
rmax | Radio máximo de búsqueda |
ractual | Radio del círculo al que pertenece el píxel candidato |
cmin | Centro del círculo de radio rmin |
cmax | Centro del círculo de radio rmax |
cactual | Centro del círculo de radio ractual |
Los dos métodos de CHT empleados por la función imfindcircles
difieren fundamentalmente en la forma de calcular los radios del círculo.
Dos fases
Los radios se estiman explícitamente utilizando los centros de los círculos estimados junto con la información de la imagen. La técnica se basa en el cálculo de histogramas radiales [2] [3].
Codificación de fase
Los radios se estiman a partir de los valores complejos del arreglo acumulador, con la información del radio codificada en la fase de las entradas del arreglo [1]. Los votos emitidos por los píxeles del borde contienen información no solo sobre las posibles ubicaciones del centro, sino también sobre el radio del círculo asociado a la ubicación del centro. A diferencia del método de dos etapas, en el que el radio debe estimarse explícitamente mediante histogramas radiales, en la codificación de fase el radio puede estimarse simplemente decodificando la información de la fase de la ubicación del centro estimada en el arreglo acumulador.
Referencias
[1] T.J Atherton, D.J. Kerbyson. "Size invariant circle detection." Image and Vision Computing. Volume 17, Number 11, 1999, pp. 795-803.
[2] H.K Yuen, .J. Princen, J. Illingworth, and J. Kittler. "Comparative study of Hough transform methods for circle finding." Image and Vision Computing. Volume 8, Number 1, 1990, pp. 71–77.
[3] E.R. Davies, Machine Vision: Theory, Algorithms, Practicalities. Chapter 10. 3rd Edition. Morgan Kauffman Publishers, 2005.
Capacidades ampliadas
Historial de versiones
Introducido en R2012aConsulte también
hough
| houghpeaks
| houghlines
| viscircles