2010-11-04 5 views
9

Estoy tratando de poner en práctica la cascada transformada de Hough (ya he implementado la versión 'normal'.) Pero estoy teniendo problemas para entender lo siguiente:coordenadas en 3 Subespacios Para resolver unboundedness

Después de aplicar HT en una imagen, me quedan líneas rectas en el espacio vacío. La versión en cascada del HT requiere que divida el espacio en tres subespacios para que se resuelva el problema de los valores ilimitados.

¿Cómo puedo hacer esto?

Aquí está una imagen de cómo el espacio de Hough es dividida: alt text

Con el fin de restaurar la acotación del espacio de parámetros preservando al mismo tiempo la dualidad espacio simétrico, vamos a dividir la (a, b) -espacio en tres subespacios delimitados, como se muestra en la figura siguiente. El primer subespacio también tiene coordenadas a y b, pero solo para | a | < = 1 y | b | < = 1. Si | a | > 1 y | b | < = | a | , el punto (a, b) aparece en el segundo subespacio, con las coordenadas 1/a y b/a. Si, finalmente, | b | > 1 y | a | < | b |, utilizamos un tercer subespacio con coordenadas 1/by a/b.

Aquí es donde me confundo seriamente, supongo que tengo una línea en el espacio. ¿Cómo se dividirá si viola | a | < = 1 y | b | < = 1?

Simplemente recorro todos los píxeles de la línea y si el píxel en cuestión tiene coordenadas mayores que | a | < = 1 y | b | < = 1, ¿lo trazo en el segundo subespacio?

Me disculpo si este tipo de pregunta no es bienvenida en Stack Overlow - ¿hay otro sitio donde pueda hacer preguntas sobre algoritmos?

Source for the image and the above quote

+0

Hola. Con los aspectos teóricos de los algoritmos puede probar en http://cstheory.stackexchange.com/, pero tenga en cuenta que TCS.SE no se trata de implementación, sino de aspectos teóricos. Antes de hacer una pregunta allí, vea otras preguntas sobre cómo se ven y lea las preguntas frecuentes. –

Respuesta

1

Suponga que tiene un punto (x, y). Bajo la transformada de Hough tal como se presenta, se va a la línea

a x + b + y = 0 

Esto corresponde a una línea diferente en cada una de sus parcelas de subespacios:

Subspace 1: a x + b + y = 0 
Subspace 2: x + (b/a) + (1/a) y = 0 
Subspace 2: (a/b) x + 1 + (1/b) y = 0 

Por ejemplo, con el punto (2, 1) a obtener las tres líneas :

Subspace 1: 2a + b + 1 = 0 
Subspace 2: 2 + (b/a) + (1/a) = 0 
Subspace 2: 2(a/b) + 1 + (1/b) = 0 

o puesta en y = m x + c formulario:

Subspace 1: y = -2x - 1 
Subspace 2: y = -x - 2 
Subspace 2: y = -x/2 - 1 
Cuestiones relacionadas