資源簡介
親測有效,可實現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圖片讀取轉換存儲\yuvpla
?????目錄??????????0??2018-12-23?11:23??malab圖片讀取轉換存儲
-----------?---------??----------?-----??----
??????????????1567251????????????????????3
評論
共有 條評論