% MAKE_BAYER convert RGB image to a 2x2 [GR;BG] Bayer pattern
%
% Ibayer = make_bayer(Irgb);
%
% Assignment 1 - sample code.
function Ibay = make_bayer(Irgb)
% NOTE: the bayer pattern here is thre 2x2 repeating
% pattern [ B G ; G R ] that is:
%
% BGBGBGBGBGBGBGBGBGBG ...etc...
% GRGRGRGRGRGRGRGRGRGR ...etc...
% BGBGBGBGBGBGBGBGBGBG ...etc...
% ........................etc...
%
% This pattern is ordered DIFFERENTLY to the one shown in the notes
% but the reconstruction scheme as per lecture 1 would be the same.
% convert if array is type uint8
clc; clear; close all; I=imread('5.jpg'); if (isa(I,'uint8')) I=double(I)/255; end % create output array Ibay = zeros(size(I,1),size(I,2)); % copy over colors according to [GR;BG] pattern Ibay(1:2:end,1:2:end) = I(1:2:end,1:2:end,3); % copy BLUE channel data Ibay(2:2:end,2:2:end) = I(2:2:end,2:2:end,1); % copy RED channel data Ibay(2:2:end,1:2:end) = I(2:2:end,1:2:end,2); % copy GREEN channel Ibay(1:2:end,2:2:end) = I(1:2:end,2:2:end,2); % copy GREEN channel imshow(Ibay);
原图:
处理后的图: