% 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);