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 :

Programmation divers Python


Sujet :

Python

  1. #21
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut Re
    Voici la fonction "test" qui permet de tester le DM si besoin...

  2. #22
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    Oui, mais je ne vais pas faire le devoir à ta place. Pour toi aussi, il est temps d'aller se coucher !
    Un dernier point et je te quitte : n'est-il pas précisé dans l'énoncé qu'il faut d'abord convertir l'image en noir et blanc avant de dilater ou d'éroder ?
    Sur ce, bonne nuit !

  3. #23
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    Merci pour la réponse.

    Effectivement il faut convertir l'image en noir et blanc avant d'utiliser erosion et dilatation, mais c'est ce que je fais en écrivant image_tab3=niveaux_de_gris(image_tab) au début des 2 programmes, non ?

    Pourriez-vous me mettre sur la piste de ce que je dois modifier pour ne plus avoir l'erreur s'il vous plaît ?

    J'ai déjà fait tout le reste tout seul, et tant qu'il y a encore des erreurs je n'ai pas le droit de le rendre, mais je dois le rendre avant ce soir...

    Merci beaucoup.

  4. #24
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    Une conversion en niveaux de gris donne des valeurs de pixel compris entre 0 et 255.
    Une conversion en noir et blanc donne des valeurs à 0 ou bien à 255.
    On pourrait écrire un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def noir_et_blanc (image):
        hauteur,largeur,profondeur = image.shape
        new_image=np.zeros((largeur,hauteur,profondeur),dtype=np.uint8)
        for i in range (hauteur) :
            for j in range (largeur) :
                if int(image[i,j][0]/3+image[i,j][1]/3+image[i,j][2]/3) >=128:
                    new_image[i,j] = 255
                else:
                    new_image[i,j]=0
                # pb de dépassement de uint8 si division après la somme
        return new_image
    Pour la dilatation et l'érosion, désolé mais je n'ai pas le temps aujourd'hui.
    Je ne comprends pas pourquoi tu mets les pixels à -1 ni pourquoi tu as 8 valeurs : il devrait y en avoir 9 en comptant la cellule elle-même, non ?

  5. #25
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    Un peu de temps.
    Pour la dilatation, tu peux créer une liste vide "voisins" puis parcourir comme tu le fais les voisins et ajouter le premier canal (ils sont tous égaux dans un même pixel). Ensuite mettre le centre donc voisins[4] à 255 et enfin mettre le nouveau pixel à 0 si il y a un 0 dans les voisins (0 in voisins), 255 sinon.
    Pour l'érosion, même principe mais mettre voisins[4] à 0 et comparer voisins à la liste [0,0,0,0,0,0,0,0,0].

  6. #26
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    Merci encore pour la réponse.

  7. #27
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 627
    Par défaut
    Citation Envoyé par inconnue058 Voir le message
    Merci encore pour la réponse.

    Je dois rendre mon travail ce soir, et il ne faut plus qu'il y ait d'erreur sinon il ne corrige rien...

    Comment puis-je "ajouter le premier canal" ?

    De plus, la fonction niveaux_de_gris que vous me proposez est correcte ? Je n'ai pas encore pu l'utiliser car je n'ai pas de PC avant 20h...

    Pour la dilatation, j'ai essayé "à la main" sans ordi, mais pas trouvé...

    Puis-je garder des choses de la dilatation que j'avais écrite ? Que devrais-je modifier ?

    Merci infiniment pour l'aide !
    Le premier canal, c'est le rouge, donc image[i,j][0].
    Ma fonction niveaux_de_gris est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def niveaux_de_gris (image):
        hauteur,largeur,profondeur = image.shape
        new_image=np.zeros((hauteur,largeur,profondeur),dtype=np.uint8)
        for i in range (hauteur) :
            for j in range (largeur) :
                new_image[i,j] = int(image[i,j][0]/3+image[i,j][1]/3+image[i,j][2]/3)
                # pb de dépassement de uint8 si division après la somme
        return new_image
    Elle fonctionne évidemment.
    Pour le reste, je t'ai expliqué comment je ferais (il y a d'autres possibilités) et de mon côté, je ne suis pas chez moi ce soir. Je ne ferai pas ton devoir, je crois t'avoir déjà bien aiguillée.
    Enfin, je trouve cette phrase étrange : "Je dois rendre mon travail ce soir, et il ne faut plus qu'il y ait d'erreur sinon il ne corrige rien..."
    C'est donc 0 ou 20 ??? Drôle de prof si c'est le cas.
    Bon courage.

    [edit] Une erreur entre largeur et hauteur que je viens de modifier.

  8. #28
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    OK, merci pour la réponse !

Discussions similaires

  1. Meilleur livre pour apprendre à programmer en Python
    Par Guigui_ dans le forum Général Python
    Réponses: 56
    Dernier message: 13/02/2016, 00h31
  2. probleme en faisant un programme en python
    Par tozier_4 dans le forum Général Python
    Réponses: 3
    Dernier message: 18/04/2008, 12h54
  3. programmer en python sous windows avec emacs
    Par Mydriaze dans le forum Général Python
    Réponses: 5
    Dernier message: 24/09/2007, 22h01
  4. exécuter des programmes avec python
    Par piotrgavriloff dans le forum Général Python
    Réponses: 1
    Dernier message: 24/06/2007, 01h09
  5. Lire un programme en python, sans python
    Par Guigiz dans le forum Py2exe
    Réponses: 15
    Dernier message: 09/06/2006, 21h11

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