La façon de traiter avec RVB YUV conversion
La formule dit:
Y = 0.299 * R + 0.587 * G + 0.114 * B;
U = -0.14713 * R - 0.28886 * G + 0.436 * B;
V = 0.615 * R - 0.51499 * G - 0.10001 * B;
Que si, par exemple, la variable U est négatif?
U = -0.14713 * R - 0.28886 * G + 0.436 * B;
Assumer maximum les valeurs de R et G (en) et B = 0
Donc, je suis intéressé par la mise en œuvre de cette convetion fonction OpenCV,
Donc, la façon de traiter avec des valeurs négatives?
À l'aide du flotteur de l'image? de toute façon, veuillez m'expliquer, peut-être que je ne comprends pas quelque chose..
OriginalL'auteur maximus | 2010-05-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez convertir RVB<->YUV dans OpenCV avec cvtColor à l'aide de la
code
CV_YCrCb2RGB
pour YUV- > RGB etCV_RGBYCrCb
pour le RVB->YUV.Pas de problème. Notez que vous pouvez convertir à 3 canaux images. Si vous avez besoin de fusionner le Y,U et Vcomponents, vous pouvez le faire avec
merge
qui prend unvector<Mat>
objet.strictement parlant, il est. YUV est pour la TÉLÉVISION analogique standard YCrCb est numérique - l'espace de couleur est différente. Mais très légèrement
En C++: cv::cvtColor(image, yuv_image, CV_RGB2YCrCb);
Gardez à l'esprit qu'il y a actuellement un bug dans opencv 2.4.*, ce qui provoque incorrect convertation de RVB YUV. Rouge et Bleu canaux sont échangé dans la mise en œuvre de la formule. code.opencv.org/issues/4227
OriginalL'auteur Jacob
Y, U et V sont tous autorisés à être négatif lorsque représenté par décimales, selon le YUV plan de couleur.
OriginalL'auteur Dolph
pour planaires formats OpenCV n'est pas le bon outil pour le travail. Au lieu de cela, vous êtes mieux à l'aide de ffmpeg. par exemple
vous permet de convertir un YUV420 image de RGB32
Sujet starter demandé à propos de RVB YUV...
OriginalL'auteur Yaur