vidObj = VideoReader('FIR_032.MOV');
width = vidObj.Width / 2;
height = vidObj.Height / 2;
i = 0;
data = zeros(vidObj.NumFrames + 2, 18);
while hasFrame(vidObj)
vidFrame = readFrame(vidObj);
i = i + 1;
img = vidFrame;
FL = img(1:height,1:width,:);
FR = img(1:height,width + 1:2 * width,:);
RL = img(height +1 :2 * height,1:width,:);
RR = img(height +1 :2 * height,width + 1:2 * width,:);
newdata = zeros(1,18);
newdata(1:12) = [meanRGB(FL), meanRGB(FR), meanRGB(RL),meanRGB(RR)];
newdata(17) = 1;
data(i + 1,:) = newdata;
end
% vidObj = VideoReader('Fireworks Display At Night.MP4');
% width = vidObj.Width / 2;
% height = vidObj.Height / 2;
% i = 0;
% data = zeros(vidObj.NumFrames + 1, 18);
% while hasFrame(vidObj)
% vidFrame = readFrame(vidObj);
% i = i + 1;
% img = vidFrame(:,:,:);
% FL = img(1:height,1:width,:);
% FR = img(1:height,width + 1:2 * width,:);
% RL = img(height +1 :2 * height,1:width,:);
% RR = img(height +1 :2 * height,width + 1:2 * width,:);
% newdata = zeros(1,18);
% newdata(1:12) = [quantileRGB(FL), quantileRGB(FR), quantileRGB(RL),quantileRGB(RR)];
% for j = 1 : 4
% if (max(newdata((j - 1) * 3 + 1: j * 3)) > 200)
% newdata(12 + j) = 1;
% end
% end
%
% data(i + 1,:) = newdata;
% end
function rgb = selectRGB(img)
h = size(img,1);
w = size(img,2);
rimg = reshape(img,[h*w,3]);
rgb = rimg(h*w/2,:);
end
function rgb = meanRGB(img)
h = size(img,1);
w = size(img,2);
rimg = reshape(img,[h*w,3]);
rgb = uint8(mean(double(rimg),1));
if rgb(2) > rgb(1)
rgb(2) = rgb(3);
end
end
function rgb = quantileRGB(img)
h = size(img,1);
w = size(img,2);
rimg = reshape(img,[h*w,3]);
value = sum(double(rimg).^2,2);
quavlaue = prctile(value,75);
index = find(abs(quavlaue-value) < 100, 1);
x = mod(index, h);
if x == 0
x = h;
end
y = ceil(index / h);
rgb = img(x,y,:);
rgb = reshape(rgb, [1,3]);
end
function rgb = maxRGB(img)
h = size(img,1);
w = size(img,2);
rimg = reshape(img,[h*w,3]);
value = sum(double(rimg).^2,2);
[~,index] = max(value);
x = mod(index, h);
if x == 0
x = h;
end
y = ceil(index / h);
rgb = img(x,y,:);
rgb = reshape(rgb, [1,3]);
if max(rgb) < 140
rgb= [0,0,0];
end
end