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

Tkinter Python Discussion :

Détection d'un pixel par sa couleur ?


Sujet :

Tkinter Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut Détection d'un pixel par sa couleur ?
    Bonjour,

    Voila, avec le script ci-dessous je crée une série de 5 "points" blancs (chacun de taille 1 pixel) dans un Canvas bleu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from tkinter import * 
     
    fen = Tk()
     
    Can = Canvas(fen, bg='blue')
    Can.pack(fill=BOTH, expand=Y)
     
    for index in range(5) :
        x1, y1, x2, y2 = 50+index, 50+index, 51+index, 51+index
        Can.create_line(x1, y1, x2, y2, width=1, fill='white')
     
    fen.mainloop()

    Le problème est : comment détecter chaque pixel (sa position dans le Canvas) juste en "voyant" que la couleur de ce pixel n'est pas bleue ?

    Auriez-vous une idée de comment faire cela avec Tkinter ?

    Par avance merci.

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Avant d'aller plus loin pourquoi ne pas utiliser les tags ?

    @+

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Bonjour PauseKawa,

    Je ne vois pas comment utiliser les tags pour identifier la couleur de chaque pixel du Canvas et ainsi en déduire si un nouveau pixel blanc est apparu sur ce Canvas.

    En effet, ce que je voudrais faire c'est "dessiner" un point (pixel) blanc et pouvoir faire en sorte que mon script le repère et restitue ses coordonnées.

    @ pluch' PauseKawa

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Citation Envoyé par sancho.poncho Voir le message
    Je ne vois pas comment utiliser les tags pour identifier la couleur de chaque pixel du Canvas et ainsi en déduire si un nouveau pixel blanc est apparu sur ce Canvas.

    En effet, ce que je voudrais faire c'est "dessiner" un point (pixel) blanc et pouvoir faire en sorte que mon script le repère et restitue ses coordonnées.
    Il suffit de rajouter un tag
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Can.create_line(x1, y1, x2, y2, width=1, fill='white', tags='blanc')
    Et vous les retrouvez avec widget.find_withtag('blanc')

    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
    from tkinter import * 
     
    fen = Tk()
     
    Can = Canvas(fen, bg='blue')
    Can.pack(fill=BOTH, expand=Y)
     
    for index in range(5) :
        x1, y1, x2, y2 = 50+index, 50+index, 51+index, 51+index
        Can.create_line(x1, y1, x2, y2, width=1, fill='white', tags='blanc')
     
    for white in Can.find_withtag('blanc'):
        print(Can.coords(white))
     
    fen.mainloop()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [50.0, 50.0, 51.0, 51.0]
    [51.0, 51.0, 52.0, 52.0]
    [52.0, 52.0, 53.0, 53.0]
    [53.0, 53.0, 54.0, 54.0]
    [54.0, 54.0, 55.0, 55.0]
    @+

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Bonsoir PauseKawa,

    Effectivement, ça peut fonctionner comme cela.

    Mais, en fait, je souhaitais plus savoir s'il était possible "d'analyser" la couleur du fond du Canvas pour voir quel pixel avait changé de couleur.

    En définitive, je m'aperçois en vous lisant que le background du Canvas est uniformément et indistinctement bleu et que les couleurs différentes qui apparaissent ne sont que des points "posés" sur ce Canvas mais qui ne modifient pas la couleur des pixels du Canvas.

    Et avec votre méthode, on doit pouvoir arriver au même résultat que si on modifiait la couleur de chaque pixel du Canvas.

    Je vous remercie une fois de plus pour votre aide PauseKawa et je vous souhaite une très bonne fin de semaine.

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Citation Envoyé par sancho.poncho Voir le message
    Mais, en fait, je souhaitais plus savoir s'il était possible "d'analyser" la couleur du fond du Canvas pour voir quel pixel avait changé de couleur.
    Pour information vous pouvez 'demander' à l'os de vous donner la couleur d'un pixel à un point donner de l'écran via l'api ou PIL (Voir mes post : j'ai répondu pas mal de fois sur le sujet et principalement sur les impressions)
    C'est long... Car cela passe par une copie/cadriage d'écran, parfois partielle pour le grab de PIL, mais cela demande toujours du temps de traitement.

    @+

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    D'accord, c'est bon à savoir même si quand on parle d'OS j'ai la tête qui tourne

    Mais bon, je pense pouvoir m'en sortir en utilisant votre méthode.

    Et dans tous les cas, je vous suis très reconnaissant de la qualité et de la précision de vos réponses et du temps que vous consacrez à répondre.

    Passez un excellent week-end PauseKawa.

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

Discussions similaires

  1. identifier les pixels par les couleurs
    Par abirmohammadi dans le forum Images
    Réponses: 1
    Dernier message: 26/09/2012, 13h04
  2. [Débutant] changer la couleur de pixels par programme
    Par francois92 dans le forum Images
    Réponses: 2
    Dernier message: 02/04/2009, 05h35
  3. Extraire le nombre de pixels par classe de couleur
    Par onzeaout dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 03/10/2007, 17h01
  4. Trouver l'emplacement d'un pixel unique par sa couleur
    Par avigeilpro dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 06/07/2006, 14h57
  5. [VB6] [Graphisme] Transfert d'image pixel par pixel
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 15/10/2002, 09h53

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