obj = VideoReader('footballs.mp4')
vidFrames = read(obj);
numFrames = get(obj, 'numberOfFrames');
for k = 1 : numFrames
mov(k).cdata = vidFrames(:,:,:,k);
mov(k).colormap = [];
end
figure(1), movie(mov, 1, obj.FrameRate), title('Original movie');
figure(2), montage(vidFrames(:,:,:,1:80)),title('Montage of frames 1 to 80');
for k = numFrames:-1:1
grmov(:, :, k) = rgb2gray(mov(k).cdata);
end
figure(3), montage(grmov),title('Montage of greyscale frames 1 to 80')
for k = numFrames-1:-1:1
framediff(:, :, k) = imabsdiff(grmov(:,:,k), grmov(:,:,k+1));
end
figure(4), imshow(framediff(:,:,100), [])
for k = numFrames-1:-1:1
bwdiffs(:, :, k)= im2bw(framediff(:, :, k),graythresh(framediff(:, :, k)));
end
figure(5), montage(bwdiffs)
for k = numFrames-1:-1:1
s = regionprops(bwlabel(bwdiffs(:,:,k)), 'centroid');
centroids = [s.Centroid];
xavg = mean(centroids(:,1:2:end));
yavg = mean(centroids(:,2:2:end));
position(:,k) = [xavg,yavg];
end
for k = 1:length(position)
I = mov(k).cdata;
xpos = int32(position(1,k));
ypos = int32(position(2,k));
I(ypos-5:ypos+5,xpos-5:xpos+5,1:2) = 255;
mov(k).cdata = I;
end
figure(6), movie(mov, 1), title('tracking v1')