function [yuv]=rgb2yuv(rgb)
%Definition of: YUV/RGB conversion formulas
% Following are the conversion formulas from RGB to YUV and from YUV to RGB. See YUV and color space conversion.
%
% From RGB to YUV
% Y = 0.299R + 0.587G + 0.114B
% U = 0.492 (B-Y)
% V = 0.877 (R-Y)
% It can also be represented as:
% Y = 0.299R + 0.587G + 0.114B
% U = -0.147R - 0.289G + 0.436B
% V = 0.615R - 0.515G - 0.100B
% From YUV to RGB
% R = Y + 1.140V
% G = Y - 0.395U - 0.581V
% B = Y + 2.032U
base=[0.299 0.587 0.114;-0.147 -0.289 0.436;0.615 -0.515 -0.100];
[row,col,dim]=size(rgb);
rgb_shape = reshape(rgb,[row*col,dim]);
yuv_shape = base*double(rgb_shape');
yuv = uint8(reshape(yuv_shape',[row,col,dim]));
end
function [rgb]=yuv2rgb(yuv)
base=[1 0 1.140;1 -0.395 -0.581;1 2.032 0];
[row,col,dim]=size(yuv);
yuv_shape = reshape(yuv,[row*col,dim]);
rgb_shape = base*double(yuv_shape');
rgb = uint8(reshape(rgb_shape',[row,col,dim]));
%Definition of: YUV/RGB conversion formulas
% Following are the conversion formulas from RGB to YUV and from YUV to RGB. See YUV and color space conversion.
%
% From RGB to YUV
% Y = 0.299R + 0.587G + 0.114B
% U = 0.492 (B-Y)
% V = 0.877 (R-Y)
% It can also be represented as:
% Y = 0.299R + 0.587G + 0.114B
% U = -0.147R - 0.289G + 0.436B
% V = 0.615R - 0.515G - 0.100B
% From YUV to RGB
% R = Y + 1.140V
% G = Y - 0.395U - 0.581V
% B = Y + 2.032U
base=[0.299 0.587 0.114;-0.147 -0.289 0.436;0.615 -0.515 -0.100];
[row,col,dim]=size(rgb);
rgb_shape = reshape(rgb,[row*col,dim]);
yuv_shape = base*double(rgb_shape');
yuv = uint8(reshape(yuv_shape',[row,col,dim]));
end
function [rgb]=yuv2rgb(yuv)
base=[1 0 1.140;1 -0.395 -0.581;1 2.032 0];
[row,col,dim]=size(yuv);
yuv_shape = reshape(yuv,[row*col,dim]);
rgb_shape = base*double(yuv_shape');
rgb = uint8(reshape(rgb_shape',[row,col,dim]));