Filtre médian ============= .. list-table:: * - .. image:: img/airplane_sap25.png :width: 300px - .. image:: img/airplane_sap25_med3_it2.png :width: 300px 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. .. image:: img/median-principe.png :width: 400px 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 :download:`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 :download:`squelette de kernel ` est également fourni. Un :download:`Makefile` permet de compiler le tout. .. admonition:: Expérimentation :class: question * 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 à :download:`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.