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 :

commenter un programme


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Points : 18
    Points
    18
    Par défaut commenter un programme
    bonjour
    notre chargé de TD nous a donné pour devoir de commenter ce programme, il cherche à vérifier que nous avons bien compris comment le chapitre sur le traitement des images, mais je n'était pas la à son dernier cours, je ne comprends donc pas grand chose à ce programme, quelqu'un pourrait il m'aider à le commenter ?
    voici le programme

    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
     
    image_t *convoluer(image_t *src, noyau_t *pn)
    	{
    	image_t* dst;
    /*test si src ou pn est NULL ou pas*/
    	if(!src || !pn){
    	printf("image ou noyau inexistants");
    	return NULL;
    	}
    /* copier l'image src dans dst*/
    	dst=copier_image(src);
    	int i,coef_norm=0;
    	for(i=0;i<(pn->dim)*pn->dim;++i) 
    	        coef_norm+=pn->coeffs[i];
    	int j,ni,nj,ibord,jbord;
    	int dim=pn->dim;
    	for(i=0;i<src->h;++i){
    	        for(j=0;j<src->w;j++){
    	          int val_cov=0;
    	          for(ni=0;ni<dim;ni++){
    	           for(nj=0;nj<dim;nj++){
    	            ibord=i+ni-(dim>>1);
    	            if(ibord<0) ibord=0;
    	            if(ibord>=src->h) ibord=src->h-1;
    	            jbord=j+nj-(dim>>1);
    	            if(jbord<0) jbord=0;
    	            if(jbord>=src->w) jbord=src->w-1;
    	            val_cov+=VAL(src,ibord,jbord)*(pn->coeffs[ni*dim+nj]);
    	           }
    	          }
    	          if(coef_norm!=0){
    	          VAL(dst,i,j)=abs(val_cov)/coef_norm;
    	        }
    	        else{
    	         VAL(dst,i,j)=abs(val_cov);
    	         }
    	       }
    	}
    	return dst;     
    	}
    merci d'avance de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faudrait d'abord savoir ce que TOI tu n'arrives pas à commenter, et donc ne comprends pas.
    Dernière modification par Invité ; 05/11/2012 à 18h56.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Concrètement, il s'agit de faire ceci :

    http://docs.gimp.org/fr/plug-in-convmatrix.html

    En principe, tu devrais en savoir assez pour voir de quelle manière le programme que tu nous présentes parvient à ce résultat. Si ce n'est pas le cas, donne-nous plus de détails et dis-nous où tu coinces.

    On fera tout notre possible pour t'aider, mais on ne fera pas l'exercice à ta place. ;-)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    j'ai commenté les deux premières lignes mais le reste est flou, vu que je n'était pas en cours la semaine dernière car jétais malade, c'est un peu difficile pour moi de rattraper le retard car le cours va super vite.
    j'ai oublié de mettre les structures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct
    	{
    	unsigned long w; // largeur en pixels
    	unsigned long h; // hauteur en pixels
    	char *path; // le chemin absolu du fichier correspondant
    	unsigned char *buff; // w x h octets correspondant aux pixels
    	} image_t;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    typedef struct
    	{
    	unsigned int dim;
    	int *coeffs;
    	} noyau_t;
    oui merci pour le tuyau j'avais deja regarder un peu ce site la aussi

  5. #5
    Invité
    Invité(e)
    Par défaut
    Comme tu peux le voir avec le nom de la fonction, et par le lien de Obsidian, c'est bêtement l'opération de convolution par le noyau pn qui est appliquée sur ton image src, le résultat étant mis dans dst.

    Maintenant il va falloir être plus précis sur ce qui te pose problème
    Si c'est la convolution (point de vue traitement image) je te conseille de taper ce mot sur un moteur de recherche, où tu trouveras une foule de résultats.
    Si c'est plutôt le langage C, la lecture de cours ne sera pas de trop.

    EDIT: Désolé Obsidian
    Dernière modification par Invité ; 05/11/2012 à 20h52.

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    EDIT: Désolé Obsidian
    (Aucun problème ;-) ).

Discussions similaires

  1. sparse comment la programmer en c++
    Par hamoudasafira dans le forum C++
    Réponses: 3
    Dernier message: 12/01/2007, 00h20
  2. Comment bien programmer en C ?
    Par lastrecrue dans le forum C
    Réponses: 14
    Dernier message: 12/07/2006, 12h44
  3. [TP] Aide pour commenter un programme
    Par justind1989 dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 06/04/2006, 19h11
  4. [C#] Comment correctement programmer orienté objet ?
    Par ChristopheOce dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2006, 13h22
  5. Comment sont programmés les plug-ins de jeux
    Par Marneus dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 25/11/2005, 18h01

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