diff --git a/assignment6/datam/me/2022-12-27-150057.jpg b/assignment6/datam/me/2022-12-27-150057.jpg new file mode 100644 index 0000000..f95fbe6 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150057.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150101.jpg b/assignment6/datam/me/2022-12-27-150101.jpg new file mode 100644 index 0000000..6f0b780 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150101.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150106.jpg b/assignment6/datam/me/2022-12-27-150106.jpg new file mode 100644 index 0000000..51f1992 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150106.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150113.jpg b/assignment6/datam/me/2022-12-27-150113.jpg new file mode 100644 index 0000000..5fd5c76 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150113.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150120.jpg b/assignment6/datam/me/2022-12-27-150120.jpg new file mode 100644 index 0000000..95e1cba Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150120.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150125.jpg b/assignment6/datam/me/2022-12-27-150125.jpg new file mode 100644 index 0000000..39f4a0a Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150125.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150130.jpg b/assignment6/datam/me/2022-12-27-150130.jpg new file mode 100644 index 0000000..8c55643 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150130.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150137.jpg b/assignment6/datam/me/2022-12-27-150137.jpg new file mode 100644 index 0000000..e8fa496 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150137.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150142.jpg b/assignment6/datam/me/2022-12-27-150142.jpg new file mode 100644 index 0000000..2c465fb Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150142.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150147.jpg b/assignment6/datam/me/2022-12-27-150147.jpg new file mode 100644 index 0000000..8e97832 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150147.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150152.jpg b/assignment6/datam/me/2022-12-27-150152.jpg new file mode 100644 index 0000000..64f4c8c Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150152.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150158.jpg b/assignment6/datam/me/2022-12-27-150158.jpg new file mode 100644 index 0000000..8ec18fd Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150158.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150206.jpg b/assignment6/datam/me/2022-12-27-150206.jpg new file mode 100644 index 0000000..522911d Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150206.jpg differ diff --git a/assignment6/datam/me/2022-12-27-150212.jpg b/assignment6/datam/me/2022-12-27-150212.jpg new file mode 100644 index 0000000..7325347 Binary files /dev/null and b/assignment6/datam/me/2022-12-27-150212.jpg differ diff --git a/assignment6/solution.py b/assignment6/solution.py index 6017a92..8c89b20 100644 --- a/assignment6/solution.py +++ b/assignment6/solution.py @@ -42,7 +42,6 @@ def one_d() -> None: U, S, VT, _ = uz_image.compute_PCA(points) uz_image.plot_histogram_pca(U, S, VT) - # U is the matrix of eigenvectors # S is the vector of eigenvalues @@ -234,21 +233,24 @@ def three_b(): img2 = imgs[0].copy() - # Project image into PCA subspace - y_i = np.matmul(img2 - mean, U) - y_i[0] = 0 + fig, axs = plt.subplots(5, 2) + for i in range(5): + + # Project image into PCA subspace + y_i = np.matmul(img2 - mean, U) + y_i[i] = 0 - # Project image back into original subspace - x_i = np.matmul(y_i, U.T) + mean + # Project image back into original subspace + x_i = np.matmul(y_i, U.T) + mean - # Plot the original image and the projected images - diff = (np.sum(np.abs(img - x_i))) - fig, axs = plt.subplots(1, 2) - fig.suptitle(f'Add noise in PCA space, diff: {np.round(diff, 2)}') - axs[0].imshow(img2.reshape((96, 84)), cmap='gray') - axs[1].imshow(x_i.reshape((96, 84)), cmap='gray') + # Plot the original image and the projected images + diff = (np.sum(np.abs(img - x_i))) + + axs[i, 0].imshow(img2.reshape((96, 84)).copy(), cmap='gray') + axs[i, 1].imshow(x_i.reshape((96, 84)).copy(), cmap='gray') + + axs[i, 1].set(title=f'Add noise in PCA space y[{i}], diff: {np.round(diff, 2)}') plt.show() - def three_c(): """ Effect of the number of components on the reconstruction: Take a random @@ -430,7 +432,7 @@ def main(): #one_f() #two_b() #three_a() - #three_b() + three_b() #three_c() #three_d() #three_e() diff --git a/assignment6/video.avi b/assignment6/video.avi new file mode 100644 index 0000000..bbf002e Binary files /dev/null and b/assignment6/video.avi differ