使用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); |