android raw rgb 转换器,RAW转换成RGB

clc;

clear;

close all;

[filename,pathname]=uigetfile({‘*.*‘,‘All Files (*.*)‘},‘Pick a file‘);

file = strcat(pathname,filename);

% raw图的尺寸

row = 30;

col = 72;

% 读图 所读raw图为8位

fid=fopen(file, ‘r‘);

Bayer=fread(fid,[row,col],‘uint8‘);

fclose(fid);

% 转换到RGB空间

RGB_Pro=raw2rgb(Bayer,row,col); % 转换为RGB图像

% 显示

figure;imshow(RGB_Pro);

YUVimg = rgb2ycbcr(RGB_Pro); %%% rgb -> yuv

figure;imshow((YUVimg));

=================================================================================

function RGB_Pro=raw2rgb(Bayer,row,col)

% 从bayer图像,用shift方法恢复RGB图像

RGB_Pro=zeros(col,row,‘uint8‘);

for m=1 : 2 :row

for n=1:2:col

RGB_Pro(n,m,3)=Bayer(m+1,n);

RGB_Pro(n,m,2)=Bayer(m,n)/2+Bayer(m+1,n+1)/2;

RGB_Pro(n,m,1)=Bayer(m,n+1);

end

end

for m=1 : 2 :row

for n=2:2:col-1

RGB_Pro(n,m,3)=Bayer(m+1,n+1);

RGB_Pro(n,m,2)=Bayer(m+1,n)/2+Bayer(m,n+1)/2;

RGB_Pro(n,m,1)=Bayer(m,n);

end

end

for m=2 : 2 :row-1

for n=1:2:col

RGB_Pro(n,m,3)=Bayer(m,n);

RGB_Pro(n,m,2)=Bayer(m+1,n)/2+Bayer(m,n+1)/2;

RGB_Pro(n,m,1)=Bayer(m+1,n+1);

end

end

for m=2 : 2 :row-1

for n=2:2:col-1

RGB_Pro(n,m,3)=Bayer(m,n+1);

RGB_Pro(n,m,2)=Bayer(m,n)/2+Bayer(m+1,n+1)/2;

RGB_Pro(n,m,1)=Bayer(m+1,n);

end

end

原文:http://www.cnblogs.com/zhongguo135/p/7755287.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值