• 大小: 618KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-05
  • 语言: Matlab
  • 标签: yuv  rgb  matlab  

资源简介

亲测有效,可实现rgb到yuv转换及yuv文件存储,内含yuv播放器和实现存储图片播放。

资源截图

代码片段和文件信息

clear all;
clc;

RGBimg=imread(‘C:/Users/bi/Desktop/picture/08.jpg‘);
subplot(221);
imshow(RGBimg);
%imwrite(RGBimg‘new.bmp‘); 
%y=imread(‘new.bmp‘);     
%x=rgb2gray(x);
[imgHeightimgWidthimgDim]=size(RGBimg);  
%imhist(x); %灰度直方图 

%imshow(RGBimg);
%xbw=im2bw(x0.95);
s=0;
YUVimg = rgb2ycbcr(RGBimg);     %%% rgb -> yuv
Y = YUVimg(::1);     % Y 矩阵
U = YUVimg(::2);     % U 矩阵
V = YUVimg(::3);     % V 矩阵

yuv444sampY(::1)=Y;   %最后一维为帧号,仅为一个图设置成1就好,入十视频需要做成循环
yuv444sampU(::1)=U;
yuv444sampV(::1)=V;

    fid1= fopen(‘444yv12.yuv‘‘wb‘);
    for i1 = 1:imgHeight 
       fwrite(fid1yuv444sampY(i1:1));  %输出到文件中Y
    end
    for i1 = 1:imgHeight
       fwrite(fid1yuv444sampU(i1:1));  
    end
    for i1 = 1:imgHeight
       fwrite(fid1yuv444sampV(i1:1)); 
    end
 fclose(fid1);


yuv422out = uint8(zeros(1len));
yuv422sampY(::1) = Y;          
yuv422sampU(::1) = U(:1:2:size(U2));
yuv422sampV(::1) = V(:2:2:size(V2));

    fid2= fopen(‘422yv12.yuv‘‘wb‘);     
    for i1 = 1:imgHeight 
       fwrite(fid2yuv422sampY(i1:1));  %输出到文件中Y
    end
    for i1 = 1:imgHeight
       fwrite(fid2yuv422sampU(i1:1));  
    end
    for i1 = 1:imgHeight
       fwrite(fid2yuv422sampV(i1:1)); 
    end
    fclose(fid2);



% if(c==3) %RGB pic   
%     fid = fopen(‘picture_RGB.txt‘‘w‘);
%     for i=1:m
%         for j=1:n
%             rgb=uint32(uint32(x(ij1))*2^16+uint32(x(ij2))*2^8+uint32(x(ij3)));
%             fprintf(fid‘%x ‘rgb);
%         end
%         fprintf(fid‘\n‘);  
%     end
%     fclose(fid);
% else 
%       fid = fopen(‘picture_data.txt‘‘w‘);
%       for i=1:m
%         for j=1:n
%             fprintf(fid‘%x ‘x(ij));
%         end
%          fprintf(fid‘\n‘); 
%       end
%        fclose(fid);
% end
   



% matlab=zeros(mnc‘uint8‘);
%  
% q=  textread(‘picture_data.txt‘‘%s‘);
% q=hex2dec(q);
% q=uint8(q);
%  for i=1:m
%         for j=1:n
%             for k=1:c     
%             s=s+1;
%             matlab(ijk)= q(s);
%             end
%         end
%  end
%  
% subplot(223);
% imshow(matlab);

% Q= textread(‘D:/modelsim/test/data_out.txt‘‘%s‘);
% Q=hex2dec(Q);
% Q=uint8(Q);

% model=zeros(mnc‘uint8‘);

% s=0;
%  for i=1:m
%         for j=1:n bgtv
%             for k=1:c
%             s=s+1;
%             model(ijk)= Q(s);
%             end
%         end
%  end
%  subplot(224);
% imshow(model);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2579  2018-12-23 11:20  malab图片读取转换存储\picture_read.m

     文件    1564672  2011-04-18 18:17  malab图片读取转换存储\yuvplayer.exe

     目录          0  2018-12-23 11:23  malab图片读取转换存储

----------- ---------  ---------- -----  ----

              1567251                    3


评论

共有 条评论