Table des matières Projet console Visual C++ 2010 avec OpenCV...2 Pré-requis...2 Création du projet...2 Configuration des options dans Visual Studio...3 Le squelette de base du programme OpenCV...4 Projet C# Windows Forms et OpenCV...6 Création du projet...6 Le squelette de base du programme OpenCV en C#...7
Projet console Visual C++ 2010 avec OpenCV Voici les étapes principales pour créer un projet OpenCV destiné à la console avec Visual C++ Studio 2010. Pré-requis Télécharger la librairie EmguCV. Elle contient toute la librairie OpenCV avec, en plus, la librairie nécessaire pour utiliser OpenCV avec C#. Cette librairie est disponible à l'adresse : http:sourceforge.net/projects/emgucv/files/emgucv/2.2.1/libemgucv-windows-x86-2.2.1.1150.exe/download Une fois la librairie installée, nous pouvons maintenant passer à l'élaboration du squelette d'un programme OpenCV en mode console. Création du projet Ouvrir VS 2010 C++ Express ou équivalent Créez un nouveau projet C++ «Application console Win32» comme montré ci-dessous : Dans les options, choisissez «Pas d'entêtes pré-compilés» et «projet vide». Ajoutez un nouveau fichier source «*.cpp» qui contiendra votre code de base.
Configuration des options dans Visual Studio Sélectionnez les propriétés du projet comme montré ci-contre (ovale rouge). Sous «Propriétés de configuration», choisissez «Répertoire VC++» et ajoutez un répertoire «include» suivant : C:\Emgu\emgucv-windows-x86 2.2.1.1150\include\opencv Ajoutez un «répertoire bibliothèque» suivant : C:\Emgu\emgucv-windows-x86 2.2.1.1150\lib Choisissez «Éditeur de liens», option «Entrée» et ajoutez les dépendances supplémentaires suivantes : «opencv_core220.lib» et «opencv_highgui220.lib» Allez dans le répertoire «C:\Emgu\emgucv-windows-x86 2.2.1.1150\include» et copiez le répertoire «opencv2» au complet. Ammenez la copie dans le même répertoire qui contient votre fichier «.cpp» du projet.
Le squelette de base du programme OpenCV Passons au code! Entrez le code suivant : #include <cv.h> #include #include <highgui.h> <cv.h> #include <highgui.h> using namespace std; Pour les cout peut-être?? using namespace std; Pour les cout peut-être?? #include <iostream> #include <iostream> int main() int main() IplImage *imgsource; La structure qui contient les informations de l'image IplImage *imgsource; La structure qui contient les informations de l'image imgsource = cvloadimage("mars.jpg"); Charge l'image passée en paramètre imgsource = cvloadimage("mars.jpg"); Charge l'image passée en paramètre Création d'une fenêtre qui contiendra l'image affichée CV_WINDOW_AUTOSIZE Création d'une fenêtre qui permet contiendra de redimensionner l'image affichée automatiquement la fenêtre en CV_WINDOW_AUTOSIZE fonction des dimensions de permet l'image de redimensionner automatiquement la fenêtre cvnamedwindow("premier en fonction des dimensions exemple de l'image OpenCV", CV_WINDOW_AUTOSIZE); cvnamedwindow("premier exemple OpenCV", CV_WINDOW_AUTOSIZE); Affiche l'image dans la fenêtre crée précédemment cvshowimage("allo", Affiche l'image dans imgsource); la fenêtre crée précédemment cvshowimage("allo", imgsource); On attend que l'usager tape une touche pour continuer 0: On temps attend infini que l'usager tape une touche pour continuer!0 0: : Temps temps infini en millisecondes cvwaitkey(0);!0 : Temps en millisecondes cvwaitkey(0); Libère les ressources de la fenêtre d'affichage cvdestroywindow("premier"); Libère les ressources de la fenêtre d'affichage cvdestroywindow("premier"); Libère les ressources reliées à la structure de l'image cvreleaseimage(&imgsource); Libère les ressources reliées à la structure de l'image cvreleaseimage(&imgsource); return 0; return 0;
On compile le tout et vous obtenez probablement un message d'erreur comme ci-dessous : Cette erreur provient du fait que les fichiers «dll» en question ne sont pas dans le répertoire qui contient votre fichier «.cpp» du projet. Copiez les fichiers «opencv_core220.dll» et «opencv_highgui220.dll» dans le répertoire contenant vos fichiers «*.cpp» du projet. Ces fichiers «dll» sont situés dans le répertoire «bin» de C:\Emgu\emgucv-windows-x86 2.2.1.1150\bin Voilà. L'image est affichée dans la fenêtre.
Projet C# Windows Forms et OpenCV Création du projet Ouvrir VS 2010 C# Express ou équivalent Créez un nouveau projet C# «Application Windows Forms» comme montré ci-dessous : Ajoutez la référence «Emgu.CV.dll» et «emgu.util.dll» comme ci-dessous :
Le squelette de base du programme OpenCV en C# Ajoutez le code suivant dans le formulaire, plus précisément dans la classe Form1 : using Emgu.CV.Structure; using Emgu.CV; using Emgu.Util; namespace OpenCV_WinForms_CS public partial class Form1 : Form private Image<Bgr, Byte> imgsource; private string NomFichierSource; public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) if (openfiledialog1.showdialog()!= DialogResult.Cancel) if (openfiledialog1.filename.length == 0) MessageBox.Show("Erreur"); else NomFichierSource = openfiledialog1.filename; imgsource = new Image<Bgr, Byte>(NomFichierSource); picturebox1.image = imgsource.tobitmap(); N'oubliez pas de copier le fichier «opencv_core220.dll» dans le répertoire debug et release.