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 :

contenu d'un tableau


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut contenu d'un tableau
    bonjour à tous,
    svp, j'ai un problème. je suis entrain de programmer le méthode de tatouage réversible de Tian. c'est un algorithme qui permet d'ajouter une message à une image pour vérifier l’intégrité de cette l'image.
    c'est la première partie de code mais lorsque j'affiche le contenu du tableau hash[i] le résultat est totalement fausse
    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
    for (int i = 0; i < 256; i++)
    	{
    		fscanf(org, "%d", &coef);//lire les coefficients à  partir de fichier
    		t[i] = coef;
     
    	}
     
    	for (int j = 0; j < 256; j = j + 2)
     
    	{
    		l = (int)((t[j] + t[j + 1]) / 2);
     
    		h = t[j] - t[j + 1];
     
     
    		hash[j] = t[j] - t[j + 1];
     
    	}
     
    	/****************************************************conversion de difference h en binaire*************************/
    	for (int i = 0; i < 128; i++)
    	{
     
    		printf("%d\n", hash[i]);
    	}
    et voilà:
    -858993460
    0
    -858993460
    0
    -858993460
    -3
    -858993460
    1
    -858993460
    0
    -858993460
    -1
    -858993460
    0
    -858993460
    2
    -858993460

  2. #2
    Membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Par défaut
    Salut,
    ton image est encodé en fichier texte ? (tu utilises fscanf)
    Ca me parait bizare une image en fichier texte, si c'est bien le cas, t'es sur du format.
    Tu peux nous poster ton fichier source ?

    Quel sont les types utilisés pour l,h,t et hash ?

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    -858993460, c'est 0xCCCCCCCC: La valeur "magique" de débogage pour les variables locales non-initialisées.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Par défaut salut
    j'ai utilisé juste des coefficients issues de transformation en ondelette c'est pourquoi je le lit à partir d'un fichier.

  5. #5
    Membre émérite Avatar de SkyZoThreaD
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2013
    Messages
    585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 585
    Par défaut
    Ce code est-il contigu? Peut-être que "hash" n'est pas le même quand tu le remplis et quand tu le lis?
    Peux-tu commenter un peut le code de ton algo aussi? Des variable i, j, l , h, t c'est déjà pas très parlant

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par parnasse Voir le message
    j'ai utilisé juste des coefficients issues de transformation en ondelette c'est pourquoi je le lis à partir d'un fichier.
    Oui mais hampoireau a posé une question très pertinente à laquelle tu n'as pas répondu. fscanf() c'est pour lire un fichier texte, dans lequel la valeur "123" sera écrite sur 3 caractères "1" "2" "3" (soit 0x41 0x42 0x43 en ascii).
    Une image est généralement stockée dans un fichier binaire, dans lequel la valeur "123" sera stockée sous forme binaire c'est à dire 0x7B (un seul caractère). Et la façon de récupérer ces valeurs ne passe absolument pas par fscanf()...

    PS: remplir "coef" puis écrire juste en dessous t[i]=coeff c'est franchement nul. T'aimes les instructions inutiles ? Quand tu vas acheter du pain, est-ce que tu fais passer la monnaie de la poche droite vers la poche gauche avant de la donner ?? Peut pas remplir directement t[i] ??? Et on atteint le ponpon avec ton l = (int)((t[j] + t[j + 1]) / 2); h = t[j] - t[j + 1] avec son cast inutile dans lequel tu fais deux opérations de calcul où chacune d'elle demande de nombreux accès sur des tableaux (accès super longs car pour accéder à t[i] il faut partir de "t" puis décaler de "i" cases) pour remplir des variables que tu n'utilises pas. Jamais tu penses avant de coder ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Afficher le contenu d'un tableau
    Par hayam_kin dans le forum C
    Réponses: 9
    Dernier message: 25/04/2006, 21h16
  2. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12
  3. effacer contenu d'un tableau
    Par mrtatou dans le forum C
    Réponses: 8
    Dernier message: 06/02/2006, 13h35
  4. Voir le contenue d'un tableau glob
    Par goblin dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 09h56
  5. Réponses: 15
    Dernier message: 02/12/2005, 17h12

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