Voici une matrice pour convertir RGB en YCbCr. Pouvez-vous me dire comment puis-je obtenir une formule pour convertir YCbCr en RGB? Je veux dire, j'ai la valeur YCbCr disponible et je veux en obtenir le RVB. YCbCr à RGB à partir de la table matricielle
Répondre
Y = 0.2126*(219/255)*R + 0.7152(219/255)*G + 0.0722*(219/255)*B + 16
CB = -0.2126/1.18556*(224/255)*R - 0.7152/1.8556(224/255)*G + 0.5*(219/255)*B + 128
CR = 0.5*(224/255)*R - 0.7152/1.5748(224/255)*G - 0.0722/1.5748*(224/255)*B + 128
Merci pour la réponse rapide, mais la question est de savoir comment avoir YCbCr à la conversion RGB. – SunnyShah
Pourquoi n'êtes-vous pas satisfait de cette formule? – user434507
Je veux dire que j'ai YCbCr disponible et je veux le convertir en RGB. – SunnyShah
http://www.fourcc.org/fccyvrgb.php a YUV vers RGB conversions.
J'ai YCbCr aleready disponible, j'ai juste besoin d'une formule pour convertir ce YCbCr en RVB. Cette formule devrait être basée sur le tableau ci-dessus. – SunnyShah
@Sunny, avez-vous vérifié le lien? Les deux formules sont disponibles. –
@Mark Ransom, Mais je veux que la formule dérivée de la matrice ci-dessus seulement. – SunnyShah
Si vous demandez comment la formule est dérivée, vous pouvez rechercher des «systèmes de coordonnées de couleur». This page a une bonne discussion sur l'espace YCbCr, en particulier.
Nous savons que presque n'importe quelle couleur peut être représentée comme une combinaison linéaire de rouge, vert et bleu. Mais vous pouvez transformer (ou "faire tourner") ce système de coordonnées de sorte que les trois éléments de base ne soient plus RGB, mais quelque chose d'autre. Dans le cas de YCbCr, la couche Y est la couche de luminance, et Cb et Cr sont les deux couches de chrominance. Cb est plus proche du bleu et plus proche du rouge.
YCbCr est souvent préféré car le système visuel humain est plus sensible aux changements de luminance que les changements quantitativement équivalents de chrominance. Par conséquent, un codeur d'image tel que JPEG peut comprimer davantage les deux couches de chrominance que la couche de luminance, ce qui entraîne un taux de compression plus élevé.
EDIT: J'ai mal compris la question. (Vous devez le modifier pour clarifier.) Voici la formule pour obtenir de RVB YCbCr, tiré du above link:
r = 1.0 * y' + 0 * cB + 1.402 * cR
g = 1.0 * y' - 0.344136 * cB - 0.714136 * cR
b = 1.0 * y' + 1.772 * cB + 0 * cR
J'ai YCbCr aleready disponible, j'ai juste besoin d'une formule pour convertir ce YCbCr en RVB. Cette formule devrait être basée sur le tableau ci-dessus. – SunnyShah
Nice link, mais la formule n'est pas tout à fait raison - comme indiqué c'est pour les valeurs 0.0-1.0, pas 0-255. –
Oui, bon point. Le lien contient également la modification supplémentaire (mais simple) pour [0,255]. –
Je ne vais pas rendre compte de la partie round
, mais depuis M
regarde inversible:
Vous pouvez arrondir le vecteur résultant.
Voulez-vous dire "convertir RGB en YCbCr"? Demandez-vous * comment * la formule est dérivée? Sinon, je pense que vous avez répondu à votre propre question. –
@Steve: Oui, je demande comment la formule peut être dérivée? Il y a longtemps que j'ai fait des mathématiques matricielles. – SunnyShah
Est-ce que c'est pour les devoirs? – Jacob