Buscando ansiosamente el código fuente de la transformación de Hough para la detección de líneas rectas en c o c
La idea básica de la transformada de Hough
Se sabe que se dibuja una línea recta en una imagen en blanco y negro, y es necesario encontrar la posición de esta línea recta. Sabemos que la ecuación de una línea recta se puede expresar como y=k*x b, donde k y b son los parámetros de la pendiente y la intersección respectivamente. Los parámetros de todas las rectas que pasan por el punto (x0, y0) satisfacen la ecuación de y0=kx0 b, es decir, el punto (x0, y0) determina una familia de rectas. La ecuación y0=kx0 b es una línea recta en el plano del parámetro k-b (también puede ser la línea recta correspondiente a la ecuación b=-x0*k y0). Por lo tanto, un píxel de primer plano en el plano xy de la imagen corresponde a una línea recta en el plano paramétrico. Pongamos un ejemplo para ilustrar cómo se resuelve el problema anterior. Suponga que la línea recta de la imagen es y = x y tome los tres puntos: a (0,0), b (1,1), c (22). Se puede demostrar que los parámetros de la recta que pasa por el punto A deben satisfacer la ecuación b=0, los parámetros de la recta que pasa por el punto B deben satisfacer la ecuación 1=k b, y los parámetros de la recta que pasa por el punto A el punto C debe satisfacer la ecuación 2=2k b. Estas tres ecuaciones Corresponden a tres rectas en el plano de parámetros, se cruzarán en un punto (k=1, b=0). De manera similar, las líneas rectas en el plano de parámetros correspondientes a otros puntos en la línea recta y = x en la imagen original (como (3,3), (4,4), etc.) también pasarán por el punto (k =1,b=0). Esta propiedad proporciona una forma de resolver el problema, es decir, hacer corresponder los puntos en el plano de la imagen con las líneas en el plano de parámetros y, finalmente, resolver el problema mediante propiedades estadísticas. Si hay dos líneas en el plano de la imagen, habrá dos puntos máximos en el plano de parámetros, y así sucesivamente.
En resumen, la idea de la transformación de Hough es: un punto en el sistema de coordenadas de la imagen original corresponde a una línea recta en el sistema de coordenadas de parámetros, y una línea recta en el sistema de coordenadas de parámetros corresponde a una punto en el sistema de coordenadas original, entonces, todos los puntos en el sistema de coordenadas original presentan una línea recta, sus pendientes e intersecciones son las mismas, por lo que corresponden al mismo punto en el sistema de coordenadas de parámetros. Por lo tanto, después de proyectar los puntos en el sistema de coordenadas original al sistema de coordenadas de parámetros, verifique si hay un punto de recolección en el sistema de coordenadas de parámetros, de modo que el punto de recolección corresponda a la línea recta en el sistema de coordenadas original.
Primero, inicialice un búfer correspondiente al plano de parámetros y establezca todos sus datos en 0. Para cada punto de primer plano de la imagen, encuentre la línea recta correspondiente al plano paramétrico y agregue 1 al valor de todos los puntos en esa línea recta. Finalmente, encuentre la posición del punto máximo en el plano del parámetro, que es el parámetro de la línea recta en la imagen original.
En aplicaciones prácticas, para una recta de la forma x=c (cuando la pendiente de la recta es infinita), no hay forma de expresar la ecuación de la recta en la forma y =k*xb. Por tanto, la aplicación práctica es utilizar la ecuación paramétrica p=x*cos(theta) y*sin(theta). De esta forma, un punto en el plano de la imagen corresponde a una curva en el plano del parámetro p-theta, y el resto sigue igual.
Generalización de la transformada de Hough
1. El radio de un círculo conocido
De hecho, la transformada de Hough puede detectar cualquier curva con una forma de expresión conocida. es mirar su Selección del espacio de parámetros La selección del espacio de parámetros se puede determinar de acuerdo con su forma de expresión. Por ejemplo, la forma de expresión de un círculo es, luego, al detectar un círculo con un cierto radio, se puede seleccionar el mismo espacio que el espacio de la imagen original como espacio de parámetro.
Entonces, un círculo en el espacio de la imagen circular corresponde a un punto en el espacio de la imagen circular, un punto en el espacio de los parámetros corresponde a un círculo en el espacio de la imagen y los puntos en el mismo círculo en el espacio de la imagen circular tienen los mismos parámetros, es decir es, a, b Lo mismo, a, b son iguales, por lo que sus círculos correspondientes en el espacio de parámetros pasarán por los mismos puntos (a, b), por lo que después de convertir todos los puntos en el espacio de imagen original al espacio de parámetros , Según el grado de agregación de los puntos en el espacio de parámetros, se puede determinar si hay una figura aproximada a un círculo en el espacio de la imagen. Si es así, el parámetro es un parámetro circular.
2. Círculo con radio desconocido Para un círculo con radio desconocido, se puede considerar como un círculo con tres parámetros: detección, centro y radio. En este momento, el principio sigue siendo el mismo, excepto que la dimensión del espacio de parámetros aumenta y la cantidad de cálculo aumenta. Cualquier punto en el espacio de la imagen corresponde a un grupo de curvas circulares en el espacio de parámetros. En realidad, esto es un cono. Cualquier punto en el espacio de parámetros corresponde a un círculo en el espacio de la imagen.
3. La elipse tiene 5 parámetros libres, por lo que su espacio de parámetros es de 5 dimensiones, por lo que su cantidad de cálculo es muy grande, por lo que se han propuesto muchos algoritmos mejorados.
Los puntos en el espacio de la imagen están en el mismo círculo, línea o elipse. Cada punto corresponde a una figura en el espacio de parámetros. Estos puntos satisfacen la condición de sus ecuaciones en el espacio de la imagen. puntos, La imagen obtenida después de cada proyección pasará por puntos en este espacio de parámetros. Es decir, se cruzarán en un punto del espacio de parámetros. Por lo tanto, cuando el punto de intersección en el espacio de parámetros es mayor, significa que los gráficos que satisfacen este parámetro en el espacio de metaimagen están más completos. Cuanto más se parece a lo que queremos detectar. Al detectar objetivos de forma conocida, la ventaja de la transformada de Hough es que se ve menos afectada por las interrupciones de la curva y no se ve afectada por la rotación de los gráficos. Incluso si el objetivo tiene un pequeño defecto o contaminación, se puede identificar correctamente.