Fenêtre et exécution

latbri -  
latbri Messages postés 1 Statut Membre -
Bonsoir à tous,
Je suis étudiant et j'ai un projet informatique à réaliser pour la fin de l'année sur python,
Mon programme consiste à effectuer une ligne de partage des eaux sur des images médicales afin d'isoler des tumeurs par exemple.
J'ai un problème avec l'exécution de mon programme ,
En fait lorsqu'une fenêtre est ouverte le programme ne continu pas à tourner et attend que je ferme cette dernière pour exécuter la suite du code et ça me pose problème pour mon projet (j'utilise la bibliothèque matplotlib pour l'affichage des images).
Si quelqu'un sais régler ce problème je suis preneur de la solution,
Merci beaucoup.

Configuration: Windows / Chrome 97.0.4692.99

4 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    peux-tu partager un petit programme qui démontre le soucis?
    0
  2. latbri
     
    Merci pour votre réponse,
    Pour être plus précis le programme ne fonctionne pas sur les fonctions 'ginput',
    Le programme tourne sur les ordinateur de mes camarades...

     import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    import copy
    import math
    
    def noir_et_blanc(img):
        # Calcul de la "luminosité" par moyenne pondérée
        Imagengris = .2989 * img[:,:,0] + .5870 * img[:,:,1]  + .1140 *img[:,:,2]
        return Imagengris
    
    img = mpimg.imread('topotest.png') # image en niveaux de gris
    imgNB=noir_et_blanc(img)
    
    
    plt.figure('imageOrigine')
    plt.imshow(imgNB, cmap = 'Greys_r')
    plt.show(block=False)
    
    def creeFORME(ImgNB, npts): #A l'aide de points, on repère l'objet à extraire de son environnement
        # np est un entier égal au nb de points sélectionnés
        nl, nc = ImgNB.shape
        FORME = np.zeros((nl,nc))
        print("Selectionner "+str(npts)+" points sur l'objet :")
        point = plt.ginput(n=npts)
        print("prélèvement 'FORME' effectué !")
        for i in range(npts):
            ligne = int(point[i][1])
            colonne = int(point[i][0])
            FORME[ligne,colonne]=1
        return FORME
    
    
    fg=creeFORME(imgNB,3)
    print(fg)
    plt.close()     
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      le programme ne fonctionne pas bien sur ton ordi, et fonctionne bien sur d'autres ordis?
      0
  3. latbri
     
    Oui c'est ça...
    Et je pense que le problème vient de ma version de python ou matplolib qui n'exécute pas la suite du programme lorsqu'une fenêtre est ouverte.
    J'ai essayé de faire en fonction de ce problème mais le résultat attendu n'était pas le bon.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      ginput() reste bloqué même quand tu as sélectionné tous les points dans la fenêtre?
      0
  4. latbri Messages postés 1 Statut Membre
     
    Oui quand l'affichage fonctionne ce qui n'est pas tout le temps le cas
    0