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

Calcul scientifique Python Discussion :

fonction traitement image


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 6
    Points
    6
    Par défaut fonction traitement image
    bonjour à tous, je suis en train de créer un logiciel de traitement d'image en python...Cependant, j'ai quelques petits problèmes....

    je veux travailler avec la luminosité, pour augmenter la luminosité il faut ajouter une valeur constante à chaque niveau de gris. Si le niveau de gris est supérieur à 255 après cette modification, on le ramène à 255.

    Est ce que quelqu'un sait comment je peux faire pour écrire un algorithme me permettant d'augmenter la luminosité?

    merci d'avance

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour et bienvenue au club des développeurs.

    Je te conseille de lire ce tutoriel pour commencer.

    Bonne lecture.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Membre habitué Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Points : 131
    Points
    131
    Par défaut
    tu devrais egalement t'aider/t'inspirer de la bibliotheque PIL.

  4. #4
    Membre éclairé
    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
    Points : 752
    Points
    752
    Par défaut
    Voici quelque chose qui devrait faire ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import PIL.Image as Image
    from scipy import array,ones
     
    i = array(Image.open("une image"),"float")
    i+=value # augmente toute les valeurs de "value"
    i255 = ones(i.shape)*255. # crée un tableau de même dimension que l'image avec des 255 partout
    m = array([i.flatten(),i255.flatten()]).min(0) # calcul le min des deux sur la version "applatie"
    result = Image.fromarray("RGB", array(m.reshape(i.shape),"uint8")) # redonne la bonne forme et convertit en image
    Dans l'idéal il faudrait mieux changer d'espace colorimétrique (HSV par exemple) augmenter la valeur est revenir en RGB.

    En espérant avoir aider...

    Pour quelquechose de plus correcte du point de vue colorimetrique mais sans doute plus lent :
    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
    16
     
    import PIL.Image as Image
    from scipy import array,ones
    from colorsys import rgb_to_hls, hls_to_rgb
     
    i = array(Image.open("une image"),"float")/255. # colorsys prend des valeurs entre 0.0 et 1.0
    nrow,ncol = i.shape[:2]
    # On crée un tableau 2D avec pour chaque ligne les composante rgb d'un pixel
    hlss = array([  rgb_to_hls(rgb) for rgb in i.reshape(nrow*ncol,3) ])
    # On augmente la valeur de la luminance
    hlss[:,1]+=value
    # On seuille à 1.0
    m1 = ones(hls.shape)
    hlss = array([hlss,m1]).min(0)
    # On recrée l'image en rgb
    r = array([ hls_to_rgb(hls) for hls in hlss]).reshape(i.shape)*255.
    Je n'ai pas executé le code donc je ne peut pas garantir qu'il fonctionne mais au moins ça te donne une idée...

Discussions similaires

  1. [ETUDES] Traitement images ou intelligence artificielle ?
    Par green_castor dans le forum Etudes
    Réponses: 9
    Dernier message: 29/11/2005, 13h01
  2. traitement image
    Par Feanorin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 20/06/2005, 17h01
  3. Réponses: 5
    Dernier message: 25/12/2004, 23h17
  4. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 09h44

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