TP images fixes n˚1 : utilisation basique de la librairie d`acc`es aux

Transcription

TP images fixes n˚1 : utilisation basique de la librairie d`acc`es aux
TP images fixes n˚1 : utilisation basique de la librairie d’accès aux images fixes.
Important :
– Afin de démontrer l’interopérabilité du logiciel, ce TP requiert une machine équipée de Windows XP ainsi
qu’une machine Linux.
– Il n’est pas nécessaire de disposer des droits d’administration des machines pour réaliser ce TP.
– Un éditeur de texte permettant une sauvegarde des fichiers au format unix doit être installé sur les
machines.
– Le navigateur firefox ainsi que le plugin VLC doivent être installés sur la machine windows.
À l’IRISA, ce TP est réalisé en salle Noirmoutier au sein de laquelle les machines sont installées avec un
OS windows XP SP2. Nous utiliserons sabre comme machine Linux via une connexion utilisant X-Win32 (un
simple terminal suffit). Sous linux, nous utiliserons ”kate” pour éditer les codes sources, et sous windows nous
utiliserons ”Xemacs” pour modifier les fichiers de configuration du serveur. Les images peuvent quant à elles
être visualisées via photoshop et les vidéos peuvent être lues avec VLC.
Exercice 1 Télécharger une image
Dans ce premier exercice, nous proposons de télécharger une image, puis de la sauvegarder dans un fichier
au format PGM (en niveaux de gris). La fonction de sauvegarde de l’image est partiellement fournie.
1. Lancez un serveur DiVATex sur votre machine Windows en ouvrant le port de votre choix (vous pouvez
directement utiliser mediatex1 sur le port 75).
2. Si nécessaire, téléchargez les sources du module DiVATex-TPPicture1-Ex1 depuis le homedir /udd/
texmex/logiciels/divatex-0.2.0, puis installez les dans le répertoire ”DiVATex” de votre homedir.
Bien entendu, la librairie cliente doit être préalablement installée dans ce même répertoire (voir TP
serveurs 1).
3. En utilisant la fonction getPictureAt (voir le fichier pictureExtract.h disponible dans le sousrépertoire IntegrationTools/include/ de DiVATex client), modifiez le fichier
DiVATex-TPPicture1-Ex1.cpp afin qu’il puisse accéder à votre serveur et télécharger une seule image
au format RGB ou YUV. Une fonction de sauvegarde de cette image au format pgm (en niveaux de
gris non compressée) est à compléter.
Notons que la conversion d’un format RGB en niveaux de gris peut être réalisée en utilisant la formule
ci-dessous :
Y = 0, 299 ∗ R + 0, 587 ∗ G + 0, 114 ∗ B
(1)
Notons également qu’un fichier PGM est codé en ASCII, il est composé de commentaires en en-tête
(précédés par la caractère ’#’) suivis d’une ligne indiquant la hauteur et la largeur de l’image, puis
une ligne indiquant le monbre de nuveaux de gris composant l’image (255).
Chaque ligne de l’image est représentée par une ligne dans le fichier, chaque pixel est associé à une
valeur comprise entre 0 et 255, deux pixels sont séparés par un espace.
4. Après avoir observé l’architecture du fichier makefile, compilez et exécutez votre programme afin qu’il
télécharge l’image de votre choix depuis votre serveur (ou depuis mediatex1).
1
Arnaud Dupuis
Exercice 2 Télécharger une séquence d’images
Cet exercice est très proche du précédant, la différence se situant essentiellement dans la fonction principale qui utilisera un système d’itérateurs pour télécharger une succession d’images. Dans cet exercice, la
fonction de sauvegarde des fichiers PGM est fournie.
1. Si nécessaire lancez un serveur DiVATex sur une machine en ouvrant le port de votre choix.
2. Si nécessaire, téléchargez les sources du module DiVATex-TPPicture1-Ex2 depuis le homedir /udd/
texmex/logiciels/divatex-0.2.0, puis installez les dans le répertoire ”DiVATex” de votre homedir.
3. En utilisant les fonctions d’itérations (voir les prototypes dans le fichier videoFrameExtract.h et la
documentation utilisateur), modifiez le fichier DiVATex-TPPicture1-Ex2.cpp afin qu’il puisse accéder
à votre serveur et télécharger une séquence image au format RGB ou YUV.
4. Compilez et exécutez votre programme afin qu’il télécharge les images de votre choix depuis votre
serveur (ou depuis mediatex1).
2
Arnaud Dupuis