RGB2YUV有BT.601和BT.709和BT.2020三种标准,计算公式分别为
% BT.601标准
Y = 0.299*omg(:,:,1) + 0.587*omg(:,:,2) + 0.114*omg(:,:,3);
U = -0.147*omg(:,:,1)- 0.289*omg(:,:,2) + 0.436*omg(:,:,3);
V = 0.615*omg(:,:,1) - 0.515*omg(:,:,2) - 0.100*omg(:,:,3);
% BT.709标准
Y = 0.2126*omg(:,:,1) + 0.7152*omg(:,:,2) + 0.0722*omg(:,:,3);
U = -0.1146*omg(:,:,1)- 0.3854*omg(:,:,2) + 0.5*omg(:,:,3);
V = 0.5*omg(:,:,1) - 0.4542*omg(:,:,2) - 0.0458*omg(:,:,3);
% BT.2020标准
Y =0.2627.*omg(:,:,1) + 0.6780.*omg(:,:,2) + 0.0593.*omg(:,:,3);
U =-0.1396.*omg(:,:,1) - 0.3604.*omg(:,:,2) + 0.5.*omg(:,:,3);
V =0.5.*omg(:,:,1) - 0.4598.*omg(:,:,2) - 0.0402.*omg(:,:,3);
Matlab自带的转换函数采用的是BT.601
工业界更多的采用BT.709
合并yuv三个分量
yuv = cat(3, Y, U, V);