使用Matlab显示OV5642输入的Raw Bayer图像

来源:互联网 发布:网站登录的数据流程图 编辑:程序博客网 时间:2024/05/30 13:42

对于OV5642输出视频格式,可以使用RAWBayer模式。这种格式传输的是Sensor最原始的感光数据,没有经过处理,具有更好的清晰度和图像显示效果。OV5642的RAW Bayer像素点格式如下所示。


对于原始的RAW Bayer格式数据,需要转换成RGB像素点格式才能显示出图像。对于RAW和RGB之间的转换还是有一点复杂,在测试阶段可以使用一种简单的方法,即将相邻的四个像素点合并为一个,取其B、R和Gb最为RGB的三个元素来显示。使用这种方法,使得图像横竖的分辨率都减半,最终的图像大小减为原来的四分之一。

使用Matlab显示RAW Bayer图像的代码如下。

clear all;

clc;

fid = fopen('camera3.raw', 'r' );

if fid == -1

    error('Cannot open file.');

end

hor = 2592;

ver = 1944;

for i=1:ver

    picture(i,:) = fread(fid, hor, 'uint16');

end

fclose(fid);

picture = round((picture ./ 1024) * 256);

r = uint8(zeros(ver/2, hor/2));

g = uint8(zeros(ver/2, hor/2));

b = uint8(zeros(ver/2, hor/2));

r_temp = picture(:, 2:2:hor);

r = r_temp(2:2:ver, :);

g_temp = picture(:, 2:2:hor);

g = g_temp(1:2:ver, :);

b_temp = picture(:, 1:2:hor);

b = b_temp(1:2:ver, :);

rgb(:, :, 1) = r;

rgb(:, :, 2) = g;

rgb(:, :, 3) = b;

figure,imshow(rgb);




 

原创粉丝点击