On se propose de développer une gui permettant
de visualiser et de traiter des images de formats standards (bmp,png,gif,jpeg...).
Cette interface a été codée en C++ avec l'utilisation de la
librairie QT. Le traitement d'images consiste d'abord à atténuer le bruit et détecter les gradients
horizontaux, verticaux et les contours. Toute cette chaîne de calcul s'appelle le "Canny edge detector".
Par la suite, nous présenterons une évolution de cette application pour le
traitement d'un flux vidéo (via une webcam) avec
la librairie OpenCV.
L'application "Image_Viewer" est téléchargeable ici :
Elle a été compilée sous Debian Squeeze 6.0 . Il est nécessaire d'avoir
les librairies QT4. Une fois l'exécutable lancé, nous commencons par
charger une image (la célèbre "lena.gif"). Voici le résultat sur
l'image suivante :
Avant la détection des gradients et des contours par les opérateurs de
Sobel, il faut d'abord mettre en place une procédure de filtrage par convolution
gaussienne avec un masque "flou" (cf "Canny edge detector") de taille "5x5" qui permet d'atténuer les disparités
présentes sur l'image et ainsi réduire le bruit. On obtient alors l'image
suivante :
Nous implémentons à ce stade la détection de contours par les
opérateurs de Sobel.
Voici l'image produite :
L'évolution naturelle est d'appliquer tout ce traitement non plus à
des images mais à un flux vidéo. On utilise pour cela la librairie OpenCV.
L'application "Canny_Streaming" est téléchargeable ici :