[FoLUG] Conversione da YUV a RGB

muratmat@libero.it muratmat@libero.it
Mer 3 Maggio 2006 18:50:09 CEST


> Ciao a tutti!
> 
> Qualcuno sa dirmi come posso convertire un'immagine catturata da una telecamere dal modello YUV al modello RGB e viceversa? 
> 
> Se avete del codice sarebbe ancora meglio
> 
> Grazie dell'aiuto.
> 

RGB to YUV Conversion
    Y  =      (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
    Cr = V =  (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
    Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

YUV to RGB Conversion
    B = 1.164(Y - 16)                   + 2.018(U - 128)
    G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
    R = 1.164(Y - 16) + 1.596(V - 128)

Il codice per implementare le conversioni riportate risulta bovino ;) Attenzione che nelle formule indicate R, G e B sono espressi nel range [0; 255], quindi se li hai in range diversi (tipicamente puo' capitare tra 0 e 1) semplicementi li pretransformi o modifichi leggermente le formule.
Ah, stai attento che ogni componente ottenuto devi clamparlo tra 0 e 255, in quanto la conversione puo' portare a valori al di fuori.




Maggiori informazioni sulla lista FoLUG