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 :

Compréhension Interpolation Bicubique


Sujet :

Traitement d'images

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Points : 42
    Points
    42
    Par défaut Compréhension Interpolation Bicubique
    Bonjour, même si le titre de ce sujet a déja été écrit, ma question est autrement différente. J'ai cherché sur internet des cours ou des exemple d'algo d'interpolation bicubique mais je n'ai rien trouvé de concret. J'aimrai comprendre clairement cette méthode. J'ai lu qu'il fallit utilisé les variation du pixel (,???), mais que aussi qu'on pouvait faire l'interporlation avec les pixels autour...enfin bref je ange dans le flou total......Help ! Please .

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Primo intérêt pour au moins 3 points.

    Principe de fond :

    L'interpolation la plus simple est la linéaire : si on veut un point x,y entre x1,y1 et x2,y2, on calcule le point sur la droite reliant ces 2 points.

    Problème : système "haché" (discontinu) à chaque sommet.

    Les courbes cubiques (en x^2 et y^2) (ellipses, paraboles, hyperboles) permettent une variation géométrique "souple" entre 2 points

    A certaines conditions, à cause de l'ordre 2, et comme leurs dérivées sont linéaires, on peut s'arranger poiur que ces dérivées s'annulent au point de contact entre 2 segments : on a donc une tangente horizontale : les 2 courbes se rencontrent de manière "homogène" d'un côté et de l'autre d'un point.

    A cause de cette particularité, les dérivées secondes sont des constantes. Or cette dérivée seconde représente la courbure. On peut donc AUSSI s'arranger pour que les dérivées secondes soient égales entre les 2 côtés d'un point de contact, donnant ainsi une courbure homogène de part et d'autre.

    En résumé , les interpolations cubiques garantissent la continuité de la tangente ET de la courbure au point de contact, ce qui est non seulement une condition pour que l'apparence de la courbe soit esthétique, mais correspond auss à la réalité physique (la nature autour de nous est continue).

    Comme exemples, tu peux chercher splines, Bézier, bicubiques, sur Google....



    NOTE: je cite "les interpolations cubiques", mais ce sont celles correspondant aux algos cités, car n'importe quelle cubique ne fera pas l'affaire, car comme je l'ai dit il faut imposer les 2 conditions de continuité. Le fait d'avoir des cubiques fourni juste un moyen "relativement" simple de paramétriser la dérivée première et de calculer la dérivée seconde, et donc de trouver la solution..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    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 081
    Points
    16 081
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Les courbes cubiques (en x^2 et y^2) (ellipses, paraboles, hyperboles) ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 54
    Points : 42
    Points
    42
    Par défaut
    euh j'allais poser la même question. En fait je veux faire du upsampling. Et je lis qu'il faut 16 point, dans d'autre 12 et sinon c'est pas important, enfin bref ce flou artistique me trouble, autant naviguer sans feux dans le brouillard.....criss !!

  5. #5
    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 081
    Points
    16 081
    Par défaut
    Citation Envoyé par RKOCOCO Voir le message
    En fait je veux faire du upsampling. Et je lis qu'il faut 16 point, dans d'autre 12 et sinon c'est pas important
    Tout le monde a raison...

    Comme on s'en doute, il y a une infinité d'interpolation possible. Après tout il s'agit d'inventer des valeurs pour des coordonnées non entières.

    L'interpolation bicubique "par morceaux" contraint ces valeurs a s'écrire sous la forme d'un polynôme de degré 3:

    P(x,y) = a00 + a10.x + a01.y + ... + a32.x^3.y^2 + a33.x^3.y^3

    avec (x,y) un couple de réels variant entre i<=x<=i+1 et j<=y<=j+1 (i,j sont des entiers = les coordonnées des pixels connus)

    Soit un total de 16 coefficients à "imaginer".

    Comme c'est une interpolation, il est souhaitable () que pour la valeur (x,y)=(i,j) on obtienne la vraie valeur connue de l'image du pixel(i,j). Idem pour les 4 autres coins. Cela nous fait donc 4 contraintes...

    Il nous reste tout de même une infinité de polynômes possibles. On peut donc en prendre un au pif, ou se rajouter des contraintes pour diminuer les possibilités...

    ...donc tout le monde a raison.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    vivi

    j'etais vraiment pas bien reveille ce matin... desole...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Pourquoi ne pas aller voir dans "Numerical Recipes" où tu trouveras l'explication de l'algorithme avec le listing des deux sous-programmes correspondants ?

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2007
    Messages : 27
    Points : 33
    Points
    33
    Par défaut splines
    Salut RKOCOCO,

    Je te conseille l'excellent travail de Michael Unser et de son équipe sur le sujet de l'interpolation (entre autres) à l'aide de splines :
    http://bigwww.epfl.ch/publications/unser9902.html

    Si tu as la possibilté de récupérer cet article, commence par celui-ci. Sinon, tu peux jeter un coup d'oeil à ses présentations qui sont très très bien faites,
    http://bigwww.epfl.ch/reviews.html

    ou au code ImageJ produit par un de ses étudiants
    http://bigwww.epfl.ch/algorithms/ijplugins/resize/

    Le sujet est un peu mathématique, je te le concède, mais tu n'auras rien sans un peu d'investissement de ta part

  9. #9
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    Salut pseudocode!!

    L'interpolation bicubique "par morceaux" contraint ces valeurs a s'écrire sous la forme d'un polynôme de degré 3:

    P(x,y) = a00 + a10.x + a01.y + ... + a32.x^3.y^2 + a33.x^3.y^3

    avec (x,y) un couple de réels variant entre i<=x<=i+1 et j<=y<=j+1 (i,j sont des entiers = les coordonnées des pixels connus)
    J'ai trouvé plusieurs documents sur l'interpolation bicubique mais je n'ai trouvé aucun qui donne une explication simple

    J'aimerais bien savoir si j'ai raison :

    P(x,y) -> représente le pixel de l'image interpolée
    a00....a33 -> représentent les valeurs des 16 pixels de l'image initiale
    Pourquoi x et y varient comme ça : i<=x<=i+1 et j<=y<=j+1?

    Merci.
    Si vous acceptez vos possibilités présentes, vous progresserez certainement à l'avenir. en revanche si vous niez vos limites, vous ne vous en libérerez jamais.

  10. #10
    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 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Lost in Voir le message
    Salut pseudocode!!
    Je suppose que c'est une question pour moi ?

    J'aimerais bien savoir si j'ai raison :

    P(x,y) -> représente le pixel de l'image interpolée
    Oui.

    a00....a33 -> représentent les valeurs des 16 pixels de l'image initiale
    Non. ce sont des coefficients réels propre à la fonction d'interpolation

    Pourquoi x et y varient comme ça : i<=x<=i+1 et j<=y<=j+1?
    Le principe de l'interpolation c'est d' "imaginer" les valeurs de l'image pour des coordonnées non entieres, c'est à dire entre 4 pixels (i,j) (i+1,j) (i,j+1) (i+1,j+1).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre habitué Avatar de Lost in
    Inscrit en
    Janvier 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 268
    Points : 126
    Points
    126
    Par défaut
    Salut à tous !!

    J'ai fait plusieurs recherches sur google pour trouver la manière avec laquelle on calcule les coefficients réels propre à la fonction d'interpolation, malheureusement je n'ai rien trouvé

    Vous n'auriez pas un lien magique qui puisse m'aider

    A+
    Si vous acceptez vos possibilités présentes, vous progresserez certainement à l'avenir. en revanche si vous niez vos limites, vous ne vous en libérerez jamais.

  12. #12
    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 081
    Points
    16 081
    Par défaut
    Il ne faut pas aller très loin:

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

    (les formules sont données dans le post #4)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. interpolation bicubique : help
    Par ale2000 dans le forum Traitement d'images
    Réponses: 30
    Dernier message: 14/07/2007, 19h53
  2. [FLASH MX] Interpolations de formes
    Par SamDaKap dans le forum Flash
    Réponses: 7
    Dernier message: 13/04/2005, 16h12
  3. une interpolation de forme est elle possible
    Par tetsuo chima dans le forum Flash
    Réponses: 3
    Dernier message: 07/10/2003, 16h31
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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