for picNum = 0:193
if picNum<10
yuvName = ['00000', num2str(picNum)];
elseif picNum<100
yuvName = ['0000', num2str(picNum)];
else
yuvName = ['000', num2str(picNum)];
end
fileName0 = ['C:\\A-Sequence\\kitti\\image_0_sequence\\', yuvName, '_10', '.png' ];
A = imread(fileName0);
[m,n] = size(A);
% imshow(A);
m = (floor((m+15)/16))*16;
n = (floor((n+15)/16))*16;
yuv = ['C:\\A-Sequence\\kitti\\image_0_sequence\\', yuvName, '_', num2str(n), 'x', num2str(m), '.yuv'];
fid = fopen(yuv,'rb');
%fseek(fid, m*n*9*0, 'bof');
%fid = fopen('C:\\A-Sequence\\kitti\\image_0_sequence\\000000_1232x384.yuv', 'rb');
fseek(fid, m*n*1.5*9, 'bof');
B = fread(fid, [n,m], 'uint8=>uint8');
% imshow(B');
outName = [yuvName, '_9.png'];
imwrite(B', outName);
fclose(fid);
end
其中:B = fread(fid, [1232,384], 'uint8=>uint8'); 转成uint8类型很重要。如果直接读的话就是生成double类型,写png图像出错。