Vous êtes sur la page 1sur 10

COMPTE RENDU

ST-21
TP2
PROFESSEUR : Moustapha El Aoun

20030
HAMDY
ABDELGHADER
Partie 1 :
Échantillonnage

 Question 1 :

 Tout d’abord, on importe les bibliothèques nécessaires :


import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack

 Fréquence initiale :
F0 = 0.1

 Fonction x(t) :
x = lambda t : np.sin( 2 * np.pi * f0 * t )

 Représentation graphique de la fonction x :


 L'axe des abscisses :
t = np.linspace(0, 2*np.pi, 100)

 Fonction x(t) :
Y = x(t)

 plt.subplot(1,3,1)

 Traçage de la fonction :
plt.plot(t, Y, label="x(t)", color="orange")

 Titre du graphe :
plt.title("Signal x(t)")
plt.legend()
 Question 2 :

 Periode d'échantillonnage :
Te = 10
 tk = []
for k in t:
tk.append(x(k*Te))
plt.subplot(1,3,2)
plt.stem(t, tk)

 Titre du graphe :
plt.title("Signaux échantilonnés de x(t)")

 Question 3 :


plt.subplot(1,3,3)
t = np.arange(200)

TF = np.fft.fft(x(t))
freq = np.fft.fftfreq(TF.shape[-1])
plt.plot(freq, TF.real, freq, TF.imag, label = "TF(x(t))",
color="red")

 Titre du graphe :
plt.title("TF de x(t)")

 Affichage des graphes des fontions :


plt.show()
Résultat :
Partie 2 :
Filtrage d’images

On prend comme exemple pour cette partie l’mage source : fruits.png

 Question 1 :

 Tout d’abord, on importe les bibliothèques nécessaires :


import numpy as np
import cv2

 On déclare une variable image qui la représentation matricielle des


points pixels de notre image :
image = cv2.imread(‘fruits.png’)

 Question 2 :

 On définit un filtrage passe-bas (Kernel):


filtre_passe_bas = ( 1/(5*5) ) * np.ones( (5, 5) )

 Question 3 :

 On applique la convolution entre l’image et le filtre passe-bas


(Kernel) :
image_passe_bas = cv2.filter2D(image, -1, filtre_passe_bas)

 Question 4 :
 On crée l’image :
cv2.imwrite(‘fruits_passe_bas.png’, image_passe_bas)

 Question 5 :

 On définit un filtrage passe-haut :


filtre_passe_haut = np.array([[0, -1, 0],
[-1, 4, -1],
[0, -1, 0]])

 Question 6 :

 On applique la convolution entre l’image et le filtre passe-haut


(Kernel) :
image_passe_haut = cv2.filter2D(image, -1, filtre_passe_haut)

 Question 7 :

 On crée l’image :
cv2.imwrite(‘fruits_passe_haut.png’, image_passe_haut)

 Question 8 :

 On définit un filtrage personnalisé :


filtre_personnalise = np.array([[-1, -1],
[2, 2],
[-1, -1]])

 Question 9 :

 On applique la convolution entre l’image et le filtre personnalisé


(Kernel) :
image_personnalisee = cv2.filter2D(image, -1, filtre_
personnalise)

 On crée l’image :
cv2.imwrite(‘fruits_personnalise.png’, image_personnalisee)

 Question 10 :

 On définit un filtrage flou :


filtre_flou = np.array([[0, -1, -1],
[1, 0, -1],
[1, 1, 0]])

 On applique la convolution entre l’image et le filtre flou (Kernel) :


image_flou = cv2.filter2D(image, -1, filtre_ flou)

 On crée l’image :
cv2.imwrite(‘fruits_flou.png’, image_flou)

Résultat :
Original Filtrage passe-bas Filtrage passe-haut
Filtrage personnalisé Filtrage flou
 Question 11-12 :

 On définit les trois couleurs de base : bleue, verte et rouge :


B, G, R = cv2.split(image)

 Formule de luminance :
Y = 0.299*R + 0.587*G + 0.114*B
Y = Y.astype(np.uint8)

 Affichage de l'image :
cv2.imshow("Image convertie", Y)

 Enregistrement de l'image :
cv2.imwrite('nouvelle.png',Y)

 Résultat :

 Question 13 :

 Les histogrammes des couleurs :

 Bleu :
histogramme = cv2.calcHist([B],[0],None,[256],[0,256])
plt.plot(histogramme,'b')
 Vert :
histogramme2 = cv2.calcHist([G],[0],None,[256],[0,256])
plt.plot(histogramme2,'g')

 Rouge :
histogramme3 = cv2.calcHist([R],[0],None,[256],[0,256])
plt.plot(histogramme3,'r')

 Affichage :
plt.show()

 Résultat :

MERCI POUR VOTRE ATTENTION

Vous aimerez peut-être aussi