IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Afficher une image grâce à un tableau de pixels


Sujet :

OpenCV

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut Afficher une image grâce à un tableau de pixels
    Bonjour à tous,

    J'ai un tableau où chaque élément correspond à l'intensité d'un pixel. Je souhaiterai afficher dans une fenêtre l'image associée mais je ne sais pas comment faire ceci. Pouvez vous m'aidez s'il vous plaît ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Bonjour,
    Si tu travaille avec la version d'OpenCV 2.4 et que tes tableaux sont de type Mat alors il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imshow( "nom de fenetre", image);
    ici "image" etant ton tableau de pixel de type Mat.

    bonne continuation.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 421
    Points : 95
    Points
    95
    Par défaut
    mon tableau est de type double.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    J'ai pas exactement tout saisi ce que tu veux faire avec ton image et ce que tu fais avant de vouloir l'afficher.
    De plus, il faut que tu saches avec quelle version d'OpenCV tu travailles pour savoir quelle syntaxe utiliser.

    Si tu lis l'anglais : http://opencv.itseez.com/doc/tutoria...lay_image.html site de référence de la dernière version. N'hésite pas à fouiller tu triuveras un tas d'explications et de tutoriels.

    Bonne chance!

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 67
    Points
    67
    Par défaut
    Salut,
    Depuis quelques versions maintenant, l'objet "à tout faire" dans OpenCV (calcul, manipulation, stockage, affichage) c'est cv::Mat. Ce n'est ni plus ni moins que la représentation d'une matrice.
    Comme tu as déjà les valeurs des pixels dans un tableau (je suppose que les valeurs sont comprises entre 0 et 1 si ce sont des doubles, sinon il faudra qu'elles le soient), le constructeur de cv::Mat qui va t'intéresser est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)
    qui te permettra de lui donner en param ton tableau de valeurs. Pour rows et cols, ça se passe de commentaire, et pour type, c'est un define de la forme suivante:
    CV_<bit_depth>(S|U|F)C<number_of_channels>

    S = Signed integer
    U = Unsigned integer
    F = Float

    E.g.:
    CV_8UC1 means an 8-bit unsigned single-channel matrix,
    CV_32FC2 means a 32-bit float matrix with two channels.
    source (tu peux d'ailleurs jeter un coup d'oeil au reste de cette page)

    Je suppose de nouveau que ton image est en niveau de gris, donc une valeur par pixel, et donc 1 seul canal, et un double étant normalement sur 64 bits (je ne connais pas la plateforme sur laquelle tu dev), je te laisse deviner le define à utiliser!

    Attention, si par contre ton tableau contient 3 valeurs par pixel pour coder le RGB, OpenCV code par contre en BGR! Il faudra dans ce cas que tu swap d'abord la 1e et 3e valeur de chaque pixel dans ton tableau.

Discussions similaires

  1. Réponses: 40
    Dernier message: 20/06/2012, 19h08
  2. [Turbo Pascal] Charger une image dans un tableau de pixels
    Par nelbardi dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 16/04/2009, 22h41
  3. Réponses: 3
    Dernier message: 15/12/2007, 16h56
  4. [Débutante] Afficher une image avec 2 données par pixel
    Par diana82 dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 19/09/2007, 01h55
  5. afficher une image dans un tableau
    Par phpaide dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/04/2006, 12h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo