convert RGB image to a 2x2 [GR;BG] Bayer pattern

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


 

你可能感兴趣的:(image,Scheme,output,colors)