Programmation en C++ des détecteurs par dérivation

On a réalisé un programme orienté objet permettant d'appliquer à une image au format tga24 bits non compressé, les opérateurs de type gradient. Chaque filtre dispose de deux matrices correspondant a Gx et Gy. Différentes options permettent de changer le gain, les modes de représentation, en particulier la norme choisie.

La principale contrainte vient du fait que les valeurs obtenus après application de l'opérateur doivent être comprises entre 0 et 255 pour pouvoir être visualisées à travers une image tga 24 bits (8bits pour chaque composante R,V,B), d'où la nécessité du réglage du gain. Dans les exemples utilisés ici, on a utilisé un gain de 0.5 pour Prewitt et Sobel, et 2.0 pour Roberts, pour compenser la différence de dynamique des images obtenues.

Le programme travaille sur des images en couleurs en appliquant les opérateurs sur les trois composantes de manière indépendante. Ceci permet d'obtenir des effets esthétiquement intéressants.

Les effets de bords sont pris en compte en mettant des zéros en dehors de l'image ce qui peut créer des contours artificiels sur le bord de l'image. Une autre méthode aurait consisté en la symétrisation de l'image ce qui permet d'éviter ce genre de problème.