Cómo detectar el centro de un círculo borroso con OpenCV

10

Tengo la siguiente imagen:

ingrese la descripción de la imagen aquí

Hay curvas en la imagen. Me gustaría encontrar el centro de los círculos que contienen curvas.

Intenté OpenCV y Hough Circle Transform pero no obtuve resultados.

JingKe
fuente
son todas las curvas concéntricas? ¿Es variable la separación entre ellos?
endolito
Sí, son concéntricos. y sin espacio es constante.
JingKe

Respuestas:

3

Primero deberá mejorar el contraste de la imagen, luego filtrarla fuertemente para eliminar el ruido. Como los círculos son 'gruesos' (borrosos), puedes filtrar un poco sin destruir la estructura de los círculos.

Luego aplicaría un algoritmo de detección de bordes para obtener una imagen de borde binaria que pueda ser procesada por la Transformación Circular Hough.

Recibo la siguiente imagen de borde de su imagen: ingrese la descripción de la imagen aquí

Usando los siguientes comandos de MATLAB:

 % x is the input grayscale image. First we adaptively improve the contrast over the image
 y= adapthisteq(x);

 % next we use the Canny edge detector with a strong Gaussian lowpass filter
 ee=edge(y, 'canny', [], 5);
nimrodm
fuente