Projet console Visual C++ 2010 avec OpenCV

Transcription

Projet console Visual C++ 2010 avec OpenCV
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
<cv.h>
#include
<highgui.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
Création d'une fenêtre quipermet
contiendra
l'image affichéeautomatiquement la fenêtre
// //
CV_WINDOW_AUTOSIZE
de redimensionner
permet
de redimensionner automatiquement la fenêtre
// //
enCV_WINDOW_AUTOSIZE
fonction des dimensions de
l'image
//
en
fonction
des
dimensions
de
l'image
cvNamedWindow("Premier exemple OpenCV", CV_WINDOW_AUTOSIZE);
cvNamedWindow("Premier exemple OpenCV", CV_WINDOW_AUTOSIZE);
//Affiche l'image dans la fenêtre crée précédemment
//Affiche l'image dans
la fenêtre crée précédemment
cvShowImage("allo",
imgsource);
cvShowImage("allo", imgsource);
// On attend que l'usager tape une touche pour continuer
attend
que l'usager tape une touche pour continuer
// //
0: On
temps
infini
temps infini
// //
!00:
: Temps
en millisecondes
//
!0
: Temps en millisecondes
cvWaitKey(0);
cvWaitKey(0);
// Libère les ressources de la fenêtre d'affichage
// Libère les ressources de la fenêtre d'affichage
cvDestroyWindow("Premier");
cvDestroyWindow("Premier");
// Libère les ressources reliées à la structure de l'image
// Libère les ressources reliées à la structure de l'image
cvReleaseImage(&imgsource);
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.