Petit problème dans mon projet d'info (Python)
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Petit problème dans mon projet d'info (Python)



  1. #1
    EquinoxEla

    Petit problème dans mon projet d'info (Python)


    ------

    Bonsoir à tous, je suis en PTSI et on a un projet d'info pour les vacances: le mien est le contoure filtrage.En gros, avec mon binôme on doit faire les contours d'une image

    J'ai commencé à coder 2-3 trucs j'avais en tête de comparer la valeur de chaque pixel de mon image avec les 2 suivants, si ils sont identiques aucun soucis. Sinon on regarde si il y a un véritable changement de couleur (pour être sûr que c'est pas une "coquille")
    Enfin bref j'avais codé ça:
    Code PHP:
    import matplotlib.pyplot as plt
    import numpy 
    as np
    from os import getcwd
    ,chdir

    def recupererInfoImage
    (nomImage): ## écrire les " " dans le nom de l'image
        
    chdir("Blablabla"#On  peut essayer de mettre le répertoire comme une variable dans la fonction
        
    image=plt.imread(nomImage)
        
    nouveau=np.ones((image.shape) ,int#On crée un nouveau tableau de même taille que l'image etudiée, il est rempli de 1.
        
    plt.imshow(image)
        
    nl,nc,n=image.shape
        
    #Rajouter ligne 11 "return nouveau"
        #return nl, nc, n #Ligne, colonne, n=? il faudra retirer le # après pour découper la fonction en sous fonction
        
    plt.imshow(image)
        
    #Ici commence la fonction BalayageImage(nl,nc,n)
        
    for l in range(0,nl-3): #On balaie les lignes
            
    for c in range(0,nc-3):#Pour chaque ligne on balaie chaque colonne
                
    if image[c-2,l-2,0]==image[c-1,l-1,0]:
                    if 
    image[c-1,l-1,0]==image[c,l,0]:
                        print(
    'Pas de chgt'cl#### ICI EST LE PROBLEME, A LA COLONNE 293, LIGNE 0
                
    elif image[c-2,l,0]!=image[c-1,l-1,0]:
                    if 
    image[c-1,l-1,0]==image[c-2,l-2,0]:
                        
    nouveau[c-2,l-2,0]==#On change le pixel de couleur (il devient noir, inialement il est blanc à cause de ligne8)
                    
                        
        
    return nouveau 

    Et en gros, jelance mon programme mais Pyzo me renvoie ceci, quand j'arrive à la colonne 293, ligne 0
    Traceback (most recent call last):
    File "<console>", line 1, in <module>
    File "C:\Users\Gaspard Houillon\Desktop\TESTINFO\essa i.py", line 18, in recupererInfoImage
    if image[c-1,l-1,0]==image[c,l,0]:
    IndexError: index 294 is out of bounds for axis 0 with size 294
    Je vois bien que le problème vient du changement de valeur parce que je dois passer à la ligne suivante. Mais je ne vois pas comment faire :/
    Tout les "-3""-2" etc que vous voyez près des c et l viennent du fait quej'ai essayé de régler le problème en modifiant le "compte" de mes colonnes
    Merci

    -----
    Dernière modification par EquinoxEla ; 19/12/2016 à 16h21.

  2. #2
    Chanur

    Re : Petit problème dans mon projet d'info (Python)

    Bonjour,
    Tu pars de l=0 et c=0 pour examiner le pixel c-2, l-2
    Il est en dehors de l'image, non ?
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  3. #3
    EquinoxEla

    Re : Petit problème dans mon projet d'info (Python)

    Oui, mais je ne sais pas pourquoi python n'apas de problème avec une coordonnée en -2 mais quand on arrive à l=0 c=293 là y'a un soucis

  4. #4
    Chanur

    Re : Petit problème dans mon projet d'info (Python)

    Je ne connais pas python : prendre ma réponse avec des pincettes.

    Quand on va taper en dehors d'une zone de mémoire autorisée, le résultat est imprévisible.

    - Tu peux accéder à de la mémoire effectivement allouée, mais pour autre chose et dans ce cas, si tu ne fait que lire, tu lis n'importe quoi (le contenu de la mémoire interprété en fonction du type de variable que tu utilises) mais ça ne plante pas ; si tu écris, tu écrase d'autres variables. Ça peut avoir des conséquences mais pas forcément (ça n'en a pas si la zone écrasée n'est pas encore utilisée et sera initialisée après l'écrasement).

    - Tu peux aussi accéder a de la mémoire qui n'est pas autorisée pour ton processus, et là le système dit "STOP !"

    Il est a priori impossible de prévoir dans quel cas on se trouvera. Ce qui est sûr, c'est qu'il ne faut pas dépasser les bornes de la mémoire allouée.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  5. A voir en vidéo sur Futura
  6. #5
    EquinoxEla

    Re : Petit problème dans mon projet d'info (Python)

    Je viens de trouver la raison de ce problème, en effet il cherchait dans de la mémoire qui n'existait pas, ligne et colonne étaient inversées ^^'

Discussions similaires

  1. Projet Python 360°
    Par callain dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 22/03/2016, 17h27
  2. INFO Python
    Par Razorr dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 02/11/2014, 19h29
  3. Dm info python
    Par Isis-mirka dans le forum Programmation et langages, Algorithmique
    Réponses: 103
    Dernier message: 01/04/2013, 21h52
  4. petit problème dans mon programme python
    Par souchi6 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 05/01/2013, 14h13
  5. petit problème algorithme euclide (python)
    Par souchi6 dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 23/10/2012, 21h10