Filtre médian

../../_images/airplane_sap25.png ../../_images/airplane_sap25_med3_it2.png

Présentation

Le filtre médian est très réputé pour sa capacité à fortement réduire le bruit poivre & sel sans trop altérer les contours des éléments présents dans la scène.

Le bruit poivre et sel (shot noise) est caractérisé par des pixels soit noirs soit blancs. L’exemple de l’image de gauche ci-dessus est une image corrompue pas du bruit poivre & sel à 25%, c’est à dire qu’un quart des pixels est soit noir, soit blanc. L’image de droite montre le résultat obtenu par deux passes d’un filtre médian 3x3.

L’opérateur médian qui permet de débruiter une image s’applique en chaque pixel, sur une fenêtre carrée de coté k centrée sur le pixel. La valeur du pixel correspondant dans l’image de sortie est la médiane des valeurs des pixels de la fenêtre.

../../_images/median-principe.png

Plusieur méthodes permettent de sélectionner la médiane d’un ensemble de valeurs ; Elles se basent sur l’un des principes suivants

  • le tri des valeurs, puis la sélection de la valeur située au milieu

  • la génération de l’histogramme, puis le comptage des valeurs

Programmation d’un filtre médian

Un code source de programme principal est fourni. Il comprend, dans un certain fouilli, les fonctions de chargement et d’enregistrement d’images .pgm ainsi que tout l’ecosystème permettant de mesurer est de configurer l’exécution de kernels GPU.

Un squelette de kernel est également fourni.

Un Makefile permet de compiler le tout.

Expérimentation

  • Télécharger puis compiler les codes fournis. L’exécutable produit s’appelle fkern et attend un chemin vers une image .pgm en argument de sa ligne de commande. En voici une à télécharger.

  • Compléter le squelette de kernel our qu’il réalise un filtre médian de taille 3x3.

  • Mesurer ses performances sur l’image .pgm fournie.

  • Essayer d’implémenter d’autres technique et comparer leurs performances respectives.