Está en la página 1de 5

INSTITUTO TECNOLÓGICO NACIONAL DE MÉXICO.

INSTITUTO TECNOLÓGICO DE LERMA.

INGENIERÍA MECATRÓNICA.

IMCT-2010-229.

VISIÓN INDUSTRIAL.

CAF1805.

INVESTIGACIÓN DETECCIÓN DE LÍNEAS.

MARTÍNEZ DÍAZ MANUEL GERMÁN.

181010052.

DOCENTE:

SÁNCHEZ QUINTAL RICARDO JESÚS.

SEMESTRE 8.

LUNES 28 DE FEBRERO, 2022.

KM 10 CARRETERA, CAMPECHE - CHAMPOTÓN, 040020001140, 24500 LERMA, CAMP.


INSTITUTO TECNOLÓGICO DE LERMA. INGENIERÍA MECATRÓNICA.

INVESTIGACIÓN DETECCIÓN DE LÍNEAS.


La detección de círculos encuentra una variedad de usos en aplicaciones
biomédicas, que van desde la detección del iris hasta la segmentación de glóbulos
blancos. La técnica que se sigue es similar a la que se usa para detectar líneas,
como se explica en este artículo .

Conceptos básicos de la detección de círculos.

Un círculo se puede describir mediante la siguiente ecuación:

Para detectar círculos, podemos fijar un punto(x, y). Ahora, estamos obligados a
encontrar 3 parámetros: a, by r. Por tanto, el problema está en un espacio de
búsqueda tridimensional. Para encontrar posibles círculos, el algoritmo utiliza una
matriz 3D llamada "Matriz acumuladora" para almacenar los valores potenciales a,
byr. El valor de a(coordenada x del centro) puede variar de 1 a filas, b(coordenada
y del centro) puede variar de 1 a cols, y r puede variar de 1 a maxRadius = \ sqrt
{filas ^ 2 + columnas ^ 2}.

VISIÓN INDUSTRIAL. CAF1805. TECNM 2


INSTITUTO TECNOLÓGICO DE LERMA. INGENIERÍA MECATRÓNICA.

A continuación, se muestran los pasos del algoritmo.

• Inicialización de la matriz del acumulador: inicialice una matriz de


dimensiones filas * cols * maxRadius con ceros.
• Procesamiento previo de la imagen: aplique desenfoque, escala de grises y
un detector de bordes en la imagen. Esto se hace para asegurar qu e los
círculos se vean como bordes de imagen oscurecidos.
• Recorrer los puntos: elija un punto x_ien la imagen.
• Arreglar r y recorrer ayb: use un bucle anidado doble para encontrar un valor
de r, variando ay b en los rangos dados.

CÓDIGO.

filter_none

editar

cerrar

play_arrow

enlace código

brillo_4

for a in range(rows):

for b in range(cols):

r = math.sqrt((xi - a)**2 + (yi - b)**2)

accum_matrix[a][b][r] += 1

chevron_right

filter_none

VISIÓN INDUSTRIAL. CAF1805. TECNM 3


INSTITUTO TECNOLÓGICO DE LERMA. INGENIERÍA MECATRÓNICA.

• Votación: Elija los puntos en la matriz del acumulador con el valor máximo.
Estos son puntos fuertes que indican la existencia de un círculo con
parámetros a, by r. Esto nos da el espacio de círculos de Hough.
• Encontrar círculos: Finalmente, usando los círculos anteriores como círculos
candidatos, vote de acuerdo con la imagen. El círculo máximo votado en la
matriz del acumulador nos da el círculo.

Los HoughCircles función en OpenCV tiene los siguientes parámetros que se


pueden modificar según la imagen.

Método de detección: OpenCV tiene una implementación avanzada,


HOUGH_GRADIENT, que utiliza el gradiente de los bordes en lugar de llenar toda
la matriz del acumulador 3D, lo que acelera el proceso.

dp: Es la relación entre la resolución de la imagen original y la matriz del acumulador.

minDist: este parámetro controla la distancia mínima entre los círculos detectados.

Param1: La detección de bordes canny requiere dos parámetros: minVal y maxVal.


Param1 es el umbral más alto de los dos. El segundo se establece como Param1 /
2. minRadius: Radio mínimo del círculo. maxRadius: Radio máximo del círculo.

Param2: Este es el umbral del acumulador para los círculos detectados candidatos.
Al aumentar este valor de umbral, podemos asegurarnos de que solo se devuelvan
los mejores círculos, correspondientes a valores de acumulador más grandes.

Detección de Círculos

De un modo muy similar podemos detectar los círculos presentes en una imagen a
escala de grises, veamos un ejemplo de la función cv::HoughCircle(), antes de
aplicar la función usaremos un filtro de mediana para reducir ruido y mejorar los
resultados, esta función devuelve un conjunto de 3 valores, las coordenadas, X e Y
y el radio del círculo.

VISIÓN INDUSTRIAL. CAF1805. TECNM 4


INSTITUTO TECNOLÓGICO DE LERMA. INGENIERÍA MECATRÓNICA.

De momento OpenCV implementa solo el método HOUGH_GRADIENT, este es el


segundo parámetro, el primero como siempre es la imagen de entrada, los demás
nos servirán para restringir los círculos detectados.

VISIÓN INDUSTRIAL. CAF1805. TECNM 5

También podría gustarte