Dado un conjunto de puntos (2D), es decir, del punto de enturbiamiento (PC), la pregunta es sobre una robust
, accurate
y computing-friendly
método para encontrar círculos (o elipses en versión avanzada).
La idea intuitiva es utilizar Brute-Force Search en todos los puntos posibles (como centro) {infinito!} Y radios (¡nuevamente infinito!). Esto es extremadamente extremadamente lento e ineficiente.
Como se demuestra a continuación, cada círculo ajustado se clasificará en función del número de puntos ( nn
) colocados en la circunferencia del círculo en una distancia menor que un umbral ( t
). Entonces hay derr
que presentar una distancia promedio.
En forma avanzada, las elipses son de interés para ajustarse.
¿Alguna idea, lluvia de ideas, experiencias, comentarios?
fuente
Respuestas:
Las mejores ideas que intentan resolver este problema exactamente son las transformaciones de Hough .
Básicamente, la señal en el espacio de espacio será
r, x, y
coordinada. Aquír
representa el radio yx,y
representa el centro. Todos los puntos pueden pertenecer a uno o muchos círculos. Entonces, en el plano de Hough, recorra todos los círculos posibles a los que podría pertenecer este punto y simplemente haga un +1. Esto no es una búsqueda, solo una colección.Ahora, si existe un círculo real, se sumarán tantos puntos y la puntuación de tal
r, x, y
será mucho mayor que todos los demás. Seleccionar ese punto le permitirá elegir los círculos correctos.Aquí hay un artículo clásico en 1971 (¡antes de que yo naciera!) Que inventó este concepto.
Para el tutorial, sugeriría referencias a continuación:
Específicamente para la detección de círculos, puede consultar esto a continuación:
Estos métodos son muy eficientes y muy amigables con la computadora.
fuente