2012-07-19 26 views
5

Tengo la siguiente imagen:cómo detectar centro de un círculo borroso con OpenCV

enter image description here

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

intenté la transformación de círculo de OpenCV y Hough pero no obtuve ningún resultado.

+1

Posiblemente sea una mejor pregunta para [DSP] (http://dsp.stackexchange.com/) – Maurits

+1

Parece que el centro está realmente fuera de la imagen, ¿es correcto? – MSalters

+0

Sí, el centro está afuera, pero utilizo una imagen más grande con esta en el medio cuando utilizo la transformación de círculo en hough. – JingKe

Respuesta

1

El candidato natural sería cvHoughCircles. Cada parte de cada curva agrega un "voto" para un triplete X/Y/R que identifica el punto central. Ahora, solo tiene una parte de los círculos, por lo que la cantidad de votos es limitada y la precisión reducida, pero probablemente sospeche lo mismo.

0
  • Umbral de la imagen
  • erosionan hasta que hay poco o ningún ruido (pequeñas gotas)
  • dilatan de nuevo
  • encontrar la gran mancha. Si todavía hay algunos blobs pequeños, seleccione el área máxima.
  • uso cv :: momentos para encontrar su centroide
1

Esto es lo que me gustaría probar primero:

observar que si se traza rayos del verdadero centro de los círculos, los máximos locales de la intensidad de la imagen a lo largo de ellos ocurren a intervalos que son independientes de la orientación del rayo. Estos intervalos son las diferencias entre las longitudes de los radios de círculos consecutivos.

Fije un número o direcciones de rayos, digamos 16 espaciados equitativamente en [0, pi], y defina una función de costo parametrizada en las coordenadas (xc, yc) del centro, y los radios ri de los círculos, con costo igual a, por ejemplo, la varianza de las ubicaciones máximas a lo largo de los radios entre diferentes radios.

Cuestiones relacionadas