1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
from matplotlib import pyplot as plt
from skimage import *
import numpy as np
import math
spectre = io.imread("/home/wozwald/Documents/000Fac/S6/Stages/Stage_IAP/Docs/ESO_Spectroscopy_fichiers/Spectres/EFOSC_Corona.sp1_2019-07-02T20_40.png", as_gray=True)
spectre = img_as_float(spectre)
col_offset = spectre[40:2000,720:1030]
offset = np.mean(col_offset)
colonne1=spectre[760:2060,333:334]
colonne2=spectre[760:2060,334:335]
colonne3=spectre[760:2060,335:336]
colonne=np.zeros((1300,1))
#Je commence par prendre trois colonnes au milieu du spectre pour les moyenner entre elles.
for i in range (0, 1300,1) :
colonne[i]=(colonne1[i]+colonne2[i]+colonne3[3])/3
for i in range (0,1300,1) :
colonne[i]=colonne[i]-offset
#Je retire l'offset.
'''X = np.linspace(0,1300,1300)
Y = np.zeros((1300))
for i in range (len(colonne)) :
Y[i]=colonne[len(colonne)-1-i]
plt.plot(X,Y)
plt.show()'''
moy = np.mean(colonne)
for i in range (0,1300,1) :
colonne[i]=colonne[i]-moy
print(colonne)
#Puis je calcule la valeur moyenne de la colonne obtenue et je la soustrais à la colonne.
'''X = np.linspace(0,1300,1300)
Y = np.zeros((1300))
for i in range (len(colonne)) :
Y[i]=colonne[len(colonne)-1-i]
plt.plot(X,Y)
plt.show()'''
colonne2 = np.copy(colonne)
for i in range (0,1300,1) :
colonne2[i]=colonne[-1-i]
#Je retourne le spectre pour l'avoir dans le bon sens.
colonne_sym = np.zeros((2600,1))
for i in range (0,1300,1):
colonne_sym[i] = colonne2[i]
for i in range (2599,1300,-1) :
j = 2599-i
colonne_sym[i]=colonne2[j]
print(colonne_sym)
#Je symétrise le spectre.
'''X = np.linspace(0,2600,2600)
Y = np.zeros((2600))
for i in range (len(colonne_sym)) :
Y[i]=colonne_sym[len(colonne_sym)-1-i]
plt.plot(X,Y)
plt.show()'''
colonne_fft = np.fft.fft(colonne_sym)
#J'applique la TF à la colonne.
print(colonne_fft)
col_reel_fft = np.real(colonne_fft)
col_im_fft = np.imag(colonne_fft)
'''X = np.linspace(0,2600,2600)
Y = np.zeros((2600))
for i in range (len(colonne_fft)) :
Y[i]=col_reel_fft[len(colonne_fft)-1-i]
plt.plot(X,Y)
plt.show()'''
#Je sépare partie réelle et partie imaginaire.
col_ifft_div = np.fft.ifft(colonne_fft)
#J'applique la TF inverse.
col=col_ifft_div + moy |