NUMÉRISATION INTERACTIVE DE PARTITIONS

Dimension: px
Commencer à balayer dès la page:

Download "NUMÉRISATION INTERACTIVE DE PARTITIONS"

Transcription

1 NUMÉRISATION INTERACTIVE DE PARTITIONS Godefroid Robin 3 ème Génie électrique Robin.Godefroid@Gmail.com Paulus Warren 3 ème Génie électrique Warren.Paulus@Gmail.com RÉSUMÉ Le projet, présenté dans ce document, propose une méthode répondant à plusieurs critères facilitant la numérisation d ouvrages musicaux. Celle-ci est, par l utilisation d une simple caméra, bon marché, peu encombrante et peut s adapter à différents formats de livre. Après la numérisation, un traitement d image automatique permet d une part de recadrer les images (séparation des pages, correction de l inclinaison,...), d autre part de corriger l erreur géométrique ( distorsion ) induite principalement par la reliure des livres. Toutes les images, remises en forme, sont enregistrées dans un fichier au format PDF. Par la suite, une détection des différents éléments présents dans les partitions numérisées (notes, temps, mesures,...) servira à mettre en œuvre des applications pédagogiques (synchronisation avec une piste audio, reconnaissance des notes montrées par l utilisateur,...). Tous ces traitements seront, enfin, intégrés dans une interface graphique pour faciliter l utilisation de l application. Mots-clés Partitions musicales Numérisation Traitement d images Vision par ordinateur Corrections d images Recadrage Interactivités OpenCV C++ 1. INTRODUCTION A l heure actuelle, la numérisation des livres prend de plus en plus d ampleur (notamment au sein des bibliothèques et des salles d archives). Cependant, cette numérisation peut être fastidieuse (ouvrir le scanner, poser le livre, fermer le scanner, lancer la numérisation, ouvrir le scanner, tourner la page du livre,...) et le contact avec les scanners classiques peut également endommager les livres (pression exercée lors de la fermeture). En outre, ce type de numérisation ne s adapte pas au format du livre. Un traitement postérieur est donc souvent nécessaire lorsque l on veut recadrer les images numérisées. Il existe déjà sur le marché des scanners qui permettent une numérisation propre et automatique (numérisation du livre, séparation et recadrage des pages,...) mais ils sont souvent encombrants et coûteux (les scanners Zeutschel pèsent plusieurs kilos et coûtent jusqu à e 1 ). 1. http :// Notre étude se focalise principalement sur la numérisation de partitions musicales. Celles-ci ne sont pas toujours évidentes à trouver et les recueils peuvent coûter plus d une trentaine d euros alors que seules quelques partitions nous intéressent. Les numériser, avec les avantages discutés ci-dessus, et les proposer sur Internet permettraient aux musiciens de faciliter leur recherche. 2. CAHIER DES CHARGES Le projet s effectue en deux étapes : 1. Numérisation d une partition par l intermédiaire d une caméra : Recadrage de l image. Correction géométrique de l image numérisée. 2. Interactivités avec l être humain pour des applications pédagogiques telles que : Synchroniser la lecture de la partition avec l instrument afin de pouvoir écouter la partition (défilement d un curseur). Reconnaître une note montrée sur la partition, par une personne, et pouvoir en ressortir le son. Corriger une partition (vérifier que la mesure comporte un nombre correct de notes) OpenCV 3. OUTILS UTILISÉS Le traitement d images est un domaine assez complexe d un point de vue mathématique. OpenCV est une librairie open source de traitements d images, développée par Intel, qui implémente directement les principaux algorithmes et simplifie donc fortement la programmation. Cette librairie est simple d utilisation et on trouve beaucoup de documentations à son sujet VideoInput La librairie videoinput est utilisée pour capturer les images avec une résolution voulue (nous ne sommes pas parvenus à obtenir une résolution différente de 640*480 avec OpenCV). Elle est conçue pour fonctionner avec OpenCV.

2 3.3. Qt Qt est un framework multiplateforme orienté objet, développé par Nokia pour la création d interfaces graphiques. Nous l utilisons car il est très répandu et dispose donc de beaucoup de documentations. Qt est utilisé par de nombreuses entreprises telles que : Adobe. Google. Boeing. Qt nous permet de remplacer l interface DOS par une interface graphique utilisable avec la bibliothèque OpenCV (les Windows Forms sont difficilement compatibles avec cette dernière). caméra. En outre, si l utilisateur utilise non pas un livre, mais des partitions volantes, elles pourraient toutes avoir une orientation différente. Afin d obtenir un fichier numérisé final le plus propre possible, il est intéressant de pouvoir recadrer toutes les images pour que celles-ci apparaissent droites lors de sa lecture. Ce principe est présenté à la figure FmodEx En ce qui concerne la gestion des fichiers audio, nous avons opté pour la librairie FmodEx. Cette bibliothèque est multiplateforme et est notamment utilisée dans les jeux vidéo (Crysis 2, Mafia 2, Bioshock 2,...). Elle a été implémentée pour fonctionner sur des systèmes tels que : Windows. Linux. Mac. Cette bibliothèque va nous permettre de pouvoir gérer une interactivité entre une musique et sa partition Visual Studio La programmation du projet est réalisée par l intermédiaire de la version express (gratuite) de Visual Studio C++. Figure 2. Principe du recadrage de l image Une partition musicale étant principalement composée de lignes horizontales (les portées 2 ), une des techniques mise en œuvre consiste à déterminer le coefficient angulaire ( angle de rotation de la page) des portées. Pour se faire, nos recherches nous ont amenés à la transformée de Hough Logitech HD Webcam C Présentation de la transformée de Hough Dans la transformée de Hough, chaque ligne est un vecteur de coordonnées paramétriques : θ : l angle. ρ : la norme du vecteur (la longueur du segment perpendiculaire à la droite d angle θ et passant par l origine). Figure 1. Logitech HD Webcam C270 Caméra mise à notre disposition pour numériser les images. Sa résolution maximum est de 1280*960. Nous verrons par la suite (section 6) que cette résolution n est pas suffisante pour la seconde partie du projet. 4. RECADRAGE DE L IMAGE Lors de la numérisation, il est possible que l utilisateur ne positionne pas le livre parfaitement droit sous la En transformant toutes lignes possibles qui passent par un point, c est-à-dire en calculant la valeur de ρ pour chaque θ, une sinusoïde unique, appelée espace de Hough, est obtenue. Si les courbes associées à deux points se coupent, l endroit où elles se coupent dans l espace de Hough correspond aux paramètres d une droite qui relie ces deux points Ensemble de lignes horizontales (généralement au nombre de 5) permettant de représenter la hauteur ( fréquence) des notes. 3. http ://fr.wikipedia.org/wiki/transform%c3%a9e_de_hough

3 4.2. Mise en application de la transformée de Hough En partant de l image suivante : (a) Image Originale (b) Espace de Hough Figure 3. Représentation de la transformée de Hough 3 La transformée de Hough est donc un algorithme qui permet de retrouver, entre autres, des lignes dans une image. Cet algorithme est directement implémenté dans OpenCV par l intermédiaire de la fonction cvhough- Lines2 4. La méthode utilisée (CV_HOUGH_PROBABILISTIC) renvoie, pour chaque ligne, le pixel de début (de plus petite abscisse), pixel 1, et le pixel de fin (de plus grande abscisse), pixel 2. Avec ces coordonnées nous pouvons déterminer le coefficient angulaire, m, de la droite : ( ) y1 y 2 m = arctan (1) x 2 x 1 Un coefficient angulaire positif entraîne une rotation de la page dans le sens horaire. Sous OpenCV, une telle rotation s effectue avec un angle négatif. La formule (1) peut donc être réécrite de façon à obtenir directement l angle de rotation de la page : ( ) y1 y 2 Angle = arctan (2) x 1 x 2 Une deuxième technique, utilisant le même algorithme, consiste à déterminer l orientation du centre du livre. Cette méthode à l avantage d être indépendante du contenu et peut donc être applicable pour tout ouvrage. Avec cette technique, l angle de rotation de la page est donné par la formule suivante : ( ) x2 x 1 Angle = arctan (3) y 1 y 2 Figure 4. Image d origine Appliquons la transformée de Hough : Figure 5. Transformée de Hough sur l image source Lignes rouges : lignes correspondant aux portées centrales (utilisées pour calculer l angle de rotation). Lignes bleues : lignes correspondant, principalement, aux bords horizontaux du livre. Lignes vertes : lignes correspondant aux bords verticaux et au centre du livre (pouvant également servir à calculer l angle de rotation de la page). Rotation de l image et séparation des 2 pages : (a) Page gauche (b) Page droite 4. Pour plus d informations, consulter la documentation d OpenCV [1]. Figure 6. Recadrage des 2 pages

4 Il ne nous reste plus qu à enregistrer les 2 pages dans un fichier PDF via la librairie libharu : 5.1. Warping Le warping est un procédé qui permet la modification, par étirement, d une image. Une page a comme principale propriété géométrique d être rectangulaire. Or, comme le montre la figure 9, les irrégularités, provoquées par la reliure du livre, ont tendance à distordre cet aspect rectangulaire et à donner un aspect visuel ondulé (surtout visible sur les bords horizontaux). L algorithme utilisé va donc étirer l image, vers le haut ou vers le bas, afin de rendre à la page son aspect rectangulaire Warping et OpenCV Figure 7. Fichier PDF final 5. CORRECTION GÉOMÉTRIQUE DE L IMAGE Un livre ouvert présente, en général, un certain relief dû à la reliure des pages. Ce relief a tendance à bomber les pages vers le centre du livre. Ce phénomène est illustré à la figure suivante : La fonction cvgetperspectivetransform 4 est utilisée pour obtenir une matrice de transformation à partir des coordonnées de 4 points sources et des 4 coordonnées de destinations désirées. Ensuite, la fonction cvwarpperspective 4, consiste à transformer, via la matrice obtenue précédemment, toute l image afin de positionner les 4 points sources aux coordonnées des 4 points de destination. Dans notre application, nous segmentons l image (utilisation de zones d intérêts) en une série de petits rectangles et nous appliquons la transformation voulue sur chaque segment indépendamment des autres. Chaque transformation consiste à repositionner les pixels des bords horizontaux qui ont une ordonnée différente par rapport à une référence arbitraire fixée. Le principe, appliqué sur une zone d intérêt, est illustré à la figure 10. Figure 8. Relief d un livre D une manière plus générale, une page peut onduler sur toute sa surface et contenir diverses irrégularités géométriques. Le deuxième traitement de notre application consiste à corriger ces irrégularités. Figure 10. Principe de notre algorithme Figure 9. Correction des irrégularités d une page Pour réaliser cette opération, nous utilisons la technique du warping.

5 5.3. Mise en application En partant de l image suivante : pour la détection de formes, même si la dimension de la forme change. Points d intérêts : Méthode permettant la détection de formes par comparaison des points d intérêts (détection de points de discontinuité). Détection de contours : Méthode de reconnaissance d une forme via la détermination préalable de son contour. Figure 11. Image d origine Appliquons notre algorithme de segmentation ainsi que le warping : Dans un premier temps, nous nous sommes orientés vers la détection par points d intérêts. En effet, le haartraining est une méthode assez compliquée à mettre en œuvre pour les non initiés dans le domaine du traitement d images. Elle à donc été mise de côté pour l instant. Bien que la détection par points d intérêts donne de bons résultats, elle n est cependant pas suffisamment fiable, certains points d intérêts pouvant fausser les résultats. Nous nous sommes alors dirigés vers la méthode CvFindContours 4 implémentée dans la librairie OpenCV. Celle-ci permet de récupérer le contour d une forme et de fournir, par la même occasion, l ensemble des points qui déterminent ce contour (ce qui évite de récupérer des points parasites qui fausseraient notre algorithme). Notre programme permet la détection des notes par l utilisateur, il suffit que ce dernier clique en-dessous d une note pour connaître les informations la concernant. Ceci nous permettra, dans le futur, de pouvoir déterminer une note qui est montrée du doigt. Cette méthode permet de : Reconnaître les notes principales. Figure 12. Résultat 6. INTERACTIVITÉS Figure 13. Notes principales Détecter les notes blanches et noires. La détection des notes est très complexe à mettre en œuvre. Dans un premier temps, il faut une acquisition d image très précise niveau qualité, ce que la caméra utilisée (section 3.6) actuellement ne fournit pas. Pour la détection des notes proprement dites, nous avons trouvé plusieurs méthodes différentes : Matchtemplate : Méthode conçue pour la détection de formes mais seulement si leur dimension ne change pas. Nous avons abandonné cette solution parce que les dimensions des notes peuvent être différentes d un bouquin à un autre. (a) Noire (b) Blanche Figure 14. Noire et blanche Haartraining : Méthode créée en premier lieu pour la détection de visages. Elle peut également s utiliser

6 Détecter les notes pointées. intéressant d adapter les différents algorithmes de correction pour les utiliser via les smarthpone. L utilisateur pourrait ainsi numériser directement, à l aide de la caméra de ces téléphones, les livres au format e-book. 8. RÉFÉRENCES Figure 15. Note pointée Détecter les portées avec le filtre de Sobel. Détecter les croches. Figure 16. Filtre de Sobel Figure 17. Croche 7. CONCLUSION Durant cette première année de recherches nous avons mis au point les algorithmes de remise en forme (correction géométrique et recadrage de l image). Ceux-ci nécessitent encore quelques améliorations pour pouvoir être utilisés dans différentes conditions d utilisation et dépendre le moins possible de l environnement (comme l éclairage). Les recherches concernant l algorithme de corrections géométriques doivent se poursuivre afin d améliorer la qualité de l image résultante (l utilisation d une caméra avec une plus grande résolution devrait permettre d obtenir un meilleur résultat). Les différents résultats ont été obtenus avec l utilisation d une simple webcam (cf. section 3.6). Le coût total de l application, si un ordinateur est déjà à disposition, pourra donc se limiter au prix de la caméra (30 e dans notre cas). Durant la prochaine année d étude nous espérons avancer suffisamment dans la détection des différents éléments présents dans la partition (notes, temps, mesures,...) pour commencer le développement d applications proposant une interactivité avec l utilisateur. Il peut être également [1] Bradski G., et Kaehler A. Learning OpenCV. O REILLY, Sebastopol, 2008, 555p. [2] Calmettes A. Vision par ordinateur [ en ligne ]. Disponible sur : <http :// vision-par-ordinateur.html> (consulté le premier quadrimestre 2011). [3] Chabot G., et Giroud B. Traitement d images avec OpenCV. Rapport de projet, Spécialité Informatique, Caen : ENSICAEN, , 22p. [4] Kanno T., et Dovgal A. libharu.org wiki [ en ligne ]. Disponible sur : <http ://libharu.org/wiki/main_page> (consulté en avril 2011). [5] Nebra M. Apprenez à programmer en C++ [ en ligne ]. Disponible sur : <http :// apprenez-a-programmer-en-c.html> (consulté le premier quadrimestre 2011). [6] Nokia. Qt - un framework d applications et d interface multiplate-forme [ en ligne ]. Disponible sur : <http ://qt.nokia.com/titlefr?set_language=fr&cl=fr> (consulté en avril 2011) [7]. Sonka M., Hlavac V., et Boyle R. Image Processing, Analysis, and Machine Vision. PWS, USA, 1998, 800p. [8] Watson T. VideoInput Library [ en ligne ]. Disponible sur : <http ://muonics.net/school/spring05/videoinput/> (consulté en avril 2011). [9] OpenCV Wiki [ en ligne ]. Disponible sur : <http ://opencv.willowgarage.com/wiki/> (consulté le premier quadrimestre 2011). [10] CMake - Cross Platform Make [ en ligne ]. Disponible sur : <http :// (consulté en février 2011). [11] FmodEx - interactive audio middleware [ en ligne ]. Disponible sur : <http :// (consulté en avril 2011).

7 Annexes

8 /* * Institut Supérieur Industriel de Bruxelles * Année académique * Bureau d'étude * Numérisation Interactive de Partitions * Utilisation de la transformée de Hough * Godefroid Robin * Paulus Warren */ #include <cv.h> #include <highgui.h> int main(int argc, char** argv) IplImage *org(cvloadimage("image.jpg")); IplImage *orgnvg(cvcreateimage(cvgetsize(org),8,1));//=origine en niveau de gris IplImage *orgthr(cvcreateimage( cvgetsize(orgnvg), orgnvg->depth, 1 )); IplImage *color_dst(cvcreateimage( cvgetsize(orgnvg), orgnvg->depth, 3 )); //image couleur (pour afficher les lignes) CvMemStorage *storage(cvcreatememstorage(0)); CvSeq *lines(0); int flip(0); /* origin (0,0) = top/left */ if(org->origin!=ipl_origin_tl) flip=cv_cvtimg_flip; cvconvertimage(org,org,flip); /*Convert color to gray*/ cvconvertimage(org, orgnvg); /*Binary*/ cvadaptivethreshold(orgnvg, orgthr, 255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY_INV, 75, 15); /*Hough image*/ cvcvtcolor(orgthr, color_dst, CV_GRAY2BGR); /*Hough*/ lines = cvhoughlines2( orgthr, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/360, 80, 50, 10 ); for(int i(0); i < MIN(lines->total,1000); i++) CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); cvline(color_dst, line[0], line[1], CV_RGB(0,255,0), 1, CV_AA); //green lines /*Show result*/ cvnamedwindow("hough",2); cvshowimage("hough",color_dst); cvnamedwindow("origine",2); cvshowimage("origine",org); cvwaitkey(0); /*Release memory*/ cvdestroyallwindows(); cvreleaseimage(&org); cvreleaseimage(&orgnvg); cvreleaseimage(&orgthr); cvreleaseimage(&color_dst); cvreleasememstorage(&storage); return 0;

9 /* * Institut Supérieur Industriel de Bruxelles * Année académique * Bureau d'étude * Numérisation Interactive de Partitions * Utilisation des transformations de perspective (warp) * Source : Learning OpenCV * Godefroid Robin * Paulus Warren */ #include <cv.h> #include <highgui.h> int main(int argc, char** argv) CvPoint2D32f srcquad[4], dstquad[4]; CvMat* warp_matrix(cvcreatemat(3,3,cv_32fc1)); IplImage *src(cvloadimage("image.jpg"), *dst(cvcloneimage(src)); dst->origin = src->origin; cvzero(dst); srcquad[0].x = 0; //src Top left srcquad[0].y = 0; srcquad[1].x = src->width - 1; //src Top right srcquad[1].y = 0; srcquad[2].x = 0; //src Bottom left srcquad[2].y = src->height - 1; srcquad[3].x = src->width - 1; //src Bot right srcquad[3].y = src->height - 1; dstquad[0].x = src->width*0.05; //dst Top left dstquad[0].y = src->height*0.33; dstquad[1].x = src->width*0.9; //dst Top right dstquad[1].y = src->height*0.25; dstquad[2].x = src->width*0.2; //dst Bottom left dstquad[2].y = src->height*0.7; dstquad[3].x = src->width*0.8; //dst Bot right dstquad[3].y = src->height*0.9; cvgetperspectivetransform(srcquad,dstquad,warp_matrix); cvwarpperspective( src, dst, warp_matrix ); cvnamedwindow( "Perspective_Warp", 1 ); cvshowimage( "Perspective_Warp", dst ); cvwaitkey(); cvdestroyallwindows(); cvreleaseimage(&src): cvreleaseimage(&dst); cvreleasemat(&warp_matrix); return 0;

10 /* * Institut Supérieur Industriel de Bruxelles * Année académique * Bureau d'étude * Numérisation Interactive de Partitions * Video Input * Source : VideoInput examples * Godefroid Robin * Paulus Warren */ #include <cv.h> #include <highgui.h> #include <videoinput.h> // video input library include file #define device 0 int main() videoinput * vi = new videoinput(); vi->setupdevice(device,1280,960); // select device and resolution static char * windowname = "videoinput Library Video Example"; // if all is OK with device if(vi->isdevicesetup(device)) cvnamedwindow(windowname, 1); IplImage* img = cvcreateimage(cvsize(vi->getwidth(device), vi->getheight(device)),8, 3); //loop forever (or until we press x to break the loop) while(1) // if we have a new frame on the camera buffer if(vi->isframenew(device)) // get the pixels from the image to the imagedata of the OpenCV // BGR order, flipped (=> do not requrie flipping or origin fixes) vi->getpixels(device,(unsigned char*) img->imagedata,false,true); // display the image in an OpenCV window cvshowimage(windowname,img); char key = cvwaitkey(1); // wait only for 1ms because we will // only refresh when we have a new frame // if the user presses x then break the loop and exit if(key == 'x') break; cvreleaseimage( &img ); // stop the video device vi->stopdevice(device); return 0;

11 /* * Institut Supérieur Industriel de Bruxelles * Année académique * Bureau d'étude * Numérisation Interactive de Partitions * Utilisation de la LibHaru (PDF) * Godefroid Robin * Paulus Warren */ #include <iostream> #include <hpdf.h> #include <windows.h> void error_handler(hpdf_status error_no, HPDF_STATUS detail_no, void *user_data) std::cout<<"error: error_no="<<error_no<<", detail_no="<<detail_no<<std::endl; int main (int argc, char **argv) HPDF_Doc pdf; HPDF_Page page; HPDF_Image image; HPDF_REAL iw(0),ih(0),x(0),y(0); const char* fname("result.pdf"); pdf = HPDF_New((HPDF_Error_Handler)error_handler,NULL); if (!pdf) std::cout<<"error: cannot create PdfDoc object"<<std::endl; return 1; //HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL); HPDF_SetCompressionMode(pdf,HPDF_COMP_NONE); /* add a new page object. */ page = HPDF_AddPage (pdf); /* load image file. */ image = HPDF_LoadJpegImageFromFile (pdf, "image.jpg"); iw = (HPDF_REAL)HPDF_Image_GetWidth(image); ih = (HPDF_REAL)HPDF_Image_GetHeight (image); HPDF_Page_SetWidth (page, iw); HPDF_Page_SetHeight (page, ih); /* Draw image to the canvas. */ HPDF_Page_DrawImage (page, image, x, y, iw, ih); //HPDF_Page_GSave (page); HPDF_SaveToFile (pdf, fname); /* clean up */ HPDF_Free (pdf); //open document ShellExecuteA(NULL,"open",fname,0,0,SW_NORMAL); return 0;

12 /* * Institut Supérieur Industriel de Bruxelles * Année académique * Bureau d'étude * Numérisation Interactive de Partitions * Détection de contours * Source : Learning OpenCV * Godefroid Robin * Paulus Warren */ #include <cv.h> #include <highgui.h> int main(int argc, char* argv[]) cvnamedwindow( argv[0], 1 ); IplImage* img_8uc1 = cvloadimage( argv[1], CV_LOAD_IMAGE_GRAYSCALE ); IplImage* img_edge = cvcreateimage( cvgetsize(img_8uc1), 8, 1 ); IplImage* img_8uc3 = cvcreateimage( cvgetsize(img_8uc1), 8, 3 ); cvthreshold( img_8uc1, img_edge, 128, 255, CV_THRESH_BINARY ); CvMemStorage* storage = cvcreatememstorage(); CvSeq* first_contour = NULL; int Nc = cvfindcontours(img_edge,storage,&first_contour,sizeof(cvcontour), CV_RETR_LIST // Try all four values and see what happens ); int n=0; for( CvSeq* c=first_contour; c!=null; c=c->h_next ) cvcvtcolor( img_8uc1, img_8uc3, CV_GRAY2BGR ); cvdrawcontours(img_8uc3,c,cvx_red,cvx_blue,0, // Try different values of max_level, and see what happens 2,8); cvshowimage( argv[0], img_8uc3 ); cvwaitkey(0); n++; cvcvtcolor( img_8uc1, img_8uc3, CV_GRAY2BGR ); cvshowimage( argv[0], img_8uc3 ); cvwaitkey(0); cvdestroywindow( argv[0] ); cvreleaseimage( &img_8uc1 ); cvreleaseimage( &img_8uc3 ); cvreleaseimage( &img_edge ); return 0;

13 Installation d'opencv 2.2 et son utilisation avec Visual Studio 2010/2008

14 Voici un petit tutorial pour installer OpenCV 2.2 et ensuite l intégrer dans Visual Studio. Logiciels nécessaires à ce tutoriel : 1) OpenCV 2.2 Disponible ici : sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2 2) Cmake ; Disponible ici : cmake win32-x86.exe 3) Visual Studio 2008/2010 Installation des logiciels : 1) Installation d OpenCV ) Pour l installation de Cmake, il n y a rien de bien compliqué, il suffit de suivre les indications à l écran. Configurations des logiciels : Vous pouvez lancer Cmake, mais il faudra ajouter les répertoires : C:\OpenCV2.2 C:\OpenCV2.2\build dans browse source dans browse build Vérifier si les instructions en dessous de «Name» sont en rouge, si c est le cas c est que Visual Studio est lancé (par exemple). Si vous n avez aucune instruction en dessous de «Name», cliquez sur «Generate», choisir le compilateur, dans ce cas-ci «Visual Studio 10» car nous utilisons «Visual Studio 2010». Numérisation Interactive de Partitions 2 Version 1.0 du document

15 Il va falloir : - décocher BUILD_NEW_PYTHON_SUPPORT; - cocher BUILD_EXAMPLES, INSTALL_C_EXAMPLES, OPENCV_BUILD_3DPARTY_LIBS ; - et recliquer sur «Configure» et ensuite sur «Generate». Vous pouvez avoir un «Warning» pendant la «Génération» avec Cmake, celle-ci : CMake Warning (dev) at CMakeLists.txt:1250 (add_subdirectory): The source directory C:/OpenCV2.2/include does not contain a CMakeLists.txt file. Mais, ne vous occupez pas de cet avertissement. Dès que la «Génération» est terminée, vous pouvez quitter Cmake et ouvrir le fichier OpenCV.sln dans «c:\opencv2.2\build» avec Visual Studio. Cela prendra du temps. - Ensuite rechercher ALL_BUILD dans la fenêtre de droite, clic droit sur ALL_BUILD et ensuite «Générer». Faire la même manipulation mais ici en mode «Release». Remarque : Vous pouvez avoir des avertissements mais n en tenez pas compte. Quand c est fini, vous pouvez créer un projet C++ en mode console win32 avec Visual Studio (ce n est pas bien compliqué). Avec Visual Studio 2010, faire un clic droit sur votre Projet -> Propriétés. Une fenêtre s ouvre : Dans la partie Répertoires VC++, nous allons rajouter les éléments ci-dessous à chacun des deux répertoires : - «Répertoire Include» «C:\OpenCV2.2\include\opencv;C:\OpenCV2.2\include» - «Répertoire de bibliothèques» «C:\OpenCV2.2\lib» Numérisation Interactive de Partitions 3 Version 1.0 du document

16 Avec Visual Studio 2008, aller dans Outils -> Option -> Répertoire VC++ : Et, comme Visual Studio 2010, rajouter les mêmes éléments à chacun des deux répertoires. Même manipulation avec VS2008/2010 : faire un clic droit sur votre Projet -> Propriétés. Aller dans C/C++ -> Général : Rajouter «C:\OpenCV2.2\include\OpenCV» dans «Autres répertoires Include». Aller ensuite dans Editeur de liens -> Général : Rajouter «C:\OpenCV2.2\lib\release» dans «Répertoires de bibliothèques supplémentaires». Aller ensuite dans Editeur de liens -> entrée : Rajouter «C:\OpenCV2.2\lib\opencv_core220d.lib;C:\OpenCV2.2\lib\opencv_highgui220d.lib;C:\OpenCV2.2\lib\opencv_video220 d.lib;c:\opencv2.2\lib\opencv_ml220d.lib;c:\opencv2.2\lib\opencv_legacy220d.lib;c:\opencv2.2\lib\opencv_imgproc2 20d.lib» dans la partie «Dépendances supplémentaires». Remarque : Pour la version 2008, il faut faire ces modifications aussi en mode «Release». Cliquer sur «Appliquer» pour que les modifications effectuées soient prises en compte. Numérisation Interactive de Partitions 4 Version 1.0 du document

17 Puis, sur «OK» pour revenir à la fenêtre de travail. Maintenant, voyons si cela fonctionne. Placer l image de l ISIB dans le répertoire de votre projet. Dans votre programme en dessous de «#include "stdafx.h"», recopier ceci : #include cv.h #include highgui.h using namespace std; int main() IplImage *img=cvloadimage("isib.jpg", CV_LOAD_IMAGE_GRAYSCALE); if (!img) printf("erreur: On ne sait pas ouvrir le fichier.\n"); return 2;//erreur pas de fichier trouvé cvnamedwindow("projet NIP WP RG", CV_WINDOW_AUTOSIZE);// créer une fenetre IplImage *img2=cvcloneimage(img); //cloner img cvshowimage("projet NIP WP RG", img2); //afficher image fenetre cvwaitkey(0); //attendre touche cvdestroywindow("projet NIP WP RG"); //détruire la fenetre cvreleaseimage(&img); //memoire cvreleaseimage(&img2); //memoire return 0; //terminer avec succes Numérisation Interactive de Partitions 5 Version 1.0 du document

18 Voici le résultat final : Numérisation Interactive de Partitions 6 Version 1.0 du document

19 C++ - FmodEx avec Visual Studio /2011

20 Voici un tutorial sur l utilisation de FmodEx à l aide de Visual Studio Logiciels nécessaires : - Visual Studio 2010 Premium/Ultimate (par exemple) ; - et FmodEx version 32 bits! A l heure actuelle la version proposée par «Fmod» fonctionne avec Windows 32 bits, mais pas avec Windows 64 bits! 1) FmodEx Installation : - Rendez-vous sur le site de «Fmod» via le lien : - Installer la bibliothèque (ce n est pas compliqué). Dès que cela a été fait, lancer «Visual Studio». Configuration : Configurons un projet de type «Application console win32». On peut dès à présent créer notre application. Copier le fichier qui se trouve dans le répertoire d installation de «fmod» nommé «fmodex.dll» dans le même répertoire que notre fichier «.vcxproj». Modifier les propriétés de notre projet : clic droit sur notre projet et ensuite «Propriétés», puis «Répertoire VC++», modification de la partie : - «Répertoires Include» ; <Modifier >, ensuite rajouter le chemin vers le répertoire d installation de «Fmod», cliquer sur le symbole. Puis sur les et aller chercher ce répertoire. «C:\Program Files (x86)\fmod SoundSystem\FMOD Programmers API Win32\api\inc» - «Répertoire de bibliothèque» comme pour «Répertoires Include». «C:\Program Files (x86)\fmod SoundSystem\FMOD Programmers API Win32\lib» Cliquer sur «Editeurs de liens», «Entrée» : Modifier la partie «Dépendances supplémentaires» et rajouter «fmodex_vc.lib» : Numérisation Interactive de Partitions 2 Version 1.0 du document

21 Application : Pour trouver des exemples d applications, rendez-vous dans le répertoire de «Fmod» partie «examples». Mettons en œuvre une application qui va nous permettre de lire un fichier «.mp3». Nous nous sommes inspirés d un exemple sur lequel nous avons essayé quelques modifications. Notre programme permet de : - lire un fichier mp3 ; - mettre en pause ; - reprendre après la pause ; - avancer ou reculer ; - augmenter ou abaisser le son. Numérisation Interactive de Partitions 3 Version 1.0 du document

22 C++ - Interface Graphique avec Visual Studio /2011

23 Mise à jour 1.2 : Installation réussie avec Qt Ajout d éléments supplémentaires sur le fonctionnement de «QsplashScreen». - Ajout d éléments supplémentaires sur le fonctionnement de «QFtp». - Ajout d éléments supplémentaires sur «Qt Designer». Mise à jour 1.1 : - Ajout d éléments supplémentaires sur le fonctionnement de «Qt», «FmodEx», «OpenCv», «LibHaru» et «VideoInput» dans un projet «MakeFile» avec Visual Studio Application concernant QDebug dans un projet «MakeFile». - Utilisation de Qthread dans un projet. - Modification de la partie «Qt» - «Configuration de Visual Studio 2010» et «Layout». Numérisation Interactive de Partitions 2 Version 1.2 du document

24 Voici un tutorial sur la création d interfaces graphiques avec Visual Studio Logiciels nécessaires : - Visual Studio 2010 Premium/Ultimate (par exemple) ; - Qt ; 1) Application Windows Forms Le lecteur de ce document ne rencontrera aucun problème s il a déjà élaboré des interfaces graphiques avec Java. Par contre, les «Application Windows Forms» ne fonctionnent pas avec OpenCV. Nous avons donc dû constituer une bibliothèque graphique en visitant les sites ci-dessous : - Qt ; - Gtk ; - WxWidgets. Création d une application : - Créer un nouveau projet en allant dans «Fichier», «Nouveau», puis «Projet». - Aller dans «Visual C++», puis sélectionner : «Application Windows Forms». Choisir un nom pour le projet et cliquer sur «OK». - Une fenêtre va s ouvrir, ce sera la fenêtre de notre application. - On peut apercevra, en bas à droite, une zone appelée «Propriété» : elle permet de changer les propriétés de la fenêtre. Il est très facile d effectuer des essais pour comprendre les différentes fonctions disponibles. On peut changer le nom, la taille, de «Forms». - Si la «Boite à outils» n est pas disponible, aller dans «Affichage», «Boite à outils». Alors, on verra apparaitre tout ce qu il faut pour remplir «Forms». - Positionner un bouton dans «Forms». Dès que cela a été fait, il suffit de changer quelques paramètres. Changeons son Name afin de lui donner un nom qui va nous permettre de le reconnaître. Pour information : Il faut toujours nommer les boutons comme ceci : «B_Nom» ; c est aussi vrai pour les labels «L_Nom», etc - Voici ce que cela doit donner : Numérisation Interactive de Partitions 3 Version 1.2 du document

25 Mise en marche de la programmation : Afin de pouvoir programmer, il suffit d entrer dans le code en faisant un clic droit et ensuite de cliquer sur «Afficher le code». Code this->formborderstyle = System::Windows::Forms::FormBorderStyle::FixedDialog; this->text = "NIP"; this->startposition = FormStartPosition::CenterScreen; this->controlbox = false Infos ^inf = gcnew Infos(); inf->showdialog(); Explication Permet de changer les propriétés de la fenêtre afin de la fixer pour ne pas pouvoir la modifier Permet de donner un nom à la fenêtre Positionne la fenêtre au centre de l'écran Afin d'enlever l'agrandissement, le rétrécissement et la fermeture de la fenêtre On crée un nouvel objet de la fenêtre Infos Et on affiche cet objet donc la fenêtre Infos Pour information : Quand on veut afficher un «int» dans un label, ne jamais oublier la fonction «Convert :: ToString(votre int)». Voilà le type d erreur que l on a en rajoutant OpenCV à l application «Windows Form» : 2) Qt Télécharger Qt sur le site officiel « dans la partie «LPGL». Comme nous travaillons sous «Windows», nous allons télécharger la version «Qt libraries for Windows (VS 2008, 218 MB)» et l installer. Nous l avons installée dans le répertoire «C:\Qt\4.7.2». L installation a été réalisée aussi avec Qt Paramétrage de Qt avec Visual Studio 2010 : Sous Vista / 7. Aller dans Panneau de Configuration -> Système -> Paramètres système avancés -> onglet Paramètres système avancés. Cliquer sur Variables d'environnement. Sous XP Aller dans Panneau de configuration -> Système -> onglet Avancé. Cliquer sur Variables d'environnement. Dans la partie supérieure de la fenêtre, créons deux nouvelles variables. Cliquer sur Nouvelle... Dans Nom de la variable entrer : QMAKESPEC, et, dans Valeur de la variable, écrire : win32-msvc2010. Cette variable va indiquer à qmake quel compilateur utiliser, pour créer les bons makefile. Idem pour la deuxième variable qui a pour nom QTDIR et pour valeur le chemin d'installation de Qt. Par défaut, c'est Numérisation Interactive de Partitions 4 Version 1.2 du document

26 C:\Qt\ Cette variable est nécessaire au compilateur pour savoir où chercher les fichiers sources. A ce moment de notre démarche, on devrait avoir ceci : On va devoir ensuite modifier une autre variable : la variable «PATH» qui se trouve toujours dans la partie «Variable utilisateur». Et donc rajouter «;%QTDIR%\bin\» à la suite. Ceci pour pouvoir utiliser les différentes commandes de Qt (qmake, uic,...) en ligne de commande sans avoir à aller dans le dossier contenant les exécutables. Pour être sûr que ces modifications des variables d'environnement sont bien prises en compte, ouvrir la console de Windows (démarrer -> Accessoires -> Invite de commandes) et taper : echo %QTDIR% puis : echo %QMAKESPEC% et enfin : echo %path%. On devrait lire ce que nous avons entré précédemment. Si ce n'est pas le cas, redémarrez votre ordinateur et revérifier. Maintenant il va falloir lancer l invite de commande de Visual Studio 2010 qui ce se trouve dans «Tous les programmes» «Microsoft Visual Studio 2010» «Visual Studio Tools» et enfin «Invite de commandes de Visual Studio (2010)» que vous soyez en 64 bits ou en 32 bits! A l heure actuelle, il y a quelques soucis avec Visual Studio 2010 pour compiler QT en 64 bits. Voici l erreur que nous avons eue lorsqu on a voulu lancer le programme final sur Visual Studio : fatal error LNK1112: type d'ordinateur module 'x64' en conflit avec le type d'ordinateur cible 'X86' Voici la démarche à suivre : La première configuration sert à préparer le terrain à la compilation. Cette commande peut mettre de 10 à 30 minutes pour se terminer. C'est avec cette commande qu'on peut spécifier le compilateur à utiliser avec l'option -platform (nous l'avons fait avec la variable d'environnement QMAKESPEC, qui est utilisée par défaut) ainsi que le mode de compilation : en «debug» ou en «release». On a compilé en «debug». En effet, si on compile en release, on ne peut pas débugger notre programme... Numérisation Interactive de Partitions 5 Version 1.2 du document

27 En ce qui concerne la seconde congiguration, nmake lance la compilation proprement dite. Tous les fichiers sont ainsi compilés avec le compilateur de Visual Studio. C'est durant cette opération que qmake, Qt Designer et les autres logiciels habituellement fournis sont compilés. C'est la phase la plus longue : de 2 à 4 heures. Enfin, la dernière commande, nmake clean sert à supprimer tous les fichiers générés lors de la compilation, et il y en a un paquet : pas moins de 3 giga-octets! Elle dure environ 10 à 20 minutes. Cela peut prendre quelques heures sur certains ordinateurs moins performants. Cela a duré un peu moins de 6 heures avec un ordinateur portable muni d un processeur Dual Core 2,2Ghz Il se peut qu il y ait des warnings mais ce n est pas grave. Configuration de Visual Studio 2010 : Lancer un nouveau projet «Makefile» en C++. Cliquer sur «Suivant». Voici ce qu il faut faire : Dans «Ligne de commande Rebuild» et «Build», on a : «qmake -project & qmake & nmake». Ne pas oublier d écrire «Debug\» sinon il y aura une erreur lors du lancement de : Débogages. Pour information : On peut aussi écrire «qmake & nmake» dans la partie «Build» car si on doit modifier le fichier.pro pour rajouter des «Libs» externes par exemple, le programme va écraser le fichier.pro si on laisse «qmake project». Cliquer sur «Suivant». Voici ce qu il faut faire : Dans «Ligne de commande Rebuild» ne pas oublier d écrire «Release\». Cliquer sur «Terminer». Numérisation Interactive de Partitions 6 Version 1.2 du document

28 Configuration du Projet : Faire un clic droit sur Projet en mode Debug (pas Release), ensuite «Propriété», puis sur «Répertoires VC++», ensuite cliquer sur qui se trouve dans la partie «Répertoire d exécutable», puis «Modifier». Cette fenêtre va apparaitre : Rechercher le répertoire de «Qt» pour les éxécutables donc, le répertoire «bin» qui se trouve dans «C:\Qt\4.7.2\bin». Faire de même pour les autres Répertoires «d includes» (C:\Qt\4.7.2\include) et «bibliothèques» (C:\Qt\4.7.2\lib). Voilà le résultat : Ou bien utiliser la variable d environnement «$(QTDIR)» par exemple «$(QTDIR)\bin». Cliquer sur «Appliquer», puis sur «OK». Faire un clic droit sur «Fichiers sources», ensuite «Ajouter», puis «Nouvelle élément...» Créé un fichier.cpp Dès que cela a été fait, compléter par : #include <QtGui/qapplication.h> #include <QtGui/qpushButton.h> int main(int argc, char *argv[]) QApplication app(argc, argv); QPushButton bouton("isib!"); bouton.show(); QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit())); return app.exec(); Numérisation Interactive de Partitions 7 Version 1.2 du document

29 Attendre que l ordinateur finisse d analyser les «includes». On peut ensuite lancer l application en mode «Debug» en cliquant sur le bouton «play»! Petite parenthèse : si on rencontre le type d erreur suivante : il suffira de lancer le «Build» dans le mode «Debug», il va nous créer un fichier.pro. Ensuite en mode «Release» faire un «Build» de l application. Normalement, on doit lire que : «La génération a réussi», et on verra apparaître les fichiers : Repasser ensuite en mode «Debug» et lançons notre application avec l icône «play». Voici le résultat : Programmation avec Qt : Ligne de programmation QApplication app(argc, argv); QPushButton bouton("isib!"); bouton.show() QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit())); return app.exec(); Explication On crée un nouvel objet «app» de type QApplication. On a dû mettre «#include <QtGui/qapplication.h>» au début de notre programme. On crée un nouvel objet «bouton» de type QPushButton dont le texte qui sera affiché sur le bouton sera «ISIB!». On a dû mettre «#include <QtGui/qpushButton.h>» au début de notre programme Va permettre d afficher notre bouton avec la méthode show de l objet «bouton». Permet de quitter l application quand on clique sur l objet «bouton». Cette méthode statique admet plusieurs paramètres (pointeur vers l objet qui émet le signal, le type de signal à intercepter, pointeur vers l objet où se trouve le slot, le type de slot à actionner) Cette méthode exec de notre objet «app» permet de démarrer notre programme. Analysons notre objet «bouton» : Ligne de programmation Bouton.setText("Voila!"); bouton.settooltip("de l'aide"); Explication On peut changer le texte de notre objet «bouton». On peut mettre en œuvre une infobulle quand on a la souris sur l objet «bouton». QFont mapolice("courier"); bouton.setfont(mapolice); La première ligne va permettre de créer un objet «mapolice» de type QFont. La deuxième ligne permet de changer la police de notre texte de l objet «bouton» grâce à l objet «mapolice» de type QFont. Numérisation Interactive de Partitions 8 Version 1.2 du document

30 Si on examine plus en détail le constructeur QFont, on peut constater ceci : bouton.setcursor(qt::pointinghandcursor); bouton.seticon(qicon("smile.png")); On a donc affaire à 5 constructeurs donc une «surcharge» de constructeurs, afin de voir les différents paramètres de chaque constructeur, il suffit de cliquer sur les flèches. On peut changer la taille, mettre en italique Permet de changer le curseur quand on se positionne sur l objet «bouton». Cela permet d afficher des images sur votre objet «bouton», par exemple. On va enregistrer ce smiley et le nommer comme suit «smile.png», et le placer dans le répertoire où se trouve notre fichier.vcxproj!! Voici le résultat : On peut s amuser en allant sur le site : « Maintenant, entrons dans le vif du sujet. Ce que l on a fait jusqu à présent c était de créer un bouton et Qt a créé une fenêtre autour de ce bouton. Voici une application (+ explications) pour créer une fenêtre dans laquelle il y aura un bouton : #include <QtGui/qapplication.h> #include <QtGui/qpushButton.h> int main(int argc, char *argv[]) QApplication app(argc, argv); // Création d'un widget qui servira de fenêtre QWidget fenetre; // On dimensionne la fenêtre fenetre.setfixedsize(300, 150); // On crée un bouton qui a comme parent la fenêtre QPushButton bouton("isib!",&fenetre); bouton.setcursor(qt::pointinghandcursor); bouton.seticon(qicon("smile.png")); // On déplace le bouton de x = 50 y = 60 bouton.move(50,60); // On affiche la fenêtre fenetre.show(); bouton.settooltip("de l'aide"); QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit())); return app.exec(); Voici le résultat : Numérisation Interactive de Partitions 9 Version 1.2 du document

31 Voici d autres fonctions : Ligne de programmation bouton.setgeometry(50, 60, 100, 50); Explication On peut changer la localisation du bouton ainsi que sa taille. QPushButton autrebouton("autre bouton", &bouton); Cela permet de placer un bouton dans un autre bouton, car si on choisi comme paramètre &bouton alors l objet «bouton» de tout à l heure sera parent de l objet «autrebouton» ; on peut remettre &fenetre si on veut. Petite parenthèse, tout à l heure, nous avions créé des objets de type «QFont» mais nous avons oublié de rajouter les «includes»! #include <QtGui/qapplication> #include <QtGui/qpushbutton> #include <QtGui/qwidget> #include <QtGui/qfont> #include <QtGui/qicon> Notre application fonctionnait car en fait, on avait inclus QPushButton. Et comme QPushButton hérite de QWidget, il avait lui-même inclus QWidget dans son header. Quant à QFont et QIcon, ils étaient inclus eux aussi car indirectement utilisés par QPushButton. Code modulaire : On peut créer un nouveau projet Makefile (comme expliqué auparavant) ou éditer le projet actuel. En ce qui nous concerne, nous avons créé un nouveau projet «ModulaireISIB». Créons un nouveau fichier main.cpp dans la partie «Fichiers sources» qui va contenir : #include <QtGui/qapplication.h> #include "MaFenetre.h" int main(int argc, char *argv[]) QApplication app(argc, argv); MaFenetre fenetre; fenetre.show(); return app.exec(); Comme on peut le constater cela n a rien d étrange, à part une ligne! Numérisation Interactive de Partitions 10 Version 1.2 du document

32 Ligne de programmation Explication #include "MaFenetre.h" On va inclure un fichier.h MaFenetre fenetre ; On va créer un nouvel objet de la classe MaFenetre Il va falloir créer une nouvelle classe, ce qui veut dire créer un fichier : - MaFenetre.h (dans «Fichiers d en tête»); - MaFenetre.cpp (dans «Fichiers sources»). Dès que cela a été fait, ouvrons le fichier «MaFenetre.h» et collons tout ce qui est indiqué ci-dessous : #ifndef DEF_MAFENETRE #define DEF_MAFENETRE #include <QtGui/qapplication.h> #include <QtGui/qwidget> #include <QtGui/qpushbutton> class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT) public: MaFenetre(); ; private: QPushButton *m_bouton; #endif Explication : Ligne de programmation Explication : public QWidget Cette partie permet de dire qu on hérite de QWidget donc que notre classe MaFenetre hérite de QWidget. public: Ici on crée le constructeur de notre classe MaFenetre(); MaFenetre. Private: Ici on crée un pointeur nommé «*m_bouton» qui QPushButton *m_bouton; va devoir pointer sur un objet de type «QPushButton». Cet objet va être créé dynamiquement par la suite grâce à la fonction «new»! Ouverture du fichier «MaFenetre.h» : #include "MaFenetre.h" MaFenetre::MaFenetre() : QWidget() setfixedsize(300, 150); // Construction du bouton m_bouton = new QPushButton("ISIB!", this); m_bouton->setfont(qfont("comic Sans MS", 14)); m_bouton->setcursor(qt::pointinghandcursor); m_bouton->seticon(qicon("smile.png")); m_bouton->move(60, 50); Explication : Numérisation Interactive de Partitions 11 Version 1.2 du document

33 Ligne de programmation #include "MaFenetre.h" MaFenetre::MaFenetre() : QWidget() setfixedsize(300, 150); m_bouton = new QPushButton("ISIB!", this); Voici le résultat : Explication Inclure les définitions de la classe «MaFenetre::» permet de dire à quelle classe il se rapporte, «: QWidget()» sert à appeler le constructeur de QWidget. Permet de fixer les dimensions de la fenêtre. C est ici qu on va créer notre objet m_bouton avec la fonction new. Ne jamais oublier le «this» car le parent du bouton est la fenêtre! Et nous sommes dans la fenêtre! Il y a encore d autres fonctions pour les fenêtres et les boutons, par exemple : Ligne de programmation setwindowflags(qt::tool); Explication Comme on peut le constater, la fenêtre n a plus la possibilité d être agrandie ou d être réduite. fenetre.setwindowicon(qicon("image.png")); fenetre.setwindowopacity(0.8); Permet d ajouter un icone à la fenêtre, cela ne fonctionne pas en mode Qt ::Tool. fenetre.setwindowtitle("isib V 0.1"); Permet de rendre la fenêtre opaque. m_bouton->setcheckable(true); QCheckBox *checkbox = new QCheckBox("J'aime l'école", this); Permet de changer le titre de la fenêtre. Permet, quand on clique sur le bouton : qu il soit actionné et quand on reclique dessus : qu il soit relâché. Numérisation Interactive de Partitions 12 Version 1.2 du document

34 //Radiobouton QGroupBox *groupbox = new QGroupBox("Votre biere préféré", this); QRadioButton *orval = new QRadioButton("Orval"); QRadioButton *leffe = new QRadioButton("Leffe"); QRadioButton *jupiler = new QRadioButton("Jupiler"); orval->setchecked(true); QVBoxLayout *vbox = new QVBoxLayout; vbox->addwidget(orval); vbox->addwidget(leffe); vbox->addwidget(jupiler); On va créer un groupbox qui va contenir nos RadioButton, ceux-ci sont positionnés avec l aide d un QVBoxLayout. groupbox->setlayout(vbox); groupbox->setfixedsize(125,100); groupbox->move(5, 5); QProgressBar *isib = new QProgressBar(this); isib->setvalue(11); ProgressBar. Signaux et slots : Ceci permet de gérer les événements au sein d une fenêtre, donc : - un signal est envoyé par un Widget lorsqu un évènement se produit; - un slot est la fonction qui se produit en cas de signal (c est donc une méthode de la classe). En fait, Qt rajoute ces éléments à nos objets «Signaux et Slots». On peut aussi connecter des signaux et des slots entre eux (on peut, par exemple, connecter deux objets différents). Un signal peut aussi appeler plusieurs slots (mais l ordre d exécution n est pas contrôlé), comme un signal peut provoquer la création d un autre signal! Connexion d un signal à un slot : Nous allons élaborer un programme qui lorsqu on on va cliquer sur un bouton, cela fermera la fenêtre. Nous avons déjà mis ceci en pratique : «QObject::connect(&bouton, SIGNAL(clicked()), &app, SLOT(quit()));» Ouvrons le fichier «MaFenetre.cpp» et rajoutons cette fonction : «QObject::connect(&bouton, SIGNAL(clicked()), qapp, SLOT(quit()));» Pourquoi qapp? Car Qt crée automatiquement un pointeur vers un objet de type QApplication que nous avons créé dans le «main». Utiliser SLOT pour afficher la fenêtre «A propos de Qt». «QObject::connect(m_bouton, SIGNAL(clicked()), qapp, SLOT(aboutQt()));» Numérisation Interactive de Partitions 13 Version 1.2 du document

35 Pour information : On a créé un bouton avec la fonction «new», par conséquent on est sensé détruire celui-ci, mais en fait Qt s en charge pour nous. Quand on supprime un Widget parent, Qt supprime tous les Widgets à l intérieur (enfants). Voyons comment passer des paramètres entre un signal et un slot. Créons un nouveau projet. Le main.cpp reste le même tandis que MaFenetre.h : #ifndef DEF_MAFENETRE #define DEF_MAFENETRE #include <QtGui/qapplication> #include <QtGui/qwidget> #include <QtGui/qpushbutton> #include <QtGui/qlcdnumber> #include <QtGui/qslider> class MaFenetre : public QWidget public: MaFenetre(); ; private: QLCDNumber *m_lcd; QSlider *m_slider; #endif Numérisation Interactive de Partitions 14 Version 1.2 du document

Warren PAULUS Robin GODEFROID. C++ - Interface Graphique avec Visual Studio 2010

Warren PAULUS Robin GODEFROID. C++ - Interface Graphique avec Visual Studio 2010 C++ - Interface Graphique avec Visual Studio 2010 2010/2011 Mise à jour 1.2 : Installation réussie avec Qt 4.7.3. - Ajout d éléments supplémentaires sur le fonctionnement de «QsplashScreen». - Ajout d

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

TUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer»

TUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer» TUTORIEL IMPRESS Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer» Une page impress s'ouvre : Le volet gauche contiendra toutes les diapositives

Plus en détail

Modéliser ses fenêtres avec Qt Designer

Modéliser ses fenêtres avec Qt Designer 1 sur 20 05/07/2011 18:31 Modéliser ses fenêtres avec Qt Designer Informations sur le tutoriel Auteurs : M@teo21 et Nanoc Difficulté : Licence : Plus d'informations Popularité Visualisations : 1 501 676

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

Plus en détail

Troisième projet Scribus

Troisième projet Scribus Sommaire 1. Réponse à la question du deuxième projet... 2 2. Présentation du projet... 2 2.1. Organiser son travail... 2 3. Réalisation... 2 3.1. Préparation du texte... 2 3.1.1. Les styles «Dys»... 3

Plus en détail

Table des matières. 1. Installation de VMware ESXI 4... 3. 1.1. Pré-requis... 3. 1.2. Installation... 3

Table des matières. 1. Installation de VMware ESXI 4... 3. 1.1. Pré-requis... 3. 1.2. Installation... 3 Table des matières 1. Installation de VMware ESXI 4.... 3 1.1. Pré-requis... 3 1.2. Installation... 3 1.2.1. Panneau de configuration du serveur ESXI... 4 1.2.2. Configuration du mot de passe «Root»....

Plus en détail

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Tutoriel code::blocks

Tutoriel code::blocks Tutoriel code::blocks E. Lunéville 2006 Le logiciel code::blocks fait partie des logiciels de type EDI (Environnement de Développement Intégré, IDE en anglais) pour le langage C++. Il est multiplateforme

Plus en détail

LES TOUT PREMIERS PAS

LES TOUT PREMIERS PAS DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous

Plus en détail

Silhouette Studio Leçon N 2

Silhouette Studio Leçon N 2 Silhouette Studio Leçon N 2 Apprendre comment utiliser Ma Bibliothèque et la Boutique en Ligne Silhouette pour importer des nouveaux modèles. Matériels nécessaires Silhouette SD Feuille de transport colle

Plus en détail

VAMT 2.0. Activation de Windows 7 en collège

VAMT 2.0. Activation de Windows 7 en collège VAMT 2.0 Activation de Windows 7 en collège Rédacteurs : Jean-Laurent BOLLINGER Stéphan CAMMARATA Objet : Document décrivant la procédure d activation de Windows 7 avec VAMT 2.0 dans les collèges de l

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Modifier les propriétés d'un widget

Modifier les propriétés d'un widget La "fenêtre-bouton" que nous avons réalisée dans le chapitre précédent était un premier pas. Certaines question se posent naturellement : Par exemple, comment modifier la taille du bouton? Comment placer

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : 1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique

Plus en détail

L espace de travail de Photoshop

L espace de travail de Photoshop L espace de travail de Photoshop 1 Au cours de cette leçon, vous apprendrez à : ouvrir les fichiers Photoshop ; sélectionner et employer certains des outils dans le panneau Outils ; définir les options

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Comment se connecter au VPN ECE sous vista

Comment se connecter au VPN ECE sous vista Comment se connecter au VPN ECE sous vista Pour commencer, aller dans le Centre de Réseau et partage (qui est aussi accessible via le panneau de configuration onglet internet et réseau), en faisant clic

Plus en détail

Apprendre Java et C++ avec NetBeans

Apprendre Java et C++ avec NetBeans E Apprendre Java et C++ avec NetBeans Généralités Est-ce le titre d un nouvel ouvrage? Pourquoi pas! NetBeans fait son apparition dans cette édition car un module, permettant d éditer et de compiler du

Plus en détail

Manuel utilisateur (Manuel_utilisateur_version20110901.pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version20111010.

Manuel utilisateur (Manuel_utilisateur_version20110901.pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version20111010. Manuell d iinstallllatiion Date dernière révision : 10/10/2011 Documents de référence Les documents cités dans le présent document ou utiles à la compréhension de son contenu sont : Titre Manuel utilisateur

Plus en détail

LOGICIEL DE SURVEILLANCE NUUO NOTICE

LOGICIEL DE SURVEILLANCE NUUO NOTICE LOGICIEL DE SURVEILLANCE NUUO NOTICE Sommaire A Installation... 2 B Console principale... 4 C Ecran... D Configuration... E Programmation... F Système Smart Guide... G Playback... Cette notice est un guide

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC. Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC. Pour être le plus complet possible, je vais supposer posséder 3 PC : PC de bureau sous Windows XP

Plus en détail

Méthodes de suivi d un objet en mouvement sur une vidéo

Méthodes de suivi d un objet en mouvement sur une vidéo Institut Supérieur de l Électronique et du Numérique Tél. : +33 (0)2.98.03.84.00 Fax : +33 (0)2.98.03.84.10 20, rue Cuirassé Bretagne CS 42807-29228 BREST Cedex 2 - FRANCE N4 Année scolaire 2008/2009 Stage

Plus en détail

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7 Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7 L animation est obtenue par défilement des images décomposant le mouvement de traçage de la signature. Les étapes successives seront : 1. Choix de la

Plus en détail

Dragon Naturally Speaking 13

Dragon Naturally Speaking 13 Année 2015 Dragon Naturally Speaking 13 Guide premier pas Nathalie Macé / Grégoire Duval PROJET ORDYSCAN 1 Table des matières Introduction 3 Pourquoi utiliser Dragon Naturally Speaking avec les élèves

Plus en détail

Paramètres d accessibilité des systèmes d exploitation Windows et Mac

Paramètres d accessibilité des systèmes d exploitation Windows et Mac Paramètres d accessibilité des systèmes d exploitation Windows et Mac Hôpital Raymond Poincaré 104, Bd Raymond Poincaré 92380 Garches GB Consulting 242 rue du Faubourg de Roubaix 59800 Lille Samuel POUPLIN

Plus en détail

Premiers Pas avec OneNote 2013

Premiers Pas avec OneNote 2013 Premiers Pas avec OneNote 2 Présentation de OneNote 3 Ouverture du logiciel OneNote 4 Sous Windows 8 4 Sous Windows 7 4 Création de l espace de travail OneNote 5 Introduction 5 Présentation des différentes

Plus en détail

Gérer, stocker et partager vos photos grâce à Picasa. Janvier 2015

Gérer, stocker et partager vos photos grâce à Picasa. Janvier 2015 Gérer, stocker et partager vos photos grâce à Picasa Janvier 2015 Sommaire 1 - Découverte de Picasa 2 - Gestion des dossiers et des photos 3 - Trier, filtrer et rechercher 4 - Retoucher une image 5 - Création

Plus en détail

Warren PAULUS. Android SDK et Android x86

Warren PAULUS. Android SDK et Android x86 Android SDK et Android x86 2010/2011 Voici un petit tutoriel pour installer Android de façon à ce qu il soit compatible avec NetBeans et Eclipse, ainsi que l utilisation d Android x86. Ce tutoriel a été

Plus en détail

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi - 78160

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi - 78160 Sommaire Choisir son image... 2 Enregistrer son travail... 3 Créer les détails... 4 Supprimer une zone ou un détail... 6 Les commentaires... 6 Créer un lien hypertexte... 8 Appliquer un modèle... 8 Personnaliser

Plus en détail

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de Guide de l utilisateur Faites connaissance avec la nouvelle plateforme interactive de Chenelière Éducation est fière de vous présenter sa nouvelle plateforme i+ Interactif. Conçue selon vos besoins, notre

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Contrôle Parental Numericable. Guide d installation et d utilisation

Contrôle Parental Numericable. Guide d installation et d utilisation Contrôle Parental Numericable Guide d installation et d utilisation Version 12.3 pour OS X Copyright 2012 Xooloo. Tous droits réservés. Table des matières 1. Introduction Dénomination et caractéristiques

Plus en détail

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir

Plus en détail

Windows 7 - Installation du client

Windows 7 - Installation du client Windows 7 - Installation du client 1 - Présentation Windows 7 est un système d exploitation client basé sur le noyau NT 6.1, disponible en six versions, commercialisé depuis octobre 2009. Résumé des fonctionnalités

Plus en détail

FORMATION MULTIMÉDIA LVE

FORMATION MULTIMÉDIA LVE Windows Live Movie Maker est un logiciel de montage vidéo conçu pour les débutants. Il permet de créer, de modifier et de partager des séquences vidéo sur le web, par courrier électronique ou sur un CD/DVD.

Plus en détail

Mes documents Sauvegardés

Mes documents Sauvegardés Mes documents Sauvegardés Guide d installation et Manuel d utilisation du logiciel Edition 13.12 Photos et illustrations : Copyright 2013 NordNet S.A. Tous droits réservés. Toutes les marques commerciales

Plus en détail

Les différentes méthodes pour se connecter

Les différentes méthodes pour se connecter Les différentes méthodes pour se connecter Il y a plusieurs méthodes pour se connecter à l environnement vsphere 4 : en connexion locale sur le serveur ESX ; avec vsphere Client pour une connexion sur

Plus en détail

PRECAUTIONS DESCRIPTION DU PRODUIT

PRECAUTIONS DESCRIPTION DU PRODUIT Vous venez d acquérir un produit de la marque Essentiel b et nous vous en remercions. Nous apportons un soin particulier au design, à l'ergonomie et à la simplicité d'usage de nos produits. Nous espérons

Plus en détail

Le Registre sous Windows 8 architecture, administration, script, réparation...

Le Registre sous Windows 8 architecture, administration, script, réparation... 234 Le Registre sous Windows 8 architecture, administration, script, réparation... dcliquez sur Affichage - Personnaliser afin d activer ou de désactiver certains éléments de votre Console. Voyons maintenant

Plus en détail

wxwidgets dans un environnement Microsoft Windows

wxwidgets dans un environnement Microsoft Windows 1/18 wxwidgets dans un environnement Microsoft Windows Ce document explique les démarches à suivre pour pouvoir utiliser «wxwidgets» à travers un environnement de développement. Normalement c est ce que

Plus en détail

Zotero est une extension du navigateur Firefox. Il est possible de télécharger Firefox gratuitement sur le site: https://www.mozilla.org/fr/.

Zotero est une extension du navigateur Firefox. Il est possible de télécharger Firefox gratuitement sur le site: https://www.mozilla.org/fr/. Aide-mémoire Zotero est un logiciel de gestion bibliographique gratuit jusqu à 300 Mo et open source. Cet outil permet de collecter des références bibliographiques, de créer des bibliographies et d insérer

Plus en détail

Leçon N 4 Sauvegarde et restauration

Leçon N 4 Sauvegarde et restauration Leçon N 4 Sauvegarde et restauration La majorité des ordinateurs portables sont vendus maintenant sans CD de restauration permettant de remettre l ordinateur tel qu il était à sa sortie d usine. Or il

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Utilisation de l éditeur.

Utilisation de l éditeur. Utilisation de l éditeur. Préambule...2 Configuration du navigateur...3 Débloquez les pop-up...5 Mise en évidence du texte...6 Mise en évidence du texte...6 Mise en page du texte...7 Utilisation de tableaux....7

Plus en détail

Bien travailler sur plusieurs écrans

Bien travailler sur plusieurs écrans Bien travailler sur plusieurs écrans Pour améliorer votre confort sur votre ordinateur et travailler plus efficacement, vous pouvez lui ajouter un second voire un troisième écran. En étendant la surface

Plus en détail

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e GUIDE DE DÉMARRAGE SitagriPro Infinite Un service FINANCEAGRI c o r p o r a t e SOMMAIRE ÉTAPE 1 : Installation... p.3 1. Introduction 2. Connexion à SitagriPro Infinite ÉTAPE 2 : Identification... p.5

Plus en détail

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents Diffusé par Le Projet Documentation OpenOffice.org Table des Matières 1. Les Versions...3 2. Les Modifications...5

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Créer sa première base de données Access Partie 4/4 - Création d un état

Créer sa première base de données Access Partie 4/4 - Création d un état - le 19/02/2013 Créer sa première base de données Access Partie 4/4 - Création d un état Ce tutoriel est la suite de l article sur la création d une table, l article sur la création d une requête et l

Plus en détail

L écran du marais : Comment configurer le viewer OpensSim

L écran du marais : Comment configurer le viewer OpensSim L écran du marais : Comment configurer le viewer OpensSim Dans un premier temps, il vous faut télécharger et installer un logiciel de navigation dédié aux serveurs de mondes virtuels. En voici deux ainsi

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Utilisation de la Kinect

Utilisation de la Kinect Utilisation de la Kinect Antoine Lejeune Sébastien Piérard Marc Van Droogenbroeck Jacques Verly Juillet 2012 Résumé Fin 2010, Microsoft lançait la Kinect pour Xbox 360, la première caméra 3D destinée au

Plus en détail

Windows 8 Installation et configuration

Windows 8 Installation et configuration Editions ENI Windows 8 Installation et configuration Collection Ressources Informatiques Extrait 112 Windows 8 Installation et configuration Pour terminer l'application de l'image, nous devons configurer

Plus en détail

Cours de numérisation sur Epson Perfection

Cours de numérisation sur Epson Perfection Cours de numérisation sur Epson Perfection 1- Vérifiez la propreté de la vitre, placez l original sur celle-ci. À savoir, on peut numériser des transparents avec ce scanner ; il a un capteur CCD dans le

Plus en détail

LES TABLETTES : EN PRATIQUE

LES TABLETTES : EN PRATIQUE Installer une application LES TABLETTES : EN PRATIQUE Lorsque vous achetez une tablette, des applications sont déjà installées. En général, vous trouverez de quoi surfer sur Internet, écouter de la musique,

Plus en détail

Bibliothèque numérique

Bibliothèque numérique Bibliothèque numérique Mode d emploi Le service de bibliothèque numérique proposé par Numilog vous permet de consulter en ligne ou de télécharger des livres numériques sur place dans votre établissement

Plus en détail

2013 Pearson France Adobe Illustrator CC Adobe Press

2013 Pearson France Adobe Illustrator CC Adobe Press Au cours de cette démonstration d Adobe Illustrator CC, vous découvrirez les nouvelles fonctionnalités du logiciel, comme les outils de retouche et la sélection du texte, ainsi que d autres aspects fondamentaux

Plus en détail

Réalisation de cartes vectorielles avec Word

Réalisation de cartes vectorielles avec Word Réalisation de cartes vectorielles avec Word Vectorisation de la carte Après avoir scanné ou avoir récupéré un fond de carte sur Internet, insérez-la dans votre fichier Word : Commencez par rendre visible

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

Plus en détail

PRISE EN MAIN D ILLUSTRATOR

PRISE EN MAIN D ILLUSTRATOR CHAPITRE 1 PRISE EN MAIN D ILLUSTRATOR Présentation... 13 Contenu du livre... 13 Les nouveautés... 14 Composants de l interface... 15 Afficher les documents... 20 Organiser son espace de travail... 21

Plus en détail

13) Calibrage du tableau Interwrite Dualboard

13) Calibrage du tableau Interwrite Dualboard 13) Calibrage du tableau Interwrite Dualboard Le calibrage permet d ajuster avec précision la pointe de votre stylet avec le pointeur de l ordinateur. 2 façons de calibrer le tableau Interwrite Dualboard

Plus en détail

Quelques éléments de compilation en C et makefiles

Quelques éléments de compilation en C et makefiles Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable

Plus en détail

Guide de l utilisateur Mikogo Version Windows

Guide de l utilisateur Mikogo Version Windows Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Infolettre #18 : Les graphiques avec Excel 2010

Infolettre #18 : Les graphiques avec Excel 2010 Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet

Plus en détail

Prise en main rapide

Prise en main rapide Prise en main rapide 4 Dans cette leçon, vous découvrirez les fonctionnalités de création de page web de Dreamweaver et apprendrez à les utiliser dans l espace de travail. Vous apprendrez à : définir un

Plus en détail

Étape 1 : Création d une adresse courriel GMAIL

Étape 1 : Création d une adresse courriel GMAIL Wix est une plateforme gratuite pour la construction de sites. Créez des sites de folie en utilisant un de nos modèles ou commencez votre site à partir d'une page blanche! Aucune connaissance technique

Plus en détail

Des outils numériques simples et conviviaux!

Des outils numériques simples et conviviaux! Des outils numériques simples et conviviaux! 1 La clé USB en bref La clé USB vous permet : n De projeter, avec ou sans tableau blanc interactif (TBI), les pages du livre numérique. n De naviguer facilement

Plus en détail

8. Gestionnaire de budgets

8. Gestionnaire de budgets 8. Gestionnaire de budgets 8.1 Introduction Le Gestionnaire de budgets (Budget Workbench) permet aux utilisateurs de travailler sur les données budgétaires qu ils ont importées sur leur station de travail

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Mendeley, pour gérer sa bibliographie et la partager. Patricia Volland-Nail

Mendeley, pour gérer sa bibliographie et la partager. Patricia Volland-Nail Mendeley, pour gérer sa bibliographie et la partager Patricia Volland-Nail Avertissement Ce diaporama est le support d une formation qui a été dispensée à l URFIST de Bordeaux le 29 Novembre 2013 Il nécessite

Plus en détail

Ceci est un Chromebook, ton ordinateur!

Ceci est un Chromebook, ton ordinateur! Ceci est un Chromebook, ton ordinateur! CHROMEBOOK - Dans le royaume des ordinateurs personnels, il n'y a pas beaucoup de choix. Pour schématiser, soit vous avez un PC, soit vous avez un Mac. Et ce depuis

Plus en détail

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES Avant-propos Conçu par des pédagogues expérimentés, son originalité est d être à la fois un manuel de formation et un manuel de référence complet présentant les bonnes pratiques d utilisation. FICHES PRATIQUES

Plus en détail

TP Blender n 2 : Importation d un modèle SketchUp et animation

TP Blender n 2 : Importation d un modèle SketchUp et animation TP Blender n 2 : Importation d un modèle SketchUp et animation Service de Conception Géométrique Université de Liège Aérospatiale et Mécanique Conçu avec Blender 2.66 et SketchUp 8 De SketchUp à Blender

Plus en détail

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web Manuel d utilisation du module Liste de cadeaux PRO par Alize Web INSTALLER ET CONFIGURER LE MODULE (BACK OFFICE) 2 Réglages des performances 2 Télécharger le module 3 Installer le module 4 Configurer

Plus en détail

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris

Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Comment Définir une Plage de données Pour Utiliser Fonctions de Filtres et de Tris Diffusé par Le Projet Documentation OpenOffice.org Table des matières 1. Définir les plages...3 2. Sélectionner une plage...4

Plus en détail

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven TRAVAIL RÉALISÉ PAR ABED ABDERRAHMANE Oracle Developer Suite 10g Guide de l installation 10g Release 2 (10.1.2) pour Windows Vista & Seven www.oraweb.ca Page 1 TABLE DES MATIÈRES : PARTIE 1 : CONCEPTS

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet. 1- Optimiser le poids de votre image : Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet. Tous les types d utilisateurs (auteur, publicateur,

Plus en détail

Un exemple avec WORKSPACE d'interwrite

Un exemple avec WORKSPACE d'interwrite S'approprier un utilitaire de TNI Un exemple avec WORKSPACE d'interwrite Objectifs : S'approprier un utilitaire de TNI («soft»)afin de percevoir la plus-value pédagogique de l'outil. Pour cela utiliser

Plus en détail

Premiers pas avec NetSupport SCHOOL

Premiers pas avec NetSupport SCHOOL Premiers pas avec NetSupport SCHOOL QUERY INFORMATIQUE 1 boulevard Charles de Gaule 92700 COLOMBES - FRANCE Tel. : + 33 (0) 1.49.97.33.00 Fax : + 33 (0) 1.49.97.33.09 www.query-informatique.com Sommaire

Plus en détail

Leçon N 5 PICASA Généralités

Leçon N 5 PICASA Généralités Leçon N 5 PICASA Généralités Avec cette leçon N 5, nous allons commencer l étude du traitement de vos photos avec le logiciel de GOOGLE, PICASA, que vous avez téléchargé dans la leçon N 3. 1 Présentation

Plus en détail

Opérations de base sur ImageJ

Opérations de base sur ImageJ Opérations de base sur ImageJ TPs d hydrodynamique de l ESPCI, J. Bico, M. Reyssat, M. Fermigier ImageJ est un logiciel libre, qui fonctionne aussi bien sous plate-forme Windows, Mac ou Linux. Initialement

Plus en détail

a CONserVer a CONserVer COde d activation pack FNaC pc sécurité & ClOud COde d activation protection android

a CONserVer a CONserVer COde d activation pack FNaC pc sécurité & ClOud COde d activation protection android a CONserVer COde d activation pack FNaC pc sécurité & ClOud a CONserVer COde d activation protection android merci d avoir choisi le pack fnac sécurité pc & Cloud edition premium 2013! La Fnac a sélectionné

Plus en détail

FAQ Trouvez des solutions aux problématiques techniques.

FAQ Trouvez des solutions aux problématiques techniques. FAQ Trouvez des solutions aux problématiques techniques. 1. Au lieu des livres numériques dont je m'attendais, j'ai téléchargé un fichier qui s'intitule «urllink.acsm». Où est le livre numérique? 2. Comment

Plus en détail

Tutoriel déploiement Windows 7 via serveur Waik

Tutoriel déploiement Windows 7 via serveur Waik Tutoriel déploiement Windows 7 via serveur Waik Sommaire : 1. Introduction et contexte 2. Prérequis 3. Configuration MDT 4. Configuration WDS 5. Déploiement de l image 1. Introduction et contexte : Dans

Plus en détail

Tutoriel de formation SurveyMonkey

Tutoriel de formation SurveyMonkey Tutoriel de formation SurveyMonkey SurveyMonkey est un service de sondage en ligne. SurveyMonkey vous permet de créer vos sondages rapidement et facilement. SurveyMonkey est disponible à l adresse suivante

Plus en détail

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12 GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface

Plus en détail

Contrôle Parental Numericable. Guide d installation et d utilisation

Contrôle Parental Numericable. Guide d installation et d utilisation Contrôle Parental Numericable Guide d installation et d utilisation Version 12.3 pour Windows Copyright 2012 Xooloo. Tous droits réservés. Table des matières 1. Introduction Dénomination et caractéristiques

Plus en détail

Créer ses partitions avec. Finale. Composer arranger éditer. Benjamin martinez. Groupe Eyrolles, 2011, ISBN : 978-2-212-12968-7

Créer ses partitions avec. Finale. Composer arranger éditer. Benjamin martinez. Groupe Eyrolles, 2011, ISBN : 978-2-212-12968-7 Créer ses partitions avec Finale Composer arranger éditer Benjamin martinez Groupe Eyrolles, 2011, ISBN : 978-2-212-12968-7 Chapitre 2 Écrire la musique 1 re partie 2 Après ce petit tour d horizon du logiciel,

Plus en détail

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE Arborescence du cédérom (page 2) Lancement du Cédérom et configuration minimale de votre ordinateur (page 3). Loupe, page

Plus en détail