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

Traitement d'images Discussion :

Calcul de la variance d'un bloc


Sujet :

Traitement d'images

  1. #1
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut Calcul de la variance d'un bloc
    J'aimerais calculer la variance d'un block 8x8 pixels de la manière la plus efficace possible.
    La formule que j'ai est donnée dans le fichier var.png.
    Si je l'implémente telle que, ça ne va pas être efficace du tout .

    Merci d'avance de vos suggestions
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est quoi F(u,v) ? Pourquoi (u,v) != 0 ??

  3. #3
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Ah ben oui, pardon...
    C'est un bloc issu d'une DCT.
    Le bloc 0,0 est le coefficient DC, donc inutile pour ce calcul (il le fausse d'ailleurs).
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  4. #4
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    c'est pas trop ce que j'avais comme fonction pour la variance...

    Sinon, en imagerie, c'est rare de pouvoir faire autrement que d'appliquer les formules...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par progfou
    Ah ben oui, pardon...
    C'est un bloc issu d'une DCT.
    Le bloc 0,0 est le coefficient DC, donc inutile pour ce calcul (il le fausse d'ailleurs).
    Normal, c'est la moyenne, et la variance, c'est justement la somme des différences à la moyenne au carré.

  6. #6
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Bon, je considère que c'est résolu, ce que je fais c'est que mon tableau est linéaire et je fais commencer mon indice à 1 jusqu'à 64, du coup, ça va assez vite.

    J'ai une autre question, mais je ne sais pas où la poser...
    J'ai une matrice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    M= [
    1    -1.265    1    -0.632
    0    0    0    0
    0    0    0    0
    0    0    0    0 ]
    Comment faire pour obtenir une matrice uniquement entière, afin d'avoir une multiplication la plus rapide possible ?
    Parce que la seule chose que je vois pour le moment, c'est :
    -1.265 = -1265/1000

    On peut mieux faire, avec des puissances de 2, non ?
    Les erreurs, si elles sont minimes, ne me gênent pas.
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est plus vraiment le cas, l'histoire de la rapidité. Et par exemple si tu utilises un programme tel que Matlab, de tout manière tout est en double.

  8. #8
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Comme d'habitude, implémentation embarquée, limitée en puissance, multiplication couteuse...
    J'ai une solution, mais je ne sais pas si c'est bien, et si c'est "automatisable" (un algo qui prend ma matrice dans matlab et qui me développe comme ça) :
    Faire en sorte que la décomposition soit optimale ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Dans ce cas, c'est vraiq ue ça peut être mieux
    Matlab ne te fait pas de truc de ce genre, peut-être Mathematica ? MAis je ne pense pas non plus

  10. #10
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Sinon, ça ne doit pas être trop difficile à faire...
    En faisant une série de comparaison...
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Points : 231
    Points
    231
    Par défaut
    heu... pour trouver la décomposition en fractions, il va falloir faire des divisions, non ? Les valeurs sont quelconques ? Si oui, ça risque d'être très coûteux ?

  12. #12
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Non, ce que je veux faire, c'est faire cette division en fractions avec un autre programme, pour trouver les valeurs les plus proches à une précision donnée.
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Points : 231
    Points
    231
    Par défaut
    Je n'ai pas bien compris en quoi avoir 1/2 + 1/8 est plus rapide à traiter que 625/1000 (ou 5/8) ?

  14. #14
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Multiplier par un nombre non multiple de 2 prend, sur mon processeur, 10 cycles environ.
    Un décalage me coûte un cycle...
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Points : 231
    Points
    231
    Par défaut
    Ok. Au risque de paraître lourd ou curieux, les calculs ne vont pas être beaucoup plus compliqués comme ça ?
    Parce que, par exemple pour une multiplication d'une matrice par celle-ci, la gestion des "listes" de fractions qui correspondent à un seul nombre va certainement prendre plus de temps qu'une simple multiplication.
    Juste deux-trois idées comme ça :
    - pour que le décalage soit utilisable, il faut multiplier par 2 ou 8..., et pas par 1/2 ou 1/8... Les inversions des nombres "source" et du résultat à faire doivent coûter cher ??
    - si on compte uniquement le temps d'adressage des différents éléments avant le décalage, on a certainement souvent dépassé les 9 cycles gagnés ??
    - la précision sera limitée par le nombre de fractions maximales possibles pour que la gestion des listes ne soient pas trop lente, donc à mon avis beaucoup ??

Discussions similaires

  1. calcul de la variance du bruit d'interférence?
    Par eclipse2007 dans le forum Mathématiques
    Réponses: 0
    Dernier message: 23/01/2011, 11h06
  2. calcul de la variance d'une image
    Par fattouna dans le forum Images
    Réponses: 1
    Dernier message: 22/07/2009, 02h26
  3. crxi - calcul de la variance
    Par campia dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 03/02/2009, 11h08
  4. Calcul de la variance d'une image
    Par bipame dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 22/01/2009, 03h08
  5. calcul de la variance
    Par ram-0000 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/07/2008, 17h00

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