Come input, il programma otterrebbe un set di punti (x, y), insieme al tempo in cui è stato disegnato un determinato punto. (supponiamo su un tablet).
Limitiamoci ai semplici poligoni.
Ho implementato Trasformazione di Hough , in coordinate polari.
Punti di mappatura da (x,y)
spazio a curve (r,fi)
spazio.
P:(x,y)->(r,y), Re->Re^2
Definisci la funzione F
F: (r,fi)->Re
che prende ogni punto in (r,fi)
di spazio e restituisce il numero di curve intersecanti in quel punto. Interpretare l'immagine di F come una superficie in 3space, costruiamo un insieme E, contenente i suoi "picchi".
Problema: quando l'input è disegnato, a causa dell'errore umano, le linee sono ondulate. Ciò causa "picchi" sparsi. Anche quando si disegna una linea, i casi si verificano, dove l'elemento massimo di E si avvicina scarsamente alla direzione generale della linea disegnata.
I miei modi per provare a risolverlo:
In primo luogo ho cercato di appianare l'input prima che l'algoritmo lo ottenesse.
- Point(i)=(Point(i-1)+Point(i)+Point(i+1))/3
- > facendo una media
- Ho provato a livellarlo incollando le curve di Besier, ho preso tutti i punti di input e poi trattando ogni due vicini come i punti di confine di una curva di Besier e calcolando i due mancanti. Sistema 2n by 2n. Il problema con questo è che dovrei ridurre i punti per avere effetto.
-Al momento sto scrivendo un'implementazione del flusso di curvatura media, per provare ad usarlo per il livellamento
Due foto. Il nero è prima che il rosso sia dopo