Programmer avec Visual Studio 2012 Express et OpenCV



Utilisé avec la librairie open source OpenCV, Visual Studio permet de réaliser de puissants traitements sur les images et sur les vidéos : lecture, écriture, enregistrement, filtrage, seuillage, segmentation, détection...

Présentation de Visual Studio

Versions

Visual Studio est un environnement de développement intégré de Microsoft permettant la création d'applications pour Windows, Android et iOS ainsi que des applications Web et des services cloud. Visual Studio supporte les langages de programmation C, Visual C++, Visual C#, Visual Basic, Visual Web Developer et SQL Server.

Depuis 1997 Microsoft sort une nouvelle version de Visual Studio tous les 2 ou 3 ans. :

  • 1997 - Visual Studio 97 (Visual Studio 5)
  • 1998 - Visual Studio 6.0 (Visual Studio 6)
  • 2002 - Visual Studio.net (Visual Studio 7)
  • 2003 - Visual Studio 2003 (Version 7.1)
  • 2005 - Visual Studio 2005 (version 8)
  • 2008 - Visual Studio 2008 (version 9)
  • 2010 - Visual Studio 2010 (version 10)
  • 2012 - Visual Studio 2012 (version 11)
  • 2013 - Visual Studio 2013 (version 12)
  • 2015 - Visual Studio 2015 (version 14)...

Ces versions sont pour la plupart disponibles en version payante ou en version d'essai limitée. Pour chaque version, de Visual Studio 2005 à Visual Studio 2014, Microsoft a produit une version allégée et gratuite appelée Visual Studio Express réservée à un usage exclusivement éducatif. Avec Visual Studio 2015, il existe d'une part une version gratuite appelée «Visual Studio Express pour Windows 10» qui nécessite la présence de Windows 10 et d'autre part une version appelée "Visual Studio Community". Cette dernière est gratuite pour les développeurs individuels, les projets open source, la recherche universitaire, l' éducation, et les petites équipes professionnelles et dispose des fonctionnalités de Visual Studio Professionnel.

Remarque : Pour mémoire, la première de ces versions (Visual Studio 97) intégrait les langages Visual Basic 5.0, Visual C++ 5.0 et Visual J++ 1.1.

Configuration requise

La configuration minimum requise, pour pouvoir faire fonctionner Visual Studio sur un PC, dépend de la version utilisée. Par exemple :

  • Visual Studio.net - Windows 2000 ou Windows XP (CPU 450MHz, RAM 160 Mo)...
  • Visual Studio 2010 - Windows XP SP3, Windows Vista SP2 ou Windows 7 (CPU 1.6 GHz et RAM 2 Go)...
  • Visual Studio 2012 - Windows 7, 8 ou 10 (CPU 1.6 GHz et RAM 2 Go)...
  • Visual Studio Express 2015 pour Windows 10 - Windows 10 (CPU 1,6 GHz et RAM 2Go)...

Présentation de OpenCV

OpenCV (Open Computer Vision) est une bibliothèque libre de traitement d'images écrite en C++. Cette bibliothèque est utilisable avec les langages de développement C++, C, Python et Java et avec les systèmes d'exploitation Windows, Linux, Mac OS, iOS et Android.

OpenCV avec Visual Studio

La première version d'OpenCV (OpenCV 1.0.0) est sortie en 2006. Cette version se présente sous forme d'un exécutable de 17,6 Mo qui s'installe quasi instantanément (quelques secondes). Elle contient les fonctions essentielles et est compatible avec WindowsXP, Visual Studio 6.0 et plus. Elle s'installe automatiquement en créant un répertoire «OpenCV» dans «C:/Program Files». En plus des fichiers «include» répartis dans plusieurs répertoires, elle comprend 8 fichiers «.dll» dans un répertoire «bin» et 8 fichiers «.lib» (destinés à Visual Studio) dans un répertoire «lib».

La version suivante (OpenCV 2.0.0) est sortie en 2009. Elle est compatible avec WindowsXP, Visual Studio 2008 et plus. Depuis 2009, les versions se sont ensuite enchainées rapidement : 2.1.0 et 2.2.0 en 2010, 2.3.0 et 2.3.1 en 2011, 2.4.9 et 2.4.10 en 2014, 2.4.11, 2.4.12, 3.0 et 3.1 en 2015.

OpenCV avec un autre IDE

La bibliothèque OpenCV peut bien entendu être utilisée avec un environnement de développement différent de Visual Studio, notamment avec l'environnement de développement libre CodeBlocks et avec le compilateur libre C/C++ minGW.

Cependant, les librairies .lib, qui sont présentes dans le répertoire OpenCV, une fois celui-ci installé, sont généralement destinées à être utilisées par Visual Studio et non pas par un autre compilateur. En effet, généralement OpenCV ne contient malheureusement pas les fichiers librairies «.lib» compilés pour minGW.

En examinant le contenu du répertoire «buid/x86» d'OpenCV on s’aperçoit qu’il contient un ou plusieurs sous-répertoires «vcn» (contenant les librairies et les dll utilisables par la version n de Visual Studio) mais il ne contient généralement pas de répertoire «mingw» contenant les librairies et les dll compatibles avec CodeBlocks. D'ailleurs quand le répertoire «mingw» existe, il ne contient pas toutes les librairies et dll attendues. Pour pouvoir utiliser OpenVC avec CodeBlocks, il faut donc fabriquer soi-même l'ensemble des librairies et des dll (Dynamic LInk Librairies) correspondantes en compilant le code source du projet OpenCV. Cela peut se faire en utilisant l'outil de préparation de projet «CMake» puis le compiltateur «mingw» qui sont open source et gratuits mais l'opération nécessite de la précision et de la maîtrise pour corriger les erreurs qui peuvent se produire.

On va donc s'intéresser ci-après à la version OpenCV 2.4.11, utilisée conjointement avec Visual Studio 2012 Express, afin de pouvoir utiliser directement l'ensemble des librairies toutes prêtes disponibles dans le package OpenCV.


Télécharger et installer Visual Studio 2012

Télécharger Visual Studio 2012

[01] puis Visionneuse - Chercher le lien de téléchargement

  • Saisir «download visual studio 2012 express» dans la zone de recherche de Google.
  • Cliquer le lien de téléchargement proposé

[02] puis Visionneuse

  • Sur le site de microsoft, utiliser l'ascenseur situé à droite pour lire le contenu de la page.

[03] puis Visionneuse - Regarder les modes de téléchargement proposés

  • Cliquer le bouton «Détails» pour prendre connaissance des modes de téléchargement proposés par Microsoft. Remarque : Le premier mode consiste à télécharger un fichier de taille réduite (wdexpress_full.exe). Une fois téléchargé, ce fichier devra être cliqué. L'installation complète de Visual Studio 2012 Express s'effectuera alors sur l'ordinateur directement via internet. Avec cette méthode on ne dispose pas de la version complète. Si Microsoft décide de supprimer celle-ci de son site, on ne peut pas la réinstaller. La seconde méthode consiste à télécharger la version complète qui se présente sous forme d'un fichier .iso puis à graver celle ci sur un CD qui pourra être utilisé de façon autonome pour reinstaller Visual Studio 2012 Express autant de fois que nécessaire. On va choisir ce mode.

[04] puis Visionneuse - Regarder la configuration système

  • Vérifier la configuration requise. Dans le cas présent, il faut Windows 7 ou plus, et au minimum un processeur de 1,6GHz et 1Go de RAM

[05] puis Visionneuse

  • Choisir la langue et cliquer « Télécharger ».

[06] puis Visionneuse - Choisir la version complète .iso

  • Choisir la version complète (622 Mo) puis cliquer Next

[07] puis Visionneuse - Télécharger

  • Vérifier la progression du téléchargement

[08] puis Visionneuse - Graver un CD d'installation deVisual Studio 2012 Express

  • Une fois le téléchargement terminé, repérer l'emplacement du fichier.
  • Fermer la fenêtre puis ouvrir un graveur de CD (Nero par exemple)

[09] puis Visionneuse

  • Fermer la fenêtre «Nouvelle Compilation de Nero».

[10] puis Visionneuse

  • Cliquer «Fichier/Ouvrir» .
  • Sélectionner le fichier «VS2012_WDX_FRA.iso» puis cliquer «Ouvrir».

[11] puis Visionneuse

  • Cliquer «Graver»

Installer Visual Studio 2012 Express

[12] puis Visionneuse

  • Vérifier la présence des fichiers sur le CD.
  • Cliquer le fichier « wdexpress_full.exe »

[13] puis Visionneuse

  • Cliquer « Installer »

[14] puis Visionneuse

  • Une fois l'installation terminée, vérifier la présence sur «C» du répertoire «Microsoft Visual Studio 11.0» où se trouve installé Visual Studio 2012.

[15] puis Visionneuse

  • Vérifier la présence, dans ce répertoire, des répertoires VB, VC et VC# qui correspondent aux langages Visual Basic, C++ et C#.
  • Fermer la fenêtre

Télécharger et installer OpenCV (Open Source Computer Vision)

Télécharger OpenCV

[16] puis Visionneuse

  • Se rendre sur le site opencv.org puis cliquer le lien « LATEST DOWNLOADS»

[17] puis Visionneuse

  • Utiliser l'ascenseur pour aller à la version 2.4.11

[18] puis Visionneuse

  • Une fois rendu à la version 2.4.11, cliquer « OpenCV for Windows»

[19] puis Visionneuse

  • Vérifier la progression du téléchargement

Installer OpenCV

[20] puis Visionneuse

  • Repérer l'emplacement du fichier téléchargé ( «opencv-2.4.1.exe» et cliquer sur le fichier.

[21] puis Visionneuse

  • Si un extracteur de fichier est présent sur le PC (l'extracteur 7z par exemple qui est gratuit), l'exécutable installe automatiquement OpenCV à l'intérieur d'un répertoire «opencv«» sur «C:».

[22] puis Visionneuse

  • Vérifier la présence de ce répertoire sur «C:».

[23] puis Visionneuse

  • Vérifier la présence du répertoire «build» qui contient l'ensemble des fichiers nécessaires à Visual Studio.

[24] puis Visionneuse

  • Vérifier la présence du répertoire «include» qui contient les fichiers d'inclusion nécessaires à Visual Studio pour pouvoir compiler les programmes.

[25] puis Visionneuse - Explorateur de fichiers

  • Le répertoire «include» contient deux sous répertoires «opencv» et «opencv2»

[26] puis Visionneuse

  • Le répertoire «opencv/build/doc» contient la documentation complète de OpenCV.
  • Cliquer la flèche gauche, en haut à gauche, pour revenir en arrière.

[27] puis Visionneuse

  • Dans l'hypothèse où le PC fonctionne en 32bit, vérifier la présence, dans «opencv/build/x86», du répertoire «vc11» qui contient les librairies .lib et les dll qui sont nécessaires à Visual Studio 2012 Express pour pouvoir linker puis exécuter les programmes. Vérifier dans le répertoire «opencv/build/x64» dans le cas d'un PC fonctionnant en 64bit.

[28] puis Visionneuse

  • Le fichier «bin» contient l'ensemble des fichiers DLL (Librairies dynamiques nécessaires à Windows pour pouvoir exécuter les programmes)

[29] puis Visionneuse

  • Le fichier «bin» contient l'ensemble des fichiers DLL (Librairies dynamiques nécessaires à Windows pour pouvoir exécuter les programmes)
  • Cliquer sur la flèche gauche en haut à gauche pour revenir en arrière

[30] puis Visionneuse

  • Le fichier «lib» contient l'ensemble des fichiers .lib (librairies nécessaires à Visual Studio 2012 Express pour pouvoir linker les progammes).
  • Remarque : les librairies .lib qui possèdent le même nom mais complété avec un d sont destinées au mode debogage ( cf 48 Debug).

[31] puis Visionneuse

  • Il est à noter que le répertoire «opencv/build/include/opencv» contient également des fichiers d'entête.
  • Cliquer sur la flèche gauche en haut à gauche pour revenir en arrière

[32] puis Visionneuse

  • remarquer que le répertoire «opencv/build/include/opencv2» contient lui aussi des fichiers d'entête répartis dans divers répertoires.
  • Fermer la fenêtre.

Configurer et faire fonctionner Visual Studio 2012 avec OpenCV

Mettre à jour les variables d'environnement de Windows

[33] puis Visionneuse

  • Cliquer droit le bouton «Démarrer»
  • Cliquer gauche «Panneau de configuration»

[34] puis Visionneuse

  • Cliquer gauche «Système et sécurité »

[35] puis Visionneuse

  • Cliquer gauche «Système »

[36] puis Visionneuse

  • Cliquer gauche «Paramètres Systèm avancés »

[37] puis Visionneuse

  • Cliquer gauche «Variables d'environnement»

[38] puis Visionneuse

  • Créer une variable système «OPENCV_DIR» avec la valeur «C:\opencv\build»
  • Modifier le contenu de la variable système «Path»

[39] puis Visionneuse

  • Ajouter aux valeurs existantes de la variable «Path» la valeur «%OPENCV_DIR%\x86\vc11\bin»

[40] puis Visionneuse

  • Cliquer « OK»

Paramétrer Visual Studio 2012 Express

[41] puis Visionneuse - Démarrer Visual Studio 2012 Express

  • Cliquer droit le bouton «Démarrer» et cliquer «VS Express pour Desktop»

[42] puis Visionneuse

  • Patienter pendant que Visual Studio 2012 Express démarre

[43] puis Visionneuse

  • Une fois Visual Studio 2012 Express démarré, l'écran principal s'affiche.

[44] puis Visionneuse - Créer un nouveau projet

  • Cliquer « Fichier/Nouveau projet... »

[45] puis Visionneuse

  • Choisir les options Visual C++, Application console. Nommer le projet (projet «test» par exemple) et indiquer l'emplacementoù sera enregistré ce projet ( indiquer le répertoire «D:\Projet» par exemple), demander la création d'un répertoire spécifique pour ce projet en cochant la case correspondante.
  • Cliquer «OK»

[46] puis Visionneuse

  • Une boîte de dialogue s'affiche, cliquer «Suivant»

[47] puis Visionneuse

  • Cliquer «Terminer»

[48] puis Visionneuse

  • La fenêtre du projet apparaît dotée d'un code source minimal affiché par défaut.
  • Cliquer la case à option prérenseignée avec «Debug». Le mode «Debug» indique que le projet est actuellement dans un mode adapté pour le débogage du programme et non pas pour l'éxécution de ce programme (mode «Release»).

[49] puis Visionneuse

  • Cliquer «Release» pour passer dans un mode qui est propice à l'exécution du programme

[50] puis Visionneuse

  • Cliquer droit sur le nom du projet («test») dans la fenêtre Explorateur de solutions

[51] puis Visionneuse

  • Cliquer «Propriétés»

[52] puis Visionneuse - Paramétrer le compilateur

  • Choisir «C/C++/Général» puis cliquer «Autres répertoires include»

[53] puis Visionneuse

  • Saisir $(OPENCV_DIR)\include puis cliquer «OK»

[54] puis Visionneuse

  • Revenir à la page des propriétés. Choisir «C/C++/En-têtes précompilés» puis cliquer «En-têtes précompilé» qui est prérenseigné avec une valeur par défaut.

[55] puis Visionneuse

  • Choisir l'option s «Sans utiliser les en-têtes précompilées». Remarque : l'option d'utiliser des fichiers à en-tête précompilés permet une compilation plus rapide mais en l'absence d'un paramétrage judicieux cette option peut conduire à des erreurs de compilation. Pour des petits programmes elle n'est pas nécessaire car le délai de compilation n'est pas long.
  • Cliquer «OK»

[56] puis Visionneuse - Paramétrer l'éditeur de liens

  • Dans la page des propriétés. Choisir «Editeur de liens/Général» puis cliquer «Répertoires de bibliothèques supplémentaires».

[57] puis Visionneuse

  • Saisir $(OPENCV_DIR)\x86\vc11\lib puis cliquer «Editeur de liens/entrée»

[58] puis Visionneuse

  • Cliquer «Dépendances supplémentaires»

[59] puis Visionneuse

  • Cliquer « <modifier…> »

[60] puis Visionneuse

  • Insérer le nom des bibliothèques qui sont nécessaires à l'éditeur de liens en mode Release : opencv_calib3d2411d.lib,  opencv_contrib2411d.lib,  opencv_core2411d.lib,  opencv_features2d2411d.lib,  opencv_flann2411d.lib,  opencv_gpu2411d.lib,  opencv_highgui2411d.lib,  opencv_imgproc2411d.lib,  opencv_legacy2411d.lib,  opencv_ml2411d.lib,  opencv_nonfree2411d.lib,  opencv_objdetect2411d.lib,  opencv_ocl2411d.lib,  opencv_photo2411d.lib,  opencv_stitching2411d.lib,  opencv_superres2411d.lib,  opencv_ts2411d.lib,  opencv_video2411d.lib, et  opencv_videostab2411d.lib (remarque : les bibliothèques .lib qui possèdent le même nom mais complété avec un d sont utilisées en mode Debug. Elles ne sont donc pas nécessaires ici puisqu'on a chosi le mode release)
  • Cliquer OK»

[61] puis Visionneuse

  • Cliquer «Fichier/Enregistrer tout» pour enregsitrer le projet ainsi que les paramétrages associés.

Créer un programme simple

[62] puis Visionneuse - Ecrire le programme

  • Placer préalablement une image nommée "mon-image.png" sur «D:» puis insérer le code source suivant dans la fenêtre du projet.

  • #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/core/core.hpp"
    #include ‹iostream›
    using namespace cv;
    using namespace std;
    int main( int argc, const char** argv )
    {
    Mat img = imread("D:/mon-image.png", CV_LOAD_IMAGE_UNCHANGED);
    if (img.empty())
    {
    cout ‹‹ "Error : Image cannot be loaded..!!" ‹‹ endl;
    return -1;
    }
    namedWindow(”MyWindow”, CV_WINDOW_AUTOSIZE);
    imshow(”MyWindow”, img);
    waitKey(0);
    destroyWindow(”MyWindow”);
    return 0;
    }

[63] puis Visionneuse - Compiler et exécuter le programme

  • Cliquer «GENERER/Générer la solution»

[64] puis Visionneuse

  • Vérifier le compte rendu de compilation et d'édition des liens, en bas de la fenêtre. Ici il n'y a pas eu d'erreur.

[65] puis Visionneuse

  • Cliquer «DEBOGUER/Exécuter sans débogage»

[66] puis Visionneuse

  • L'image "D:/mon-image.png" s'affiche dans la fenêtre du programme