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

Calcul scientifique Python Discussion :

Découper une image PIL en 4 carrés


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Découper une image PIL en 4 carrés
    Bonjour à tous, je viens de créer un programme permettant de découper (je pense) une image en 4 carrés identiques. Mais je n'arrive pas à enregistrer chaque carré pour vérifier que mon programme fonctionne... Pouvez-vous m'aider ? Merci d'avance

    Voici mon programme :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    import Image, ImageTk
    import Tkinter, tkFileDialog
    from Tkinter import *
    from PIL import Image
     
     
     
    def couper():
     
        image = tkFileDialog.askopenfile(parent=can1,mode='rb',title='Choisir un fichier')
        image = Image.open(image)
        photo = ImageTk.PhotoImage(image)
        pixels = list(image.getdata())
        x,y = image.size
        matrice = [pixels[i * x:(i + 1) * x] for i in xrange(y)]
     
        T=20
        C = 4*[0]
        for i in range(len(C)):
            C[i] = T*[0]
            for j in range(len(C[i])):
                C[i][j] = T*[(0,0,0)]
     
     
     
     
    # PROGRAMME PRINCIPAL
     
    fen1=Tkinter.Tk()
    can1=Canvas(fen1,bg='gray',height=1000,width=1000)
    can1.pack(side=LEFT)
    fen1.title("Logiciel")
    bou1=Button(fen1,text='decouper',command=couper)
    bou1.pack()
    fen1.mainloop()
    fen1.destroy()

  2. #2
    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
    Salut,

    Si tu importes le module PIL, utilise-le.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x, y = img.size
    img.crop(0, 0, x/2, y/2).save('image1.jpg')
    img.crop(x/2, 0, x, y/2).save('image2.jpg')
    img.crop(0, y/2, x/2, y).save('image3.jpg')
    img.crop(x/2, y/2, x, y).save('image4.jpg')
    D'ailleurs je ne comprend rien à ta matrice.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de votre aide, j'ai modifié mais j'ai comme message d'erreur : "TypeError: crop() takes at most 2 arguments (5 given)", comment faire svp?

  4. #4
    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
    Au temps pour moi, les coordonnées doivent être dans un tuple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    img.crop((0, 0, x/2, y/2)).save('image1.jpg')
    Tu aurais demandé à effbot, il t'aurait répondu plus vite que moi.
    http://effbot.org/imagingbook/image.htm

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre réponse, le programme fonctionne maintenant simplement et parfaitement !

    Oui désolée je ne savais pas, de plus j'ai un peu de mal en anglais...
    J'aimerais maintenant que le programme refasse l'image avec les 4 carrés mais pris aléatoirement, est-ce possible?

  6. #6
    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
    Tu peux utiliser random.choice par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    >>> import random
    >>> x, y = 2500, 1800
    >>> coords = [(0, 0, x/2, y/2), (x/2, 0, x, y/2), (0, y/2, x/2, y), (x/2, y/2, x, y)]
    >>> while coords:
    ...     coord = random.choice(coords)
    ...     print coord
    ...     coords.remove(coord)
    ... 
    (1250, 0, 2500, 900)
    (1250, 900, 2500, 1800)
    (0, 900, 1250, 1800)
    (0, 0, 1250, 900)

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci, je vais réessayer parce que pour le moment je n'arrive pas à le faire fonctionner, il y a quelque chose qui bug mais je ne sais pas pourquoi !

  8. #8
    Candidat au Club
    Homme Profil pro
    ingénieur en mécatronique
    Inscrit en
    Juin 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : ingénieur en mécatronique

    Informations forums :
    Inscription : Juin 2018
    Messages : 1
    Points : 3
    Points
    3
    Par défaut husoka
    bonjours ect ce que le programme divise l'image en 4 image diffeferent et nn identique

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par husoka Voir le message
    bonjours ect ce que le programme divise l'image en 4 image diffeferent et nn identique
    A défaut de comprendre ce que fait .crop, vous pourriez récupérer le code et l'essayer pour voir ce qu'il produit.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Débutant] Comment découper une image?
    Par kayzra dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 23/07/2007, 07h57
  2. découper une image
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 04/03/2007, 17h22
  3. Réponses: 15
    Dernier message: 30/04/2006, 00h37
  4. Réponses: 1
    Dernier message: 10/12/2005, 00h45
  5. découper une image
    Par poussinphp dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2005, 14h08

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