Vous êtes sur la page 1sur 2

ISIMM, Département d’Informatique

Année Universitaire : 2023-2024

TP4– Traitement d’images


Proposé par : Nada Haj Messaoud & Asma Ben Abdallah

Les filtres passe-bas sont des filtres qui laissent passer les basses fréquences tout en
atténuant les hautes fréquences dans une image. Ils sont souvent utilisés pour le lissage
et la réduction du bruit. Voici quelques exemples de filtres passe-bas couramme nt
utilisés :
Filtre Moyenneur (Average Filter) : Calcule la moyenne des valeurs des pixels
environnants.
Filtre Gaussien : Utilise une fonction gaussienne pour pondérer les pixels
environnants, donnant plus d'importance aux pixels proches.
Filtre Médian : Remplace la valeur de chaque pixel par la médiane de ses voisins, ce
qui est efficace pour réduire le bruit impulsionnel.

Exercice 1 : Filtre Moyenneur (Passe-bas)


1. Écrivez une fonction en Python qui prend une image (image_TP3) en niveaux
de gris et applique un filtre moyenneur 3x3 à l'image. Vous pouvez utiliser La
fonction cv2.filter2D dans OpenCV. Elle est utilisée pour appliquer une
opération de convolution à une image avec un noyau personnalisé.
2. Appliquez cette fonction à l’image et affichez l'image originale et l'image filtrée.
3. La fonction suivante effectue la convolution. La matrice H doit avoir des
dimensions impaires. On peut choisir de filtrer seulement la moitié gauche de
l'image.

import numpy

def convolution2D(X, H, moitie):


# Récupérer les dimensions de la matrice d'entrée X
s = X.shape

# Calculer les décalages pour le traitement en moitié ou


en entier
py = int((H.shape[0] - 1) / 2)
px = int((H.shape[1] - 1) / 2)

# Créer une copie de la matrice d'entrée pour stocker le


résultat
Y = X.copy()

# Déterminer la limite supérieure pour l'itération en


fonction du mode "moitie"
if moitie:
ISIMM, Département d’Informatique
Année Universitaire : 2023-2024

imax = int(s[1] / 2)
else:
imax = s[1] - px

# Itérer sur les pixels de l'image en excluant les bords


où le noyau ne s'applique pas complètement
for i in range(px, imax):
for j in range(py, s[0] - py):
somme = 0.0

# Effectuer la convolution en parcourant le noyau


for k in range(-px, px + 1):
for l in range(-py, py + 1):
somme += X[j + l][i + k] * H[l +
py][k + px]

# Mettre à jour la valeur du pixel dans la matrice de


sortie
Y[j][i] = somme

return Y

Pour voir l’effet de filtre moyenneur , on prend la couche rouge de l’image en couleur.
Essayer avec l’image « babouin.png » puis Afficher l’image
Exercice 2 : Filtre Gaussien (Passe-bas)
1. Écrivez une fonction qui applique un filtre gaussien 3x3 à une image en niveaux
de gris. Appliquer sur les deux mages (image_TP3, babouin.png )
2. Affichez l'image originale et l'image filtrée.

Exercice 3 : Comparaison des filtres

1. Appliquez le filtre moyenneur, le filtre gaussien et le filtre médian à une même


image (image_TP3).
2. Comparez visuellement les résultats en affichant l'image originale, l'ima ge
filtrée par le filtre moyenneur, l'image filtrée par le filtre gaussien et l'ima ge
filtrée par le filtre médian.

Vous aimerez peut-être aussi