Le programme

L'interface se veut conviviale au possible, en respectant au maximum les attraits de conception étudiés lors du cours d'interface Homme-Machine. Les différentes commandes sont accessibles au travers d'un menu et des icônes, des ascenseurs permettent d'accéder à toutes les parties de l'image, et la barre centrale qui sépare l'image d'origine de celle compressée donne la possibilité de n'afficher que l'une d'entre elles.

Figure 5.1: Fraclab: interface du programme
\begin{figure}
\centering
\epsfig{file=F001.eps,scale=0.9}
\end{figure}

L'interface est réalisé en langage C++ à l'aide de la boite d'outils FOX Toolkit.Cet ensemble de librairie très bien conçue permet d'avoir un code parfaitement portable, aussi bien sur les systèmes d'exploitations de Microsoft, que sur les OS Linux ou Macintosh. Seule la librairie Fox est à recompiler en fonction du système.

Figure 5.2: Fox: la librairie de traitement d'images
\begin{figure}
\centering
\epsfig{file=Fox.eps,scale=0.3}
\end{figure}

La programmation à l'aide de FOX consiste à utiliser un ensemble de classes prédéfinies. La documentation fournie sur leur site internet est très complète, et la prise en main de l'outil ne demande pas plus de quelques heures, pour peu que le concepteur ait un minimum d'expérience en programmation orientée objets.

Figure 5.3: Fraclab: splash de chargement du programme
\includegraphics[width=0.60\textwidth]{Fraclab.eps}

L'ensemble du code source concernant l'interface est contenu dans le fichier FracLab.cpp. Les prototypes des fonctions et les définitions de classes en interaction avec la fox sont dans FracLab.h. Ce découpage permet de ne rien changer aux fonctions C définies pour la compression fractale si l'interface doit évoluer dans le temps. Deux concepteurs peuvent ainsi parfaitement travailler indépendament l'un de l'autre sur le projet sans jamais se gêner. Cela implique cependant l'obligation de choisir l'extention .CPP aux fichiers contenant le corps du programme en C, puisque certains appels des objets de l'interface ont lieu dans les fonctions de compression (c'est notamment le cas lors de l'incrémentation de la barre de progression.

Nous avons de plus découpé au maximum le programme C en fonctions pour que le code puisse être repris aisément. Le programme se trouve ainsi enrichi de pas moins de 91 fonctions pour les compressions fractales, et de 21 fonctions pour la partie interface, auxquelles il faut ajouter les 9 enregistrements nécessaires à la représentation des différents types.

Figure 5.4: Fraclab: Partitionnement de Delaunay sur 50 points
\begin{figure}
\centering
\epsfig{file=LenaP.eps,scale=0.9}
\end{figure}

julien michot 2006-08-13