bmp转yuv格式的视频

代码差不多同学写的  稍微改了下  目的在博客上备份


function bmp2yuv( bmpfile, yuvfile )

img = imread(bmpfile);


r = double( img(:,:,1) );
g = double( img(:,:,2) );
b = double( img(:,:,3) );


y = round( 0.2126 * r + 0.7152 * g + 0.0722 * b );%(0.257*r + 0.504*g + 0.098*b + 16);
u = round( -0.1146*r - 0.3854*g + 0.5000*b +128 );%(-0.148*r - 0.291*g +0.439*b + 128);
v = round( 0.5000*r - 0.4542*g - 0.0468*b+128 );%(0.439*r - 0.368*g - 0.071*b + 128);
[h, w ] = size(r);
for i = 1 : (h/2)
    for j = 1 : ( w/2 )
    %(i,j) = 0.25 * ( v(2*i,2*j) + v(2*i-1,2*j-1)+ v(2*i, 2*j-1) + v(2*i-1,2*j) );
    m = int32(i/2);
    n = int32(j/2);
    tv(i,j) =  v(i*2 -1,j*2-1);
    tu(i,j) =  u(i*2-1,j*2-1);
    end
end


outfid=fopen(yuvfile,'wb'); 


fwrite(outfid,y','uint8');
fwrite(outfid,tu','uint8');
fwrite(outfid,tv','uint8');


fclose(outfid);
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值