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

Python Discussion :

Faire une Image anaglyptique


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Faire une Image anaglyptique
    Bonjour,
    J'aurais besoin d'aide pour faire a partir d'une image, un programme Python permettant de construire une image anaglyptique rouge-cyan.

  2. #2
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    j'ai déjà fait une image anaglyptique mais a partir de deux images et non une.

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    from PIL import Image
    im=Image.open("Image.jpg")
    im2=Image.open("Imagedecale.jpg")
    taille=im.size
    nbPixel=taille[0]*taille[1]
    data=list(im.getdata())
    data2=list(im2.getdata())
    data3=list()
    for i in range(0,nbPixel):
    pixel=data[i]
    rouge=pixel[0]
    data3.append(data[i])
    pixel2=data2[i]
    vert=pixel[1]
    bleu=pixel[2]
    data3.append(data2[i])

    im3.putdata(data3)
    im3.save("iamge3D.jpg")

  4. #4
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    par dichotomie ?

    (private "joke" - ne cherchez pas)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  5. #5
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Il faut que je fasse par dichotomie ?

  6. #6
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Non, c'était du second degré pour te rappeler une discussion où une autre intervenant et moi avions passé pas mal de temps à débrouiller ton problème de dichotomie sans que tu daignes te manisfester et répondre à nos questions, bref, une attitude purement consommatrice sur un forum plutôt communautaire où les gens prennent sur leur temps pour aider les autres.
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  7. #7
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'en suis vraiment désoler mais je ne suis pas très souvent sur l'ordinateur car je n'y est pas toujours accès mais j'ai lue vos messages qui mon aider pour mon problème

  8. #8
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut!

    Peut-être pourrait-t-on commencer par ce sur quoi tu butte. Une petite explication sur le principe de la construction d'une image anaglyptique ne serait pas superflue je pense.

    Ensuite une mise en forme du code à l'aide des balises est fortement recommendée (obligatoire devrais-je dire), ne serait-ce que pour l'indentation.

    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
    from PIL import Image
     
    im=Image.open("Image.jpg")
    im2=Image.open("Imagedecale.jpg")
     
    taille=im.size
    nbPixel=taille[0]*taille[1]
    data=list(im.getdata())
    data2=list(im2.getdata())
    data3=list()
     
    for i in range(0,nbPixel):
         pixel=data[i]
         rouge=pixel[0]
         data3.append(data[i])
         pixel2=data2[i]
         vert=pixel[1]
         bleu=pixel[2]
         data3.append(data2[i])
     
    im3.putdata(data3)
    im3.save("iamge3D.jpg")
    Bon courage!


    Ju

  9. #9
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Quand je fait exécuter le programme j'obtient une image toute noir

  10. #10
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Citation Envoyé par jojo5457
    Quand je fait exécuter le programme j'obtient une image toute noir
    C'est tout bonnement impossible : la ligne 21 lève, à tous les coups, une exception NameError et empêche de sauvegarder quoi que ce soit (image toute noire ou pas)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par plxpy Voir le message
    C'est tout bonnement impossible : la ligne 21 lève, à tous les coups, une exception NameError et empêche de sauvegarder quoi que ce soit (image toute noire ou pas)
    Le code n'est manifestement pas complet.

    Supposons que im3 à été créé précédement, une autre question se pose.
    À quoi servent les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         pixel=data[i]
         rouge=pixel[0]
         ...
         pixel2=data2[i]
         vert=pixel[1]
         bleu=pixel[2]
    Si elles sont là, peut-être sont-elles utiles. Une autre version du code ?

  12. #12
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ba non en faite elle serve a rien mais du coup je sais pas comment faire

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    J'ai également un projet d'image anaglyphe cependant je dois le faire en créant une image cyan et une autre rouge et assembler les deux pour obtenir mon image 3D.
    J'ai réussi à créer les images cyan et rouge cependant je n'arrive absolument pas à créer mon image 3D.

    Voici mon code :

    import Image
    imD= Image.open("D.jpg") #ouvrir D.jpg
    imG= Image.open("G.jpg") #ouvrir G.jpg


    taille = imD.size #calcul taille
    l=taille[0]
    h=taille[1]
    t=l*h

    dataD=list(imD.getdata())
    dataG=list(imG.getdata())

    imrouge=Image.new('RGB',taille)
    datarouge=list()
    imbleu=Image.new('RGB',taille)
    datableu=list()

    for i in range (0,t):
    pixel=dataD[i]
    Rd= pixel[0]
    Vd= pixel[1]
    Bd= pixel[2]
    datarouge.append((Rd,0,0))
    pixel=dataG[i]
    Rg= pixel[0]
    Vg= pixel[1]
    Bg= pixel[2]
    datableu.append((0,Vg,Bg))

    imrouge.putdata(datarouge)
    imrouge.save('imagerouge.jpg')
    imbleu.putdata(datableu)
    imbleu.save('imagebleu.jpg')


    im3D=Image.new('RGB',taille)
    imRouge=Image.open("imagerouge.jpg")
    imBleu=Image.open("imagebleu.jpg")

    dataRouge=list(imRouge.getdata())
    dataBleu=list(imBleu.getdata())

    data3=list()

    for i in range (0,t):
    pixel=dataRouge[i]
    Rd= pixel[0]
    Vd= pixel[1]
    Bd= pixel[2]
    data3.append((Rd,0,0))
    pixel=dataBleu[i]
    Rg= pixel[0]
    Vg= pixel[1]
    Bg= pixel[2]
    data3.append((0,Vg,Bg))

    im3D.putdata(data3)
    im3D.save('image3D.jpg')

    Je vous remercie par avance pour votre aide.
    Cordialement,
    Tixium.

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ouais, il me semblait bien de la décomposition des pixels était utile à quelque chose.

    D'après le code de Tixium, une image anaglyptique se construirait comme ceci:

    Image droite: [RD,VB,BD][RD,VB,BD][RD,VB,BD][RD,VB,BD][....
    Image gauche: [RG,VG,BG][RG,VG,BG][RG,VG,BG][RG,VG,BG][....

    Image résultante: [RD,0,0][0,VG,BG][RD,0,0][0,VG,BG][RD,0,0][0,VG,BG][...

    Mais tous les pixels de chaque image sont utilisés donc la taille de l'image résultante doit être doublée.

    Est-ce ainsi que se construit un anaglyphe ? Les pixels de l'image 'droite' originale sont placés à gauche dans l'image finale ? Faut-il deux images au départ ?


    Si oui, alors, après correction de la taille, le code de Tixium devrait donner le résultat attendu.

    Et si ça ne marche toujours pas, faudra donner le détail de ce qui ne va pas.

  15. #15
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    "un dessin (ici, une image) vaut mieux qu'un long discours"



    tiré(e) de ce site

    un autre proverbe "sauce chinoise" (qui n'existe certainement pas) :

    "Quand on ne sait pas où on va, on a peu de chance d'y arriver"
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci pour vos réponses. J'ai donc changé la taille en la doublant et modifié le code. Le code s'éxécute correctement mais l'image finale est noire. Une idée ?


    import Image
    imD= Image.open("D.jpg") #ouvrir D.jpg
    imG= Image.open("G.jpg") #ouvrir G.jpg


    taille = imD.size #calcul taille
    l=taille[0]
    h=taille[1]
    t=l*h

    dataD=list(imD.getdata())
    dataG=list(imG.getdata())

    imrouge=Image.new('RGB',taille)
    datarouge=list()
    imbleu=Image.new('RGB',taille)
    datableu=list()

    for i in range (0,t):
    pixel=dataD[i]
    Rd= pixel[0]
    Vd= pixel[1]
    Bd= pixel[2]
    datarouge.append((Rd,0,0))
    pixel=dataG[i]
    Rg= pixel[0]
    Vg= pixel[1]
    Bg= pixel[2]
    datableu.append((0,Vg,Bg))

    imrouge.putdata(datarouge)
    imrouge.save('imagerouge.jpg')
    imbleu.putdata(datableu)
    imbleu.save('imagebleu.jpg')


    im3D=Image.new('RGB',taille)
    imRouge=Image.open("imagerouge.jpg")
    imBleu=Image.open("imagebleu.jpg")

    dataRouge=list(imRouge.getdata())
    dataBleu=list(imBleu.getdata())
    data3=list()
    n=2*t


    for i in range (0,n):
    pixel=dataRouge[i]
    dataRouge.append(data3)
    pixel=dataBleu[i]
    dataBleu.append(data3)



    im3D.putdata(data3)
    im3D.save('image3D.jpg')

    Cordialement.

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Heu, c'est uniquement la largeur qu'il faut doubler.

    Si ton image est noire par contre, cela vient d'ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i in range (0,n):
        pixel=dataRouge[i]
        dataRouge.append(data3)
        pixel=dataBleu[i]
        dataBleu.append(data3)
    c'est le contraire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        data3.append(pixel)
    De toutes manières cela ne crée aucun décalage, il n'apparaît pas deux images dans le résultat.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse. Cependant j'ai encore un problème :p

    J'ai donc mit ceci :
    for i in range (0,n):
    pixelrouge=dataRouge[i]
    data3.append(pixelrouge)
    pixelbleu=dataBleu[i]
    data3.append(pixelbleu)
    Cependant, lorsque que j'éxécute, le messaged'erreur est le suivant :
    line 48 pixelrouge=dataRouge[i]
    Indexerror: list index out of range.
    Une petite idée ? je sais que je suis ps loin du but mais je vois absolument pas comment terminer ce programme :/.
    Merci d'avance.

  19. #19
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Doubler ? doubler quoi ? L'image postée au post #15 s'affiche mal chez vous ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Je ne comprend pas où vous voulez en venir.

Discussions similaires

  1. Faire une image qui se déplace
    Par aurelien94 dans le forum 2D
    Réponses: 15
    Dernier message: 18/10/2006, 00h52
  2. [ImageMagick] Cherche à faire une image avec texte et image
    Par dnipro dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/05/2006, 14h08
  3. Superposition de composant pour faire une image
    Par spikto dans le forum Composants VCL
    Réponses: 14
    Dernier message: 31/12/2005, 15h18
  4. Comment faire une image de partition partagée avec qmenu ?
    Par narmataru dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 19/12/2005, 09h51
  5. Faire une image de son disque dur, puis restaurer cette imag
    Par cartonis dans le forum Autres Logiciels
    Réponses: 27
    Dernier message: 18/08/2005, 16h32

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