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

C Discussion :

recupérer les plans rgb d'une image dans 3 images a 1 plan


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut recupérer les plans rgb d'une image dans 3 images a 1 plan
    Bonjour, j'aurais besoin d'aide pour mon projet. Je fais de la restauration d'image, je l'ai réalisé sous matlab et maintenant je cherche a le faire en C mais je n'arrive pas à récupérer les 3 composantes d'un pixel. J'ai essayé plusieurs techniques décrites dans le forum mais rien a fonctionné. Peut être que je ne m'y prend pas comme il faut. Voici le début de mon code



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    #include <stdio.h>
    #include <stdlib.h>
    #include <cv.h>
    #include <cvaux.h>
    #include <highgui.h>
     
     
    int main(int argc, char *argv[])
    {
     
    IplImage *im, *r, *g, *b;
    int i=0,j=0,l,c;
     
    /* 1 => 3 canaux (0 => 1 seul, -1 => automatique) */
    im = cvLoadImage("rome1.png", 1);
     
    l = im[0].width;
    c = im[0].height;
     
    r = cvCreateImage(cvSize(l,c), im[0].depth, 1);
    g = cvCreateImage(cvSize(l,c), im[0].depth, 1);
    b = cvCreateImage(cvSize(l,c), im[0].depth, 1);
     
    for(i=0;i<l;++i)
    {
       for(j=0;j<c;++j)
       {
          r->imageData[j,i]= im->imageData[i*im->widthStep+j*im->nChannels];
          g->imageData[j,i]= im->imageData[i*im->widthStep+j*im->nChannels+1];
          b->imageData[j,i]= im->imageData[i*im->widthStep+j*im->nChannels+2]; 
       }                
    } 
     
    cvReleaseImage(&im);
    cvReleaseImage(&r);
    cvReleaseImage(&g);
    cvReleaseImage(&b);
     
      system("PAUSE");	
      return 0;
    }

    merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Ce code est incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          r->imageData[j,i]= ...
          g->imageData[j,i]= ...
          b->imageData[j,i]= ...
    - on n'écrit pas en C de cette façon, tab[j,i], pour accéder à un tableau 2D mais tab[j][i]

    - imageData n'est pas un tableau 2D mais un tableau 1D de char. Il faut pour accéder aux éléments de ce tableau 1D calculer la position de l'élément i,j de l'image (D'ailleurs, tu fais un calcul de ce genre au membre à droite de = dans ces expressions dans ton programme)

    - sauf erreur de ma part, l'ordre n'est pas rgb, mais bgr
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

Discussions similaires

  1. [Débutant] Afficher les composantes RGB d'une image dans un repère (R, G, B)
    Par AchèresXV dans le forum Images
    Réponses: 4
    Dernier message: 16/10/2014, 10h19
  2. les valeurs RGb d'une image
    Par lifemimi dans le forum Images
    Réponses: 1
    Dernier message: 29/04/2012, 10h01
  3. Réponses: 6
    Dernier message: 07/04/2006, 01h10
  4. affichage d'un plan issu d'une vidéo dans un tpanel
    Par gerardTar dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/07/2005, 16h11
  5. Combler les trous lors d'une suppression dans une table
    Par Billybongjoe dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/04/2004, 14h02

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