How to get the YUV value for each pixel?

Hi everyone
I am new to matlab, so any help would be appreciated.
I have an image and I need to get the YUV value for each pixel in the image.
Can anyone help? Thanks in advance

 Accepted Answer

if you have a RGB image you can convert it into YUV using below mentioned equations:
Y = R*(0.299000) + G*(0.587000) + B*(0.114000);
U = R*(-0.168736) + G*(-0.331264) + B*(0.500000) + 128;
V = R*(0.500000) + G*(-0.418688) + B*(-0.081312) + 128;

2 Comments

Thanks a lot!
DGM
DGM on 3 Nov 2021
Edited: DGM on 4 Nov 2021
That's not YUV. That's more or less YPbPr, or YCbCr without the margins. The offset implies that the RGB image is uint8-scaled, though if it were actually uint8, the operations would result in severe data truncation. The only case in which this would work is if R,G,and B were uint8-scaled floating-point data.
This covers general luma-chroma conversions, including YUV:
If actual YCbCr conversion is desired with margins, just use rgb2ycbcr().

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Asked:

on 17 Feb 2014

Edited:

DGM
on 4 Nov 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!