将yuv转成png图

来源:互联网 发布:apache ignite 编辑:程序博客网 时间:2024/05/19 03:28
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图像出错。

0 0