2011-09-30 17 views
6

Me preguntaba por qué la transformada de Hough usos rho=xcos(theta) + ysin(theta) para la representación de una línea recta (y=mx+b). Traté de resolver esto (y fui al wikipedia article sobre esto), pero no puedo encontrar una manera de derivar uno del otro.transformada de Hough Ecuación

¿Alguien sabe cómo derivar una de la otra?

Gracias de antemano.

Respuesta

12

Derivación:

La ecuación x/a + y/b = 1:

  • define una línea
  • tiene intersección x = a
  • tiene intersección y = b

De trigonometría, recordar cómo un rayo girado por el ángulo t se proyectará en los ejes xey egún (angle=t, radius=1) -> (x=cos(t), y=sin(t)) *

http://en.wikipedia.org/wiki/File:Unit_circle.svg

Dibuje la línea tangente en el punto marcado. Trigonometría (o incluso la geometría con triángulos semejantes) nos dice que la recta tangente intersecta al x=1/cos(t), y=1/sin(t). Así, la línea de una distancia 1 de distancia tendrá a=1/cos(t) y b=1/sin(t), y por lo tanto descrito por x/(1/cos(t)) + y/(1/sin(t)) = 1 ...

... que es justo donde cos(t) x + sin(t) y = rhorho=1

Se puede ver que rho corresponde a qué distancia está la línea desde el origen (ya sea por jugar con la ecuación, o por señalar que la multiplicación aquí sólo se escalan todos valores en la misma cantidad, reescalando de manera efectiva la cuadrícula).


* ver http://en.wikipedia.org/wiki/File:Unit_circle.svg de crédito

+0

Gracias por la explicación. – Vignesh

0

Cada par de rho, theta se refiere a un par para una línea dada porque la distancia desde el origen rhox,y en ángulo theta le coloca en una x,y de coordenadas en la línea.

La ecuación rho, theta se utiliza en lugar de y=mx+b de modo que una secuencia de rho, theta valores se puede poner en la ecuación sin problemas computacionales que surgen con el método y=mx+b donde está definida la pendiente (es decir, la línea es vertical).

+0

Downvoter, importa que me ayude a refinar la respuesta? –

5

Eso es sólo una transformación lineal de un sistema de coordenadas a una rotación. La razón de esto se describe en el artículo de Wikipedia:

En la transformada de Hough, una idea principal es tener en cuenta las características de la línea recta no como puntos de imagen (x1, y1), (x2, y2), etc., pero en cambio, en términos de sus parámetros, es decir, el parámetro de pendiente m y el parámetro de intersección b. En base a este hecho, la recta y = mx + b se puede representar como un punto (b, m) en el espacio de parámetros. Sin embargo, uno enfrenta el problema de que las líneas verticales dan lugar a valores ilimitados de los parámetros myb. Por razones de cálculo, por lo tanto, es mejor usar un par diferente de parámetros, denotados r y θ (theta), para las líneas en la transformada Hough.

Y para transformar entre los dos, use la ecuación y = -(cos(theta)/sin(theta))x + r/sin(theta). Por lo tanto, m = -(cos(theta)/sin(theta)) y b = r/sin(theta). Estos, obviamente, se descomponen cuando sin(theta)=0 o theta=0, por lo que se prefiere el sistema de rotación de coordenadas (no hay problemas con las líneas con pendientes infinitas).

+1

Obtuve el resto, pero no veo cómo m = - (cos (theta)/sin (theta)) y b = r/sin (theta) ... (muy avergonzado de decir), todo lo demás tenía sentido – Cenoc

+0

Shouldn ¿No es 'sin (theta)/cos (theta)', ya que la pendiente es ascendente sobre la carrera? –

+0

@JonathanM: Sería si estuviera midiendo la pendiente de la línea desde el origen a la línea 'y = mx + b'. Sin embargo, no lo está, y la pendiente de la línea 'y = mx + b' es igual al recíproco negativo de la línea tangente desde esa línea hasta el origen. Si miras la respuesta de ninjagecko, puedes ver que esto significa que 'm = - (cos (theta)/sin (theta))'. – CanSpice