Recuperando la pendiente de una línea digitalizada

11

¿Ha habido algún trabajo para recuperar la pendiente de un segmento de línea desde su digitalización? Uno no puede hacer esto con perfecta precisión, por supuesto; lo que uno quiere es un método para derivar de una línea digitalizada un intervalo de posibles pendientes.

(El concepto de una línea digitalizada que estoy usando es Rosenfeld de: el conjunto de pares , donde i se extiende sobre los números enteros (o un bloque de números enteros consecutivos) y n i n t ( x ) denota el número entero más próximo a x (si x = k + 1 / 2 , tomamos n i n t ( x ) = k )).(i,nint(ai+b))inint(x)xx=k+1/2nint(x)=k

He trabajado un poco en esto por mi cuenta (ver http://jamespropp.org/SeeSlope.nb ) pero no tengo antecedentes formales en geometría computacional, por lo que sospecho que puedo reinventar la rueda, ya que la pregunta parece ser tal. uno básico

De hecho, sé que el método de regresión lineal para estimar la pendiente está en la literatura, pero no he podido encontrar mi resultado ninguna parte. (Este resultado dice que si uno elige a y b uniformemente al azar en [ 0 , 1 ] , entonces la diferencia entre la pendiente a de la línea y = a x + b y la pendiente ¯ a de la línea de regresión que se aproxima a los n puntos ( i , nO(1/n1.5)ab[0,1]ay=ax+ba¯n ( 1 i n ) tiene una desviación estándar O ( 1 / n 1.5 ) .)(i,nint(ai+b))1inO(1/n1.5)

Cualquier pista o puntero a la literatura relevante será muy apreciada.

Jim Propp ([email protected])

Jim Propp
fuente
Entonces, ¿una digitalización de punto es aproximadamente un conjunto de celdas de una cuadrícula n × n ? nortenorte×norte
Suresh Venkat
1
¿Qué quieres decir exactamente con línea digitalizada? Supuse que se refería a algo así como una línea recta en una foto o una imagen rasterizada, pero por lo que se refiere a la regresión lineal, suena más como si estuviera interesado en encontrar una línea que se ajuste mejor a algunos datos muestreados.
Joe Fitzsimons
Por lo que el modelo que está interesado en que no es una solución exacta de y b , pero sólo una aproximación a ellos? Simplificaría el problema al no considerar b (es solo un cambio molesto), y al seguir con a x (resulta que este es solo otro cambio). Además, ¿qué es n aquí? unasisiunaXnorte
Mitch
Lo siento, Mitch; ¡Olvidé explicar qué era ! Lo agregué a la publicación original. - Jimnorte
Jim Propp

Respuestas:

1

Consulte Generación aleatoria de palabras finlandesas de Sturmian de Berstel y Pocchiola para obtener una prueba de que la región factible de su LP tiene solo tres o cuatro lados, así como un algoritmo simple para encontrar el polígono dado la pendiente y la intersección. (Se trata de reconocer las palabras de Sturmian, pero los problemas están fuertemente relacionados).

También proporcionan una enumeración explícita de los polígonos, por lo que puede ser posible enumerar las áreas de los polígonos y los rangos de las pendientes, por lo que puede obtener el valor esperado del rango de pendientes (así como los momentos más altos ) como una suma explícita.

deinst
fuente
4

El enfoque de geometría computacional reemplazaría cada píxel (i, j) con segmento vertical (i, j + [- 1 / 2,1 / 2]), tomaría los cascos convexos de los conjuntos de puntos finales superior e inferior y calcularía el común interno tangentes: delimitan el rango de pendientes que producen esta línea digital. Esta es solo la interpretación geométrica del programa lineal que mencionas en tus diapositivas. O (n) el tiempo es suficiente para el LP de Meggiddo, o para los cascos y tangentes de Graham-Yao.

Jack
fuente
2

¿Qué pasa con el método de transformación Hough estándar que se utiliza para la detección de líneas en el procesamiento de imágenes: http://en.wikipedia.org/wiki/Hough_transform ?

Si desea ganar algo de velocidad, puede usar la versión aleatoria de HT.

Marzio De Biasi
fuente
1
  • No conozco ningún trabajo en CG (o cualquier otro grupo) para derivar la pendiente del conjunto de puntos discretos, pero eso es más un reflejo de mi falta de conocimiento.

  • ΔyΔXXyXy

Mitch
fuente
O(1/ /norte)