Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Interazione e Multimedia, 9 CFU => Topic started by: francesco85 on 24-01-2010, 13:23:10



Title: help esercizio
Post by: francesco85 on 24-01-2010, 13:23:10
 Si consideri la sottoimmagine 3x3 centrata nel punto (2,2). Si calcoli al trasformata di Fourier per
tale punto nella sottoimmagine appena calcolata.
Se gli indici nell’immagine di input sono contati da zero, la sottoimmagine 3x3 centrata nel punto
(2,2) è
                              2 1 6
                              3 4 3
                              6 5 4

Il punto (2,2) è adesso diventato il punto (1,1), da cui segue che:

F(1,1)=1/9*(2*e^(-2*i*pi*0)+1*e^(-2*i*pi*1/3)+6*2^(-2*i*pi*2/3)+3*e^(-2*i*pi*1/3)+4*e^(-
2*i*pi*(2/3)+3*e^(-2*i*pi*1)+6*e^(-2*i*pi*2/3)+5*e^(-2*i*pi*1)+4*e^(-2*i*pi*4/3))

ciao a tutti qualcuno potrebbe spiegarmi perchè in questo esercizio dice che il punto (2,2) e diventato il punto (1,1)? in base a che cosa?
grazie a chiunque risponda .ciaociao


Title: Re:help esercizio
Post by: andreacannella on 24-01-2010, 14:18:59
Per calcolare la trasformata di fourier il primo elemento della matrice non è (1,1) ma (0,0).

Saluti
 :-ciao :-ciao

Andrea


Title: Re:help esercizio
Post by: turì on 26-01-2011, 16:49:42
Si consideri la sottoimmagine 3x3 centrata nel punto (2,2). Si calcoli al trasformata di Fourier per
tale punto nella sottoimmagine appena calcolata.
Se gli indici nell’immagine di input sono contati da zero, la sottoimmagine 3x3 centrata nel punto
(2,2) è
                              2 1 6
                              3 4 3
                              6 5 4

Il punto (2,2) è adesso diventato il punto (1,1), da cui segue che:

F(1,1)=1/9*(2*e^(-2*i*pi*0)+1*e^(-2*i*pi*1/3)+6*2^(-2*i*pi*2/3)+3*e^(-2*i*pi*1/3)+4*e^(-
2*i*pi*(2/3)+3*e^(-2*i*pi*1)+6*e^(-2*i*pi*2/3)+5*e^(-2*i*pi*1)+4*e^(-2*i*pi*4/3))

ciao a tutti qualcuno potrebbe spiegarmi perchè in questo esercizio dice che il punto (2,2) e diventato il punto (1,1)? in base a che cosa?
grazie a chiunque risponda .ciaociao

una domanda: mi spieghi il procedimento per calcolarti f(1,1)?
ancora non ho compreso bene le formule della trasformata di fourier.

in particolare come si calcolano i valori che ti ho evidenziato in rosso?

thanks


Title: Re:help esercizio
Post by: Daréios89 on 26-01-2011, 17:40:18
Mi è sembrato di vedere degli errori proprio in quei fattori che sono evidenziati in rosso...coem dice Andrea gli indici partono da 0, non da 1.
Quei valori nella formula della trasformata sono dati da (\frac{ux}{M}+\frac{vy}{N})

Quindi il primo viene 0, perchè abbiamo che x ed y partono da 0 e quindi all' interno si ha 0.
Nel secondo caso (se non erro) valgono sia x e y 1, quindi u,v varranno sempre (1,1), M,N sono invece 3, quindi all'interno dovremmo avere \frac{2}{3} se non ho fatto male i conti...


Title: Re:help esercizio
Post by: turì on 26-01-2011, 19:01:51
quindi u e v fanno riferimento alla posizione del pixel che si sta calcolando e M ed N sono la dimensione della colonna e della riga o al contrario, riga e colonna?


Title: Re:help esercizio
Post by: Daréios89 on 26-01-2011, 19:03:26
Si u e v fanno riferimento alla posizione che si sta calcolando, per capirci quando dice F(1,1) u e v sono entrambi 1.
M indica le righe e N le colonne.


Title: Re:help esercizio
Post by: turì on 26-01-2011, 19:12:30
ti ringrazio iMMensamente .wink

però scusa ma credo che i risultati in rosso siano giusti perchè li ho controllati e funzionano .smile


Title: Re:help esercizio
Post by: Daréios89 on 26-01-2011, 19:20:38
Non ho capito come scusa......
Come fa ad ottenere il secondo valore rosso un terzo?

Avresti \frac{ux}{M}+\frac{vy}{N}

Ora u e v sono fissi ad 1, in questo caso x ed 1 valgono 1 giusto, perchè stiamo parlando del secondo valore in rosso quindi siamo passati da x,y=0 a x,y=1

\frac{1}{3}+\frac{1}{3}

Che dovrebbe fare \frac{2}{3}... .huh


Title: Re:help esercizio
Post by: turì on 26-01-2011, 19:23:21
il secondo valore è f(0,1) quindi...

se come dici gli indici partono da 0


Title: Re:help esercizio
Post by: Daréios89 on 26-01-2011, 19:32:29
Ecco dove sbagliavo, se lo scrivevi prima..... .rido

 :pray


Title: Re:help esercizio
Post by: turì on 26-01-2011, 19:41:17
figurati, mi hai risolto un problemone  .wink


Title: Re:help esercizio
Post by: turì on 27-01-2011, 16:23:37
esame del 6 ottobre 2008:

Data la matrice (per noi è una immagine)

18 30
 0  20

Calcolarne la trasformata discreta di Fourier (se non si dispone di calcolatrice si può impostare la
formula ed omettere il calcolo del risultato finale).

soluzione del professore
F(0,0)=1/4*(18+30+0+20),
F(0,1)=1/4*(18+30*e^(-i*pi)+0+20*e^(-i*pi)),
F(1,0)=1/4*(18+30+0+20*e^(-i*pi)),
F(1,1)=1/4*(18+30*e^(-i*pi)+0+20*e^(-2*i*pi))


mi spieghi perchè la soluzione di questo esercizio di fourier non segue il procedimento che invece viene adottato per risolvere l'esercizio postato all'inizio?

non ci sto capendo più niente :-)|

ci sono tante incongruenze .penso


Title: Re:help esercizio
Post by: Daréios89 on 03-02-2011, 13:04:29
Io ti consiglio di seguire qui l' esercizio della DOMANDA 4, numero 2:

http://www.dmi.unict.it/fstanco/lezioni_IEM_2007_2008/scritto_210708_soluz.pdf

Cioè imposti il calcolo tramite la formula della sommatoria e tralasci calcoli manuali per evitare di sbagliare.

Quello che vien efatto è in ogni caso corretto, devi stare attento a come cambiando i fattori, u,v, e x,y.

F(0,0)=1/4*(18+30+0+20),
E' corretto perchè hai 1/4 che moltiplica il primo elemento per e elevato a qualcosa, ma questo qualcosa, visto che u e v saranno 0 ti darà sempre 0!!! ovviamente sarà "e" elevato a 0, cioè 1. Somma 30 che non moltiplica e perchè anche in questo caso abbiamo e elevato a 0, poi somma l'emento 0 e qui non credo ci sia bisogno di spiegazioni, e poi somma 20 che sempre per lo stesso motivo non ha niente a moltiplicare.
Poi calcoliamo un altro punto:

F(0,1)=1/4*(18+30*e^(-i*pi)+0+20*e^(-i*pi)),

Qui abbiamo u che vale 0 e v che vale 1, mentre x ed y varieranno all' interno della sommatoria:
Allora per il primo elemento abbiamo solo 18 perchè "e" sarà elevato ad ux e vy dove x e y sono 0, quindi abbiamo solo 18, poi sommiamo 30, siccome x ed y ora sono entrambi 1, abbiamo "e" elevato a un mezzo, il due si semplifica con quello al denominatore e otterremo solo "e" elevato ad (-i*pi), lo stesso vale poi per l'emento 20.
Ti conviene controllare su carta per renderti conto meglio, scusa se sono stato abbastanza confuso  .rido
Chiedi pure se vuoi, in ogni caso se capita di dovere calcolare per un punto, ma la matrice ha molti elementi, meglio scrivere solo la formula, sennò ci perdiamo dalla casa.


Title: Re:help esercizio
Post by: turì on 03-02-2011, 13:13:10
sisi poi ho capito l'errore

thanks .smile


Title: Re:help esercizio
Post by: mafalda on 03-02-2011, 14:38:33
http://www.dmi.unict.it/fstanco/lezioni_IEM_2007_2008/scritto_210708_soluz.pdf

Qualcuno mi spiega i passaggi della DOMANDA 5  n°1???

Grazie...


Title: Re:help esercizio
Post by: XDnl on 03-02-2011, 15:31:27
Per esercitarmi con la trasformata di Fourier ho scritto un paio di routine Matlab  :[Emoticon] PC Asd: che, data una matrice in input, stampa in output le espressioni (analitiche) dei vari punti trasformati.

Ho caricato i due file qui:
http://localhostr.com/files/prIiSHY/AnalyticFourier.rar

Per usarli basta scrivere
Code:
[f, F] = Test();

Verrà chiesta in input la matrice (e le sue dimensioni) ed in output si avrà una cosa del genere

Code:
F(0, 0) = 1 / 4 * (2 + 4 + 3 + 10)
F(1, 0) = 1 / 4 * (2 + 4 + 3 * e^(-i*2*pi*(1 / 2)) + 10 * e^(-i*2*pi*(1 / 2)))
F(0, 1) = 1 / 4 * (2 + 4 * e^(-i*2*pi*(1 / 2)) + 3 + 10 * e^(-i*2*pi*(1 / 2)))
F(1, 1) = 1 / 4 * (2 + 4 * e^(-i*2*pi*(1 / 2)) + 3 * e^(-i*2*pi*(1 / 2)) + 10 * e^(-i*2*pi*(1 / 2 + 1 / 2)))
Per visualizzare meglio le espressioni faccio un copia-incolla da Matlab a Derive, che pensa alla formattazione.
In questa maniera credo sia più semplice controllare se si è commesso qualche errore su carta.  :-)|

La funzione Test() restituisce due matrici:
  • f, che è quella immessa dall'utente
  • F, che è quella trasformata, ma a differenza dell'output precedente, le espressioni sono semplificate da MatLab
Per visualizzare F si può scrivere

Code:
pretty(F)

 .ciaociao


Title: Re:help esercizio
Post by: turì on 03-02-2011, 16:39:43
http://www.dmi.unict.it/fstanco/lezioni_IEM_2007_2008/scritto_210708_soluz.pdf

Qualcuno mi spiega i passaggi della DOMANDA 5  n°1???

Grazie...

la distanza euclidea è la distanza fra 2 punti calcolata come

\sqrt{(x_{1}-x_{2})^2 +(y_{1}-y_{2})^2}

dove x1 e y1 sono le coordinate(posizione) di ogni elemento della matrice mentre x2 e y2 sono le coordinate del punto (1,1) visto che la distanza la calcoli sempre dal centro del kernel.

spero hai capito  .smile

edit: ho sbagliato il segno dentro la radice, adesso è corretto!


Title: Re:help esercizio
Post by: mafalda on 03-02-2011, 16:47:25
Non proprio...
se mi fai un esempio pratico con l'esercizio ti ringrazio


Title: Re:help esercizio
Post by: Daréios89 on 03-02-2011, 16:49:02
A me non tornano i conti, se prendi il primo elemento del kernel laplaciano che è -1 all' interno della radice quadrata avrei 0-1 al quadrato, quindi 1, e poi nella seconda sempre 0-1 cioè 1, ma dalla sottrazione risulta 0....


Title: Re:help esercizio
Post by: turì on 03-02-2011, 17:04:49
Non proprio...
se mi fai un esempio pratico con l'esercizio ti ringrazio

allora esempio

il kernel laplaciano è

-1 0 -1
0  4  0
-1 0 -1

iniziamo col primo elemento che sta in posizione (0,0)

adesso fai la distanza euclidea con quella formula, quindi

\sqrt{(0-1)^2 +(0-1)^2} = \sqrt{2}

trovata la distanza, quando ricrei il nuovo kernel modificato al posto di -1 vai a mettere

-1/\sqrt{2} e cosi fai per tutti gli altri elementi

spero di essere stato chiaro


Title: Re:help esercizio
Post by: mafalda on 03-02-2011, 17:16:28
Ho capito..
Ho provato a farlo col punto di coordinate (1,1) ovvero il 4 del Laplaciano, ma applicando la formula della distanza, nel nuovo kernel modificato non mi risulta 4.
Ovvero:\sqrt{(1-4)^{2}+ (1-4)^{2}} che non fa 4.
Dove sbaglio?


Title: Re:help esercizio
Post by: Daréios89 on 03-02-2011, 17:37:23
La distanza dell' elemento centrale rispetto al centro del kernel è nulla, perchè è l' elemento stesso......quindi rimane 4.


Title: Re:help esercizio
Post by: turì on 03-02-2011, 17:37:46
Ho capito..
Ho provato a farlo col punto di coordinate (1,1) ovvero il 4 del Laplaciano, ma applicando la formula della distanza, nel nuovo kernel modificato non mi risulta 4.
Ovvero:\sqrt{(1-4)^{2}+ (1-4)^{2}} che non fa 4.
Dove sbaglio?

nel punto (1,1) non ha senso fare la distanza, perchè è come se fai la distanza di un punto da se stesso che è uguale a 0...almeno credo :[Emoticon] Asd:


Title: Re:help esercizio
Post by: mafalda on 03-02-2011, 17:41:45
Quindi si fa solo per i bordi?


Title: Re:help esercizio
Post by: turì on 03-02-2011, 17:47:19
si fa per tutti gli elementi tranne per quello centrale, in questo caso.


Title: Re:help esercizio
Post by: Daréios89 on 03-02-2011, 17:49:05
Si fa per i bordi si, perchè ti chiede di calcolare la distanza con il punto centrale, se provi a calcolarlo per il centro, intanto ti accorgi subito che non ha senso perchè; calcolare la distanza di un punto da se stesso............. .penso
Otterresti comunque all' interno della radice quadrata valore 0.....per cui...


Title: Re:help esercizio
Post by: mafalda on 03-02-2011, 17:50:56
Potresti farmi vedere perchè nel punto (0,1) risulta zero?


Title: Re:help esercizio
Post by: Daréios89 on 03-02-2011, 18:07:09
Per il semplice fatto che non c' è bisogno di fare molti calcoli.
Nel Kernel Laplaciano il punto di coordinate (0,1) è proprio 0, l' esercizio richiede di sostituire il valore del kernel con il valore stesso diviso per la distanza giusto?

Dovresti fare 0 fratto qualcosa.....neanche a calcolare questo qualcosa, sappiamo sicuramente che l' intero risultato sarà 0.


Title: Re:help esercizio
Post by: mafalda on 04-02-2011, 14:10:40
Già..era così semplice!!! Grazie mille!!!   .ciaociao