Junxiang Yao
%pylab inline
from __future__ import print_function
from __future__ import division
Populating the interactive namespace from numpy and matplotlib
img = imread('M.jpg')
imshow(img)
<matplotlib.image.AxesImage at 0x11755f350>
img.shape
(1024, 1024, 3)
newimg = zeros([1024,1024],uint8)
height = 1024
width = 1024
for j in range(0,width):
for i in range(0,height):
newimg [i,j] = img[i,j,0]/3 + img[i,j,1]/3 + img[i,j,2]/3
imshow(newimg,cmap=cm.gray)
colorbar()
print
<function print>
mag_spec = zeros([width*height],uint8)
phs_spec = zeros([width*height],uint8)
for j in range(0,width):
for i in range(0,height):
mag_spec[j+i*width] = newimg [i,j]
phs_spec[j+i*width] = newimg [i,j]/255.0*pi-pi/2
X = [np.complex(cos(phs)* mag, -sin(phs)* mag) for mag, phs in zip(mag_spec, phs_spec)]
index = range(0, len(X), 1024)
sig = []
for i in range(len(index)-1):
tempt = (X[index[i]:index[i+1]])
x = fft.ifft(tempt) * 8
sig.append(x)
sig=array(sig).flatten()
print(array(sig).shape)
(1047552,)
sigout = list((x.astype(int16)) * 150)
plot(sigout)
title('output signal')
xlabel('time')
ylabel('magnitude')
/usr/local/lib/python2.7/site-packages/ipykernel/__main__.py:1: ComplexWarning: Casting complex values to real discards the imaginary part if __name__ == '__main__':
<matplotlib.text.Text at 0x12a4ba550>
from IPython.display import Audio
Audio(sigout,rate = 3000)
a = []
for i in range(0,height):
a.append(fft.irfft(newimg [i,:]))
sig = array(a).flatten()
sigout = list((sig.astype(int16)) * 200)
plot(sigout)
title('output signal')
xlabel('time')
ylabel('magnitude')
<matplotlib.text.Text at 0x12a5a30d0>
sigout = list((sig.astype(int16)-200) * 50)
plot(sigout)
title('output signal')
xlabel('time')
ylabel('magnitude')
<matplotlib.text.Text at 0x12c09a4d0>
from IPython.display import Audio
Audio(sigout,rate = 176400)