rgb2yuv.m

来自「视频处理算法 RGB与YUV格式的相互转化」· M 代码 · 共 33 行

M
33
字号
function [Y,U,V]=RGB2YUV(filename,length)

T = [.299 .587 .114; -.169 -.332 .5;.5 -.419 -0.0813];

for i=1:1:length
    
num=int2str(i-1);
p='.ppm';
name=strcat(filename,num,p);
A1 = imread(name);

if ((rem(size(A1,1),2)~=0))
    A=A1(1:(size(A1,1)-1),:,:);
end

if (rem(size(A1,2),2)~=0)
    A=A1(:,1:(size(A1,2)-1),:);
end

R(:,:,i)=double(A(:,:,1));
G(:,:,i)=double(A(:,:,2));
B(:,:,i)=double(A(:,:,3));

yuv = zeros(size(R,1),size(R,2),3);

yuv(:,:,1) = T(1,1) * R(:,:,i) + T(1,2) * G(:,:,i) + T(1,3) * B(:,:,i) ;
yuv(:,:,2) = T(2,1) * R(:,:,i) + T(2,2) * G(:,:,i) + T(2,3) * B(:,:,i) + 128;
yuv(:,:,3) = T(3,1) * R(:,:,i) + T(3,2) * G(:,:,i) + T(3,3) * B(:,:,i) + 128;
yuv = uint8(round(yuv));
Y(:,:,i)=yuv(:,:,1);
U(:,:,i)=imresize(yuv(:,:,2),1/2,'bicubic');
V(:,:,i)=imresize(yuv(:,:,3),1/2,'bicubic');
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?