deviazione standard con le immagini...

Messaggioda *pippuzzo80 » 06/06/2006, 14:46

Sono uno studente di informatica. Sto ultimando la realizzazione di un applicativo sulle immagine e devo calcolare la deviazione standard. Ora tutte le formule che utilizzo sembrano portare ad un risultato errato, ed è per questo che chiedo un consiglio:
di una immagine considero i tre canali (Red,Green,Blue) separatamente. Di ognuno,quindi, ottengo un array di 256 elementi. Ogni elemento rappresenta il numero di occorrenze di quel pixel nell'immagine (es. se ho un immagine di 23200 pixel il valore array[0]=400 mi dice che ci sono 400 occorrenze del pixel con valore 0).
Ora la formala per la deviazione standard dovrebbe essere:
radice quadrata ( somma dei quadrati ( differenze tra quantità per livello e media)))
ora quali valore devo considerare nell'ultima parentesi?? ( differenze tra quantità per livello e media)
ho provato a fare
for (int i=0; i<256; i++)
{
//sommo i quadrati delle differenze tra quantità per livello e media
DeviazionetempR+=Math.pow(((IstoRed[i]*i)-MediaR),2);
DeviazionetempG+=Math.pow(((IstoGreen[i]*i)-MediaG),2);
DeviazionetempB+=Math.pow(((IstoBlue[i]*i)-MediaB),2);
}
e poi calcolare la radice quadrata di Deviazionetemp, ma vengono risultati grandissimi
R: 586.0909853745022
G: 726.5127611796387
B 620.566268917065
il problema potrebbe derivare dal fatto che MediaR è una media del colore... mentre IstoRed[i] è una frequenza...ma in tal come devo procedere...

grazie in anticipo
*pippuzzo80
Starting Member
Starting Member
 
Messaggio: 13 di 24
Iscritto il: 18/05/2006, 18:45

Messaggioda Nidhogg » 06/06/2006, 15:12

Penso che l'errore sia nell'elevare al quadrato anzichè fare la radice quadrata: DeviazionetempR+=Math.pow(((IstoRed[i]*i)-MediaR),2);

Prova a scrivere: DeviazionetempR+=Math.pow(((IstoRed[i]*i)-MediaR),0.5);

Penso che vada bene.
"Una delle principali cause della caduta dell'Impero Romano fu che, privi dello zero, non avevano un modo per indicare la corretta terminazione dei loro programmi C." - Robert Firth
Nidhogg
Senior Member
Senior Member
 
Messaggio: 1236 di 1491
Iscritto il: 24/02/2004, 18:29
Località: Baronissi (Salerno) - Italia


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite