¿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 )).
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 , n ( 1 ≤ i ≤ n ) tiene una desviación estándar O ( 1 / n 1.5 ) .)
Cualquier pista o puntero a la literatura relevante será muy apreciada.
Jim Propp ([email protected])
Respuestas:
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.
fuente
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.
fuente
¿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.
fuente
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.
fuente