In [1]:
import numpy as np
from PIL import Image, ImageFilter
im = Image.open('racoon.png')
imarray = np.array(im)
print imarray.shape, im.size #these agree
In [2]:
imarray[:,:,0].shape
Out[2]:
In [58]:
import matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
plt.imshow(imarray[:,:,0])
plt.show()
In [96]:
U0, s0, V0 = np.linalg.svd(imarray[:,:,0])
U1, s1, V1 = np.linalg.svd(imarray[:,:,1])
U2, s2, V2 = np.linalg.svd(imarray[:,:,2])
In [97]:
for i in range(100, len(s0)):
s0[i] = 0
In [98]:
zero = np.zeros (imarray[:,:,0].shape)
zero.shape
Out[98]:
In [99]:
for i in range(imarray.shape[0]):
for j in range(imarray.shape[1]):
if i == j:
zero[i,j] = s0[i]
S0 = zero
In [100]:
recon = np.dot(np.dot(U0,S0), V0)
In [101]:
plt.imshow(recon)
plt.show()
In [ ]: