Oppure

Loading
02/09/10 15:16
antedesk
Salve a tutti!
ho un problema un pò più serio questa volta, dovrei effettuare il calcolo della trasformata discreta del coseno(dct) su una matrice di interi, che rappresenta l'immagine.
il codice per il calcolo della dct è una semplice formula matematica che ho trovato in rete e riconvertita in codice java. Il problema è che così su immagini molto grandi di mette un eternità, tempo che non sono disposto ad aspettare :D
Studiando un pò di materiale sulla compressione jpeg dove viene utilizzata la dct e dove:
[QUOTE]
"Ogni matrice saràsuccessivamente divisa in blocchi di dimensione 8x8, ovvero ogni blocco conterrà 64 pixel dell’immagine originale. Quindi se M o N non risultano multipli di 8, sono aggiunte delle copie dell’ultima riga o dell’ultima colonna alla matrice dell’immagine originale, sino a che la dimensione della nuova matrice non diventi un multiplo di 8.
Ad ogni blocco è applicata la trasformata DCT bidimensionale, che restituisce ancora un bloccodi dimensioni 8x8."
[/QUOTE]


il problema è che nono so proprio dove mettere le mani per suddividere la matrice in blocchetti 8x8 e di aggiungere una riga qualora non dovesse essere un multiplo di 8

potete aiutarmi? se serve posso postare il codice della funzione dct.

Grazie a tutti, spero di avere risposta
aaa
02/09/10 17:23
netarrow
Ti consiglio di non usare le matrici grezze, per intenderci gli array bidimensionali.
Ti conviene avere una classe Matrix dove gestisci, ad esempio, un Vector di Row che a loro volta contengono un Vector di int.

O meglio ancora usi una classe già sviluppata da altri per gestire le matrici, un esempio: math.nist.gov/javanumerics/jama/
aaa
03/09/10 14:00
antedesk
Grazie provo a vedere se riesco a risolvere il problema con la classe che mi hai linkato.
aaa