1. 程式人生 > >使用Matlab顯示OV5642輸入的Raw Bayer影象

使用Matlab顯示OV5642輸入的Raw Bayer影象

對於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);