码迷,mamicode.com
首页 > 其他好文 > 详细

RAW转换成RGB

时间:2017-10-30 18:14:38      阅读:926      评论:0      收藏:0      [点我收藏+]

标签:显示   file   fopen   空间   er图   恢复   fclose   img   cat   

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

  

 

RAW转换成RGB

标签:显示   file   fopen   空间   er图   恢复   fclose   img   cat   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!