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 :

transformée de Census


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2013
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 221
    Par défaut transformée de Census
    je cherche à coder la transformée de Census avec C

    En effet,Je prends une image , j'ajoute des 0 aux bords pour avoir des fenêtres 3x3 complets. je prends chaque bloc, je compare la valeur du voisinage du pixel central ( pixel à apparier), si c'est inférieur la valeur sera 1 et si c'est supérieur donc c'est zéro. puisqu'il y a 8 voisins, j'aboutis à un vecteur de 8 valeurs binaires

    prière de m'aider

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Tu utilises quelle librairie pour charger ton image ?

  3. #3
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2013
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 221
    Par défaut
    j'utilise la bibliothèque SDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageDroite = SDL_LoadBMP("lacD.bmp");

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Dans la SDL_SURFACE tu peux récupérer le pointeur sur l'image chargée. Ensuite tout dépend du format de l'image au départ.
    Si on part du principe que tu travailles avec une image codée sur 24 bits (3 couleurs) Chaque "paquet" de 3 octets représente un pixel (codé sous la forme BGR et non RGB). À partir de là ce n'est qu'une petite gymnastique mathématique pour obtenir des coordonnées cartésiennes pour chaque pixel.

    Où est exactement ton problème ?

  5. #5
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2013
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 221
    Par défaut
    si je prends l'image en niveau de gris, comment prendre un voisinage 3*3 ? comment ajouter les 0 à la frontière et enfin après les comparaisons comment enregistrer les valeurs des 8 cases dans un seul vecteur pour chaque pixel de l'image de départ ?
    et merci bien

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Donc si ton image est en niveau de gris on considère que chaque pixel est codé sur un seul octet.

    La structure de la SDL_SURFACE (ici) te donne accès au pointeur void *pixels;. Ce pointeur correspond au premier octet du tableau de l'image décompressée en mémoire.

    Ainsi pixel[0] te donne accès au premier octet de l'image (en haut à gauche).

    Pour pouvoir ajouter des 0 à la frontière tu ne pourras pas le faire directement avec ce pointeur. Il va te falloir déterminer et allouer un nouveau tableau qui aura la bonne taille dans lequel tu vas recopier l'original avec les 0 supplémentaires nécessaires.

    Remarque :

    Dans ce nouveau tableau tu pourras affecter directement le résultat de ton calcul pour chaque matrice 3x3.

Discussions similaires

  1. [PERL] transformation de fichier
    Par bob20000 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 11h13
  2. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 08/11/2002, 22h55
  3. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 20h46
  4. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 23/05/2002, 16h35

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