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