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 :

Aide Python 3, image


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut Aide Python 3, image
    Bonjour a tous, j'aurai besoin de votre aide. Je suis une matirer de programmation a la fac sur python 3. Et j'ai un projet a effectué avec une sujet precis. Je dois faire un pogramme qui suit le deplacement de cellule (en gros). Pour sa jai un dossier txt ou:
    La couleur d’un pixel est représenté par trois nombres compris entre 0 et 255, qui
    correspondent respectivement aux intensités des composantes : rouge, vert et bleu. Un point
    noir a pour valeurs 0 0 0 ; un point blanc 255 255 255 ; le triplet 169 13 157 représente du
    violet, etc.
    • Une image est formée de 452 × 452 pixels. Chaque ligne de pixels est écrite dans le fichier
    texte sous forme d’une ligne de 452 × 3 = 1356 nombres. 452 lignes décrivent une image, et
    les 60 images d’une série sont écrites à la suite dans le fichier, qui comporte donc 452 × 60
    = 27120 lignes.
    Dans le fichier txt les nombre sont présenter ainsi:0 0 0 0 0 0 0 0 1 2 5 6 4 0 0 0 0 etc...
    J'ai simplement besoin que vous maider sur un point: Je veux pouvoir utiliser ce fichier txt pour reformer l'image dex cellules, jai essayer sa:
    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
     
    import re
    import copy
    import matplotlib.pyplot as plt
    N=452
    C=open('SerieC.txt','r')
    ligne=C.readline()
    M=[]
    for x in range(N):
        M.append([])
        for j in range(N):
            M[x].append(0)
     
    for i in range(N):
        for j in range(N):
            M[i][j]=ligne
        ligne=C.readline()   
     
     
     
     
     
    plt.imshow(M,cmap=plt.get_cmap('gray'), interpolation='none')
    plt.show()
    Mais jobtiens une image blanche et ce message TypeError: Image data cannot be converted to float
    Merci de votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur d'Études et de Recherche
    Inscrit en
    Octobre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'Études et de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 18
    Par défaut
    Bonjour à toi,

    Je ne suis pas sûr d'avoir bien compris comment sont stockés les valeurs des pixels.
    Par exemple, pour une suite de 3 pixels noir, blanc, noir, tu aurais :
    0 0 0 255 255 255 0 0 0
    C'est bien ça ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    oui cest sa, dans un fichier txt et ils sont présenter comme tu viens de le faire

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur d'Études et de Recherche
    Inscrit en
    Octobre 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'Études et de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 18
    Par défaut
    Dans ce cas, je te propose d'utiliser la librairie numpy.
    Tu utilises la fonction loadtxt sur ton fichier texte, ce qui va générer une matrice de 27120 lignes par 1356 colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import numpy as np
     
    arr = np.loadtxt('fichier.txt')
    Ensuite, il faut redimensionner ton array, pour cela, utilises la méthode reshape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arr = arr.reshape(452, 452, 3, 60)
    Cela va redimensionner en une matrice 4D, tu auras 60 matrices 3D de 452x452 pixels de 3 canaux (RVB)
    Note que tu peux directement reshape quand tu charges le txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arr = np.loadtxt('fichier.txt').reshape(452, 452, 3, 60)

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Merci de ton aide! jessaye quand je suis chez moi, mais le pb cest que faut que je vois avce le prof si je peut utiliser numpy, car on la pas vu en cours (on fais encore du pythoin "basique" et je pense quil veule qon comprenne mieu lalgo et la programmation, je te tiens au courant!

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2016
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2016
    Messages : 30
    Par défaut Il faut faire attention aux types des variables
    Je pense qu'il y a plusieurs problèmes.
    1) comme tu lis du texte il faut le convertir en nombre
    ta variable ligne contient une chaine ' 10 25 30 150 … '
    tu peux dans un premier temps obtenir une liste de chaine de caractères en utilisant la fonction split pour obtenir ['10',25,30,150',...]
    puis convertir en nombre avec par exemple la fonction int ou la fonction plt.unint8 (pour avoir le type entier codé sur 8 bits)
    il te reste alors à récupéré les "paquets de 3 nombres" pour formés les triplets correspondant aux pixels.
    2) dans la fonction imshow(), comme c'est une image en RVB, je pense qu'il ne faut pas de cmap.

Discussions similaires

  1. Aide avec Dreamweaver : Image
    Par maxime30 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/09/2007, 07h50
  2. Réponses: 2
    Dernier message: 28/06/2007, 08h23
  3. aide sur une image
    Par laetus dans le forum IHM
    Réponses: 5
    Dernier message: 04/10/2004, 14h54

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