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
    Membre r�gulier
    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
    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
    Membre r�gulier
    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
    Par d�faut
    j'ai d�j� fait une image anaglyptique mais a partir de deux images et non une.

  3. #3
    Membre r�gulier
    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
    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 Expert 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 : 60
    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
    Par d�faut
    par dichotomie ?

    (private "joke" - ne cherchez pas)

  5. #5
    Membre r�gulier
    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
    Par d�faut
    Il faut que je fasse par dichotomie ?

  6. #6
    Membre Expert 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 : 60
    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
    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.

  7. #7
    Membre r�gulier
    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
    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 �m�rite

    Homme Profil pro
    Ing�nieur
    Inscrit en
    Ao�t 2010
    Messages
    662
    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 : 662
    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
    Membre r�gulier
    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
    Par d�faut
    Quand je fait ex�cuter le programme j'obtient une image toute noir

  10. #10
    Membre Expert 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 : 60
    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
    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)

  11. #11
    Expert confirm�

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    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
    Membre r�gulier
    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
    Par d�faut
    Ba non en faite elle serve a rien mais du coup je sais pas comment faire

  13. #13
    Candidat au 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
    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 confirm�

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    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 Expert 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 : 60
    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
    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"

  16. #16
    Candidat au 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
    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 confirm�

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    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:
    De toutes mani�res cela ne cr�e aucun d�calage, il n'appara�t pas deux images dans le r�sultat.

  18. #18
    Candidat au 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
    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 Expert 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 : 60
    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
    Par d�faut
    Doubler ? doubler quoi ? L'image post�e au post #15 s'affiche mal chez vous ?

  20. #20
    Candidat au 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
    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