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 :

Traitement d'image : faire un dégradé


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Par défaut Traitement d'image : faire un dégradé
    Bonjour,
    Je souhaiterais obtenir un fichier au format PGM d'un dégradé basique (juste en noir et blanc verticalement), je ne vois pas du tout comment faire... Pouvez vous me donner un indice s'il vous plaît ? L'image que je souhaiterais obtenir est ci dessous

    Pièce jointe 450837

    Mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fichier=open('traitement.pbm','w')
    fichier.write('P2\n')
    fichier.write('# Une diagonale\n')
    fichier.write('11 11\n')
     
    nbligne=11
     
    for ligne in range(nbligne):
        for i in range(ligne):
            fichier.write(str(i-255)+" '')
     
    fichier.close

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Possiblement avec PIL comme ceci ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Par défaut
    Merci de votre réponse, mais j'aimerais si possible ne pas utiliser la méthode "import quelque chose" parceque je n'ai pas encore appris ça en cours

    J'ai vue que l’intervalle utilisé pour coder chacune des nuances de gris est dans mon cas un nombre entier entre 0 et 255.
    Donc j'ai essayé de modifier ligne par ligne mon image en mettant la 1ere ligne à 255 puis je diminue cette valeur pour chaque ligne suivante jusqu'à la dernière ligne que je met à 0 (donc blanc ?)
    Mais quand je fais ça je n'arrive pas à ouvrir le fichier pour voir si ça à marché, ça m'affiche "erreur durant la lecture du fichier "
    Je ne vois pas ce qu'il faut modifier pour que je puisse ouvrir le fichier ou si mon code est faux

    Voici mon code (j'ai essayé avec 2 lignes pour voir si cela marchait) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    fichier=open("le dégradé.pgm","w") #format pgm
    fichier.write("P2 \n") #le nombre magique
    fichier.write("2 2 \n") #nombre de ligne et de colonne
    fichier.write("255 \n") #intervalle de couleur
     
    for ligne in range(1,2):
        if ligne==1:
            fichier.write(str(255)+" ") #ligne 1 en noir
        if ligne==2:
            fichier.write(str(0)+" ") #ligne 2 en blanc
        fichier.write("\n")
     
    fichier.close()

  4. #4
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ligne in range(1,2):
       # ...
    ligne ne vaudra jamais 2, ne pas oublier que le stop du range est non inclus.

    Citation Envoyé par reborn1234 Voir le message
    Mais quand je fais ça je n'arrive pas à ouvrir le fichier pour voir si ça à marché, ça m'affiche "erreur durant la lecture du fichier "
    Je ne vois pas ce qu'il faut modifier pour que je puisse ouvrir le fichier ou si mon code est faux
    Un fichier pgm peut s'ouvrir avec un simple éditeur de texte. En modifiant donc ton range, on obtient.

    P2
    2 2
    255
    255
    0
    Qui avec un visionneur d'images affiche une image de 2px de côté, ce qu'est censé faire ton code.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ligne in range(1,2):
       # ...
    ligne ne vaudra jamais 2, ne pas oublier que le stop du range est non inclus.

    Ah oui c'est vrai j'avais oublier que la dernière valeur du range n'était pas incluse !
    Donc j'ai changé la dernière valeur je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ligne in range(1,3):
    #...
    Et j'obtiens bien :
    P2
    2 2
    255
    255
    0
    Mais j'ai toujours le même problème lorsque je souhaite visionner l'image ( je l'ouvre avec le logiciel Xnview qui peut : Ouvrir, Éditer, Créer, et Imprimer les fichiers .PGM) et le message d'erreur s'affiche "erreur durant la lecture du fichier"...

    Je pense que cela vient de mon code car lorsque je fait du code pour un fichier PBM j'arrive à l'ouvrir
    Je ne sais pas ce qu'il faut modifier

  6. #6
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par reborn1234 Voir le message
    Mais j'ai toujours le même problème lorsque je souhaite visionner l'image ( je l'ouvre avec le logiciel Xnview qui peut : Ouvrir, Éditer, Créer, et Imprimer les fichiers .PGM) et le message d'erreur s'affiche "erreur durant la lecture du fichier"...
    Le visionneur d'image de mon système est plus tolérant et s'accomode mieux que Xnview que je ne connais pas.

    Indice :
    - Combien de pixels devrait-il y avoir dans une image de 2 × 2 ?
    - Combien de pixels crées-tu ?

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/07/2008, 20h42
  2. Comment faire du traitement d'images avec C?
    Par The-msx dans le forum C
    Réponses: 5
    Dernier message: 07/07/2008, 10h05
  3. [Traitement d'image] Comment faire un texte incrusté
    Par solorac dans le forum Webdesign & Ergonomie
    Réponses: 7
    Dernier message: 22/05/2008, 15h14
  4. Réponses: 1
    Dernier message: 15/05/2008, 20h11
  5. Réponses: 2
    Dernier message: 02/10/2006, 15h38

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