Afficher une image avec OpenCV

Comment afficher une image avec le paquet OpenCV, la première étape avant le traitement sur des images. 

Afin de commencer à appréhender OpenCV, nous allons voir comment afficher une image dans une fenêtre, cela nous permettra de voir plusieurs points :

  • Afficher une fenêtre
  • Charger une image
  • Attendre une action sur une touche
  • Libérer les ressources

Dans ces différents points, il y en aura que l’on retrouvera tout le temps, afficher une fenêtre, attendre une action et libérer les ressources.
Nous allons voir ce code, point par point (il est court et sans difficulté), il provient d’un document mis en ligne en anglais.

Installation d’OpenCV

Cela va sans dire, il faut que OpenCV soit installé, les liens pour l’installation sont présents sur mon site la-programmation.surleweb-france.fr.

Script pour afficher une image

Le format d’image

OpenCV permet l’utilisation d’un nombre de format d’image suffisant pour la majorité d’utilisation (BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS, and TIFF).
Dans un nouveau dossier, vous allez placer une image :

image d'exemple
image d’exemple

Le script

Maintenant avec votre éditeur favori, créer un fichier afficher_image.cpp .

A l’intérieur, commencer par saisir la bibliothèque, il s’agit de l’endroit où sont stockés les différentes commandes que nous allons utiliser:

#include "highgui.h"

Nous allons maintenant commencer le corps du programme (pour l’apprentissage du C++, plusieurs tutoriels sont disponibles sur internet:

#include "highgui.h"

int main( int argc, char** argv ){
     //ici, il y aura notre programme
}

Nous allons attaquer le script, tout d’abord, on va charger l’image, l’image provient du chemin qui sera mis dans l’argument de la commande :

#include "highgui.h"

int main( int argc, char** argv ){
     IplImage* img = cvLoad( argv[1], CV_LOAD_IMAGE_COLOR );
}

Nous créeons notre fenêtre et la nommons, cette fenêtre prendra la taille de l’image qu’elle comportera et se nommera (dans notre cas) « Test d’affichage d’une image » :

#include "highgui.h"

int main( int argc, char** argv ){
     IplImage* img = cvLoad( argv[1], CV_LOAD_IMAGE_COLOR );
     cvNamedWindow( "Test d'affichage d'une image", CV_WINDOW_AUTOSIZE );
}

Maintenant, nous allons afficher notre fenêtre, il suffit de dire le nom de la fenêtre utilisée ainsi que la variable que l’on veut afficher :

#include "highgui.h"

int main( int argc, char** argv ){
     IplImage* img = cvLoad( argv[1], CV_LOAD_IMAGE_COLOR );
     cvNamedWindow( "Test d'affichage d'une image", CV_WINDOW_AUTOSIZE );
     cvShowImage( "Test d'affichage d'une image", img );
}

Pour laisser cette image affichée, nous allons indiquer que nous attendons une action sur une touche :

#include "highgui.h"

int main( int argc, char** argv ){
     IplImage* img = cvLoad( argv[1], CV_LOAD_IMAGE_COLOR );
     cvNamedWindow( "Test d'affichage d'une image", CV_WINDOW_AUTOSIZE );
     cvShowImage( "Test d'affichage d'une image", img );
     cvWaitKey(0);
}

Et pour finir, nous allons libérer les ressources utilisées par l’image et par la fenêtre :

#include "highgui.h"

int main( int argc, char** argv ){
     IplImage* img = cvLoad( argv[1], CV_LOAD_IMAGE_COLOR );
     cvNamedWindow( "Test d'affichage d'une image", CV_WINDOW_AUTOSIZE );
     cvShowImage( "Test d'affichage d'une image", img );
     cvWaitKey(0);
     cvReleaseImage( &img );
     cvDestroyWindow( "Test d'affichage d'une image" );
}

Voila pour le script, il est simple et permet de commencer tranquillement avec OpenCV.

Compilation du script

Le script réalisé, il faut le compiler pour pouvoir l’utiliser, commencer par éditer un nouveau fichier Makefile  et y insérer le code suivant :

all:
     g++ -O2 -Wall -o afficher_image afficher_image.cpp `pkg-config --cflags --libs opencv`
clean:
     rm -rf afficher_image

Ensuite, dans un terminal et après vous être placer dans le dossier contenant le Makefile et le script, exécuter :

sudo make

La compilation se passe bien.

Exécuter votre programme

Dans un terminal, placer vous dans votre dossier contenant l’ensemble des fichiers, si vous avez utilisé le même nom, cela donne :

sudo ./afficher_image mon_image.ext

Remplacer par le nom de votre fichier.

Le résultat d’afficher une image avec OpenCV

Voilà ce que cela donne :

Laisser un commentaire