Matlab 读YUV 代码
2008-05-07 15:26
267 查看
close all;
clear
fid = fopen('D:Image-Sequenceakiyo_cif.yuv','r')
row=176*2;col=144*2;
frames=8; % total=300
for frame=1:frames
Y=zeros(row,col,frames);
U=zeros(row/2,col/2,frames);
V=zeros(row/2,col/2,frames);
UU=zeros(row,col,frames);
VV=zeros(row,col,frames);
[Y(:,:,frame),count] = fread(fid,[row,col],'uchar');
[U(:,:,frame),count1]=fread(fid,[row/2,col/2],'uchar');
[V(:,:,frame),count2]=fread(fid,[row/2,col/2],'uchar');
%fclose(fid)
%figure,imshow(Y);
UU(1:2:row-1,1:2:col-1,frame)=U(:,:,frame);
UU(1:2:row-1,2:2:col,frame)=U(:,:,frame);
UU(2:2:row,1:2:col-1,frame)=U(:,:,frame);
UU(2:2:row,2:2:col,frame)=U(:,:,frame);
VV(1:2:row-1,1:2:col-1,frame)=V(:,:,frame);
VV(1:2:row-1,2:2:col,frame)=V(:,:,frame);
VV(2:2:row,1:2:col-1,frame)=V(:,:,frame);
VV(2:2:row,2:2:col,frame)=V(:,:,frame);
R = Y + 1.140 * (VV-128 );
G = Y + 0.395 * (UU-128 ) - 0.581 *(VV-128);
B = Y + 2.032 *(UU-128);
for i=1:row
for j=1:col
if R(i,j,frame)<0
R(i,j,frame)=0;
end
if R(i,j,frame)>255
R(i,j,frame)=255;
end
if G(i,j,frame)<0
G(i,j,frame)=0;
end
if G(i,j,frame)>255
G(i,j,frame)=255;
end
if B(i,j,frame)<0
B(i,j,frame)=0;
end
if B(i,j,frame)>255
B(i,j,frame)=255;
end
end
end
R=R/255;G=G/255;B=B/255;
%X=[R',G',B'];
figure,imshow(R(:,:,frame)',G(:,:,frame)',B(:,:,frame)');
%M(frame) =im2frame(X,map);
end
%movie(M,10,30)
clear
fid = fopen('D:Image-Sequenceakiyo_cif.yuv','r')
row=176*2;col=144*2;
frames=8; % total=300
for frame=1:frames
Y=zeros(row,col,frames);
U=zeros(row/2,col/2,frames);
V=zeros(row/2,col/2,frames);
UU=zeros(row,col,frames);
VV=zeros(row,col,frames);
[Y(:,:,frame),count] = fread(fid,[row,col],'uchar');
[U(:,:,frame),count1]=fread(fid,[row/2,col/2],'uchar');
[V(:,:,frame),count2]=fread(fid,[row/2,col/2],'uchar');
%fclose(fid)
%figure,imshow(Y);
UU(1:2:row-1,1:2:col-1,frame)=U(:,:,frame);
UU(1:2:row-1,2:2:col,frame)=U(:,:,frame);
UU(2:2:row,1:2:col-1,frame)=U(:,:,frame);
UU(2:2:row,2:2:col,frame)=U(:,:,frame);
VV(1:2:row-1,1:2:col-1,frame)=V(:,:,frame);
VV(1:2:row-1,2:2:col,frame)=V(:,:,frame);
VV(2:2:row,1:2:col-1,frame)=V(:,:,frame);
VV(2:2:row,2:2:col,frame)=V(:,:,frame);
R = Y + 1.140 * (VV-128 );
G = Y + 0.395 * (UU-128 ) - 0.581 *(VV-128);
B = Y + 2.032 *(UU-128);
for i=1:row
for j=1:col
if R(i,j,frame)<0
R(i,j,frame)=0;
end
if R(i,j,frame)>255
R(i,j,frame)=255;
end
if G(i,j,frame)<0
G(i,j,frame)=0;
end
if G(i,j,frame)>255
G(i,j,frame)=255;
end
if B(i,j,frame)<0
B(i,j,frame)=0;
end
if B(i,j,frame)>255
B(i,j,frame)=255;
end
end
end
R=R/255;G=G/255;B=B/255;
%X=[R',G',B'];
figure,imshow(R(:,:,frame)',G(:,:,frame)',B(:,:,frame)');
%M(frame) =im2frame(X,map);
end
%movie(M,10,30)
相关文章推荐
- Matlab代码的耗时分析、优化、加速
- 关于matlab代码DeepLearnToolbox-CNN卷积神经网络手写数字识别实例源码直接运行出错的解决方法
- 压缩感知——沃尔什-哈达玛(WHT)变换与逆变换的Matlab代码实现
- Matlab读取YUV数据的方法
- brox optic flow matlab代码
- matlab 高级绘图参考代码
- Matlab代码转C
- logistic 回归Matlab代码
- matlab对数据分布检验代码:正态分布,γ分布,泊松分布,指数分布,rayleigh分布
- MATLAB代码优化
- 差分分组合作协同进化MATLAB代码
- 生成 ZIG-ZAG 扫描顺序MATLAB代码
- 小波矩特征提取matlab代码
- Gamma函数相关matlab代码
- Matlab常用功能代码
- MATLAB画图常用调整代码
- 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤
- 聚类方法:DBSCAN算法研究(3)--C++代码实现及与matlab实例结果比较
- 灰度直方图匹配(灰度直方图规定化)matlab代码
- Matlab读取BMP文件代码