clc;clear;close all
height = 1024;
width = 1280;
fid = fopen('yuvnv12.raw','rb');
X = fread(fid,[width,height*1.5],'uint8');
fclose(fid);
X = X';
Y = X(1:height,:);
UV = X(height+1:height*1.5,:);
UV_1 = UV(:,1:2:width);
UV_2 = UV(:,2:2:width);
U = zeros(height,width);
V = zeros(height,width);
for i = 1 : height
for j = 1 : width
x = round(j/2);
y = round(i/2);
U(i,j) = UV_1(y,x);
V(i,j) = UV_2(y,x);
end
end
R = zeros(height,width);
G = zeros(height,width);
B = zeros(height,width);
for i = 1 : height
for j = 1 : width-1
y = Y(i,j);
u = U(i,j);
v = V(i,j);
r = y + 1.4075 * (v-128);
g = y - 0.344 * (u-128) - 0.714 * (v-128);
b = y + 1.770 * (u-128);
R(i,j) = r;
G(i,j) = g;
B(i,j) = b;
end
end
rgb = cat(3,R,G,B);
figure;imshow(uint8(rgb));
imwrite(uint8(rgb),'L0.bmp','bmp');
- 1
- 2
前往页