Description
Included with this assignment are movie files (turned into MATLAB files) created from three different cameras.
The experiments are an attempt to illustrate various aspects of the PCA, its practical usefulness, and the effects
of noise on the PCA algorithms. In all four cases we will consider video of a spring-mass system, as was described
at the end of Lecture 13. The cases are as follows:
1. Test 1: Ideal Case. Consider a small displacement of the mass in the z direction and the ensuing
oscillations. In this case, the entire motion is in the z direction with simple harmonic motion being observed.
MATLAB files: camN 1.mat where N = 1, 2, 3.
2. Test 2: Noisy Case. Repeat the ideal case experiment, but this time introduce camera shakes into the
video recording. This should make it more difficult to extract the simple harmonic motion. But, if the shake
isn’t too bad, the dynamics will still be extracted with the PCA algorithms. MATLAB files: camN 2.mat
where N = 1, 2, 3.
3. Test 3: Horizontal Displacement. In this case the mass is released off-centre so as to produce motion
in the x − y plane as well as the z direction. See what the PCA tells us about the system. MATLAB files:
camN 3.mat where N = 1, 2, 3.
4. Test 4: Horizontal Displacement and Rotation. In this case the mass is released off-centre and rotates
so as to produce rotation in the x − y plane and motion in the z direction. See what the PCA tells us about
the system. MATLAB files: camN 4.mat where N = 1, 2, 3
In order to use PCA, you will have to extract the mass positions from the video frames. The following code
examples may be helpful to get you started.
To load the first video from test 1 and play the video using MATLAB’s built-in video player, you can use the
following commands:
1 load(‘cam1 1.mat’)
2 implay(vidFrames1 1)
You may also find it useful to view the video by creating a loop and displaying each frame. That can be done with
the following code:
1 numFrames = size(vidFrames1 1,4);
2 for j = 1:numFrames
3 X = vidFrames1 1(:,:,:,j);
4 imshow(X); drawnow
5 end
Goal: You are being asked to explore the PCA method on the different datasets you are provided and see what
you find. A complete report should compare and contrast the different cases.
1