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 :

zoom extrapolation de pixels


Sujet :

Traitement d'images

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut zoom extrapolation de pixels
    Bonjour,
    Je suis sur un projet de décodage de code barre 1D via un appareil photo de téléphone portable.

    Je voulais savoir comment faire (algorithiquement parlant) pour faire un zoom.
    J'ai la valeurs des pixels sur une plage de 640, j aurais voulu avoir ces valeurs sur une plus grande echelle 1600 par exemple. d'ou la notion de zoom.

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    j'ai fait une contrib pour ca:

    http://www.developpez.net/forums/sho...d.php?t=331608

    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    merci pour ce lien,
    cependant j'aurais aimé avoir quelques précisions car je ne connais pas ce principe.(Interpolation spline cubique)

    comment fonctionne t il?

    De plus quel est le principe de l'interpolation plus proche pixel stp, cela m interesse.

    Merci

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Le principe general c'est de faire une regle de 3 pour connaitre les coordonnées "originales" a partir des coordonnées "zoomées".

    - Xorig varie entre 0 et 640
    - Xzoom varie entre 0 et 1600

    Formule de changement d'echelle:

    Xorig = Xzoom * 640 / 1600 = Xzoom * 0.4

    Donc, la couleur du pixel de coordonnée 10 dans l'image zoomée est egale a la couleur du pixel de coordonnée 10*0.4=4 de l'image d'origine.

    Le probleme c'est pour les valeurs non entieres. Par exemple, la couleur du pixel de coordonnée 3 dans l'image zoomée est egale a la couleur du pixel de coordonnée 3*0.4=1.2 de l'image d'origine.

    Or le pixel de coordonnée 1.2 n'existe pas. Donc on va approximer.

    Methode du Plus Proche Pixel: pixel[1.2] ---> pixel[1]

    Methode de la moyenne pondérée: pixel[1.2] ---> 0.8*pixel[1] + 0.2*pixel[2]

    Methode du spline cubique: pixel[1.2] ---> formule compliquée

  5. #5
    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,

    une méthode simple pour construire un zoom (sujet déjà traité plusieurs fois) c'est de faire l'opération inverse :
    - pour chaque pixels de ton image zoomée tu calcules quel est le pixel corerspondant de ton image d'origne.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    merci pseudocode pour ton explication très claire.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    Pour la méthode de la moyenne pondérée :

    Methode de la moyenne pondérée: pixel[1.2] ---> 0.8*pixel[1] + 0.2*pixel[2]
    Si pixel[1.7] on a : 0.3*pixel[1]+0.7*pixel[2] ?

    Question bete mais c'est juste pour etre sur d'avoir bien compris.

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par craryb
    Pour la méthode de la moyenne pondérée :



    Si pixel[1.7] on a : 0.3*pixel[1]+0.7*pixel[2] ?

    Question bete mais c'est juste pour etre sur d'avoir bien compris.
    oui tout a fait.

    pixel[1.7] = 30% de pixel[1] + 70% de pixel[2]

    ou plus generalement:

    pixel[x.a] = (1-0.a)*pixel[x] + 0.a*pixel[x+1]

    c'est l'approximation "lineaire". Comme generalement les images ont 2 dimensions et donc les pixels 2 coordonnées, on utilise l'approximation bi-lineaire:

    pixel[x.a][y.b] = (1-0.a)*(1-0.b)*pixel[x][y] + (0.a)*(1-0.b)*pixel[x+1][y] + (1-0.a)*(0.b)*pixel[x][y+1] + (0.a)*(0.b)*pixel[x+1][y+1]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 14h37
  2. [VB6][Graphisme] Zoom
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/10/2002, 17h30
  3. Zoom avec du TJPEG
    Par Thylia dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/06/2002, 16h03
  4. Réponses: 2
    Dernier message: 30/05/2002, 10h19
  5. URGENT : Zoom et changement de repère
    Par poca10 dans le forum MFC
    Réponses: 5
    Dernier message: 28/05/2002, 13h32

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