您的位置:首页 > 其它

将yuv转成png图

2016-04-12 18:39 288 查看
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图像出错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  yuv