Questo metodo di scansione delle immagini basato su Hilbert Curve. Assomiglia a Curve (da 1 a 6): Come posso migliorare la perfomace della scansione di immagine di Hilbert?
Può essere utilizzato per la scansione di immagini. Quindi, ad esempio, il mio codice per la curva a 3 ordini è:
Hilbert=[C(1,1) C(1,2) C(2,2) C(2,1) C(3,1) C(4,1) C(4,2) C(3,2) C(3,3) C(4,3) C(4,4) C(3,4)...
C(2,4) C(2,3) C(1,3) C(1,4) C(1,5) C(2,5) C(2,6) C(1,6) C(1,7) C(1,8) C(2,8) C(2,7)...
C(3,7) C(3,8) C(4,8) C(4,7) C(4,6) C(3,6) C(3,5) C(4,5) C(5,5) C(6,5) C(6,6) C(5,6)...
C(5,7) C(5,8) C(6,8) C(6,7) C(7,7) C(7,8) C(8,8) C(8,7) C(8,6) C(7,6) C(7,5) C(8,5)...
C(8,4) C(8,3) C(7,3) C(7,4) C(6,4) C(5,4) C(5,3) C(6,3) C(6,2) C(5,2) C(5,1) C(6,1)...
C(7,1) C(7,2) C(8,2) C(8,1)];
E funziona e funziona velocemente. Ho fatto le stesse funzioni per curve a 8 e 9 ordini, ma funziona molto molto lentamente. 9 ordini, forse, non finiranno mai. Almeno, non ho avuto la pazienza di aspettare la fine - dopo 2 ore ho appena spento il programma. Ma la curva di 7 ordini funziona per 15 secondi. Che cosa c'é? Posso fare lo stesso, ma più velocemente? Sì, il programma deve leggere gli elementi dell'array 512 * 512, ma non può essere impossibile renderlo più veloce.
Quindi, di cosa ho esattamente bisogno: ho le coordinate degli elementi dell'array e sono disposti nell'ordine in cui dovrebbero essere letti. Ho bisogno di un tempo accettabile per leggerli e scrivere nel nuovo array. Come farlo?
p.s. L'inglese è ancora difficile per me, se qualcosa non è chiaro - chiedimi, per favore.
io pensi di avere un errore di battitura/bug, terza fila quarto valore dovrebbe essere 'C (4,7)' 'Non C (8,7) '. La domanda è: come si genera il frattale? dov'è il tuo codice? – Amro
Il fatto è che l'ho generato forse un anno prima con il programma C++. Va bene, (8,7) è un mio errore. –