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 :

gestion des pixels d'une image par python.


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    785
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 785
    Par défaut gestion des pixels d'une image par python.
    Bonjour ,

    Connaitrez-vous la manière dont python gère les images au niveau du pixels? Comme copiez un bout d'une image dans une variable ou comparer deux images pour voir si elles sont identiquent?

    Je voudrais pouvoir découper une image en bloc et ensuite comparer ces blocs les un, les autre pour éviter les bloc identiques. Je pourrais ensuite les regrouper et en faire un tilesheet.

    Bonne journées,

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    Dans l'absolu ça dépend du module que tu utilises pour la gestion d'image.
    Si tu usilises numpy/scipy, il s'agit de simples tableaux à 2 (niveaux de gris) ou 3 (couleur) dimensions. Et il suffit d'utiliser des "slices" pour acceder à une sous partie (block) de l'image.

    pour info les fonction pour lire/écrire/afficher les images sont dans scipy.misc

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    785
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 785
    Par défaut
    A merci, je vais regarder ça. En cherchant je suis tombé sur pythonware je sais pas si ça se vaut?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    la PIL (python image library) est pratique notamment si tu veux dessiner dans ton image. Pour la manipulation directe de pixels, je préfère nettement l'utilisation de tableau numpy, ce qui permet de vectoriser les opération (tu evites les boucles imbriquées qui peuvent être très lente en python).

    Au passage tu peux passer de l'un à l'autre grâce aux fonctions fromimage et toimage de scipy.misc.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Par défaut
    Citation Envoyé par Alexis.M Voir le message
    la PIL (python image library) est pratique notamment si tu veux dessiner dans ton image. Pour la manipulation directe de pixels, je préfère nettement l'utilisation de tableau numpy, ce qui permet de vectoriser les opération (tu evites les boucles imbriquées qui peuvent être très lente en python).

    Au passage tu peux passer de l'un à l'autre grâce aux fonctions fromimage et toimage de scipy.misc.
    Est-il possible d'expliciter ce que signifie "vectoriser" ? Avec un exemple simple ?
    J'ai dans l'idée que c'est un reshape d'une matrice pour en faire une matrice avec une seule ligne.

    Est-ce exact ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Citation Envoyé par lamingue Voir le message
    Est-il possible d'expliciter ce que signifie "vectoriser" ? Avec un exemple simple ?
    J'ai dans l'idée que c'est un reshape d'une matrice pour en faire une matrice avec une seule ligne.

    Est-ce exact ?
    Vectoriser, c'est éviter les boucles explicites, en utilisant des opérations qui traitent directement des tableaux/matrices.

    par exemple, voici 2 matrices de dimension 2x2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> from numpy import *
    >>> A = array([[1,2],[3,4]])
    >>> B = array([[3,4],[5,6]])
    pour additionner les éléments de A et B, on pourrait écrire, sans vectoriser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> C = empty_like(A)
    >>> for i in range(C.shape[0]):
    ... 	for j in range(C.shape[1]):
    ... 		C[i,j] = A[i,j] + B[i,j]
    Avec vectorisation:
    Cela va plus loin que les "simples" opérations matricielles; on a aussi le "broadcasting", qui permet d'appliquer des opérations à des tableaux de taille différentes (sous certaines conditions de compatibilité).

    Par exemple, pour multiplier tous les éléments de A par 2, on peut écrire:
    2 est un scalaire, mais il peut être considéré comme une matrice avec une ligne et une colonne, qui est agrandie par duplication à la taille de A, et la division procède élément par élément (c'est le principe; c'est certainement plus optimisé que cela).

    Si maintenant je veux multiplier la première colonne par 2 et la seconde par 3:
    Ou bien la première ligne par 2 et la seconde par 3:

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    785
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 785
    Par défaut
    Comment se fait l’installation de la partie scipy.

    je ai récupéré la dernière version sur sourceforge :

    http://sourceforge.net/projects/scipy/files/


    j'ai téléchargé le zip, mais je vois pas ou l’installer, même en le dézipant on n'obtient pas d’exécutable. Je n'ai pas trouvé la version avec laquelle il est compatible.

  8. #8
    Membre émérite
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Par défaut
    En général, il y a un fichier setup.py. Pour compiler et installer tu peux faire:

    $ python setup.py install [--prefix=some_non_default_path]
    (les [] indique que c'est optionnel)

    cela nécessite que les distutils soient installés mais il me semble que c'est standard.

    Sinon, si tu as easy_install ou pip d'installé:
    $ easy_install [--prefix=some_path] scipy
    Il devrait faire les vérifications de dépendance, le téléchargement de la version compatible, sa compilation et son installation.

    Après j'imagine que tu es sous Windows ou Mac (sous Linux il suffit de choisir les paquets à installer), et je n'ai aucune expérience de l'installation sous ces systèmes

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    785
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 785
    Par défaut
    En fait, il y a un .exe, mai il faut aller dans les dossier et pas s’arrêter au téléchargement proposé. Par contre j'ai pas retrouvé ou il était pour metre le lien au cas ou .

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/03/2007, 15h39
  2. [FLASH 8] BitmapData -> changer des pixels d'une image en alpha
    Par Lorenzo77 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 15/12/2006, 17h13
  3. [c++.Net] Parcours des pixels d'une image
    Par CaptainChoc dans le forum Framework .NET
    Réponses: 4
    Dernier message: 27/11/2006, 16h05
  4. diffusion des pixels d'une image
    Par hagui dans le forum Traitement d'images
    Réponses: 11
    Dernier message: 11/05/2006, 18h31
  5. [MFC]déplacement des pixels d'une image
    Par hagui dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2006, 16h51

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