L'Antre du BuD
IMAC3
Outils pour la Réalité Virtuelle: TD2
Un peu de traitement d'image

Sommaire

Introduction

Nous allons voir dans ce TD quelques outils de filtrage et d'extraction de données dans le cas d'images 2D et les appliquer aux images des flux vidéos que nous avons extraits dans le TD précédent.

Seuillage binaire

L'opération de seuillage binaire consiste à classifier les pixels d'une image en deux grandes catégories, ceux qui satisfont à une condition et les autres. Le résultat de cette opération est une image binaire (noire et blanche par exemple).

Question 1. Ecrivez un filtre binaire dont le critère de seuillage est la comparaison par rapport à une couleur seuil. Cette opération de comparaison renvoie vrai si les 3 composantes RVB sont strictement supérieures aux composantes correspondantes dans la couleur seuil et faux dans le cas contraire.

Question 2. Appliquez ce filtre aux images extraites de votre flux vidéo. Faites en sorte que le film soit affiché à la vitesse correcte.

Question 3. Ecrivez une fonction luminance prenant en entrée la couleur d'un pixel et renvoyant la luminance de ce pixel. Servez vous de cette fonction pour afficher vos images en niveaux de gris.

Question 4. Ecrivez un filtre binaire dont le seuil sera une luminance. Appliquez ce filtre à votre vidéo.

Histogrammes

L'histogramme d'une image exprime le nombre de pixels d'une image qui partagent une caractéristique commune. On peut par exemple calculer l'histogramme des valeurs de rouges dans une image. Cet histogramme représente donc en fait le spectre du rouge dans l'image. Ces valeurs étant comprises entre 0 et 255, il suffit d'utiliser l'algorithme suivant:

Soit H_rouge un tableau de 256 entiers.
Soit I une image RGB.

Initialiser toutes les cases de H_rouge à 0.
Pour Chaque pixel p de l'image I, faire
	Soit r la valeur de la composante rouge de p
	Ajouter 1 à la case du tableau H_rouge d'indice r

Question 1. Ecrivez les fonctions de calcul de l'histogramme d'une image pour les valeurs suivantes: rouge, vert, bleu, luminance.

Question 2. Appliquez ces fonctions à votre vidéo et superposez leurs résultats à l'image.

Filtrage spectral

Question 1. En utilisant la notion de filtrage spectrale vue en cours, écrivez une fonction permettant de changer la teinte d'une image. Appliquez cette méthode à votre vidéo.

Question 2. Une partie des calculs utilisés dans la question précédente peuvent être précalculées et stockées dans un tableau. Modifiez votre fonction de façon à tester l'impact sur les performances de cette tabulation.

Détection de contours par convolution

Une méthode pour détecter les contours dans une image consiste à calculer la dérivée seconde du signal image en chaque pixel et à chercher les endroits où cette dérivée s'annule. A ces endroits on peut généralement considérer qu'on a trouvé un contour (aux signaux parasites et aux faux-positifs prêts :p ).

Question 1. Implémentez le calcul du laplacien d'une image en niveaux de gris par convolution.

Question 2. Seuillez l'image obtenue à la question 1 pour obtenir une image des contours.