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 :

[Image] Création d'une image Niveaux de Gris 16 bits


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut [Image] Création d'une image Niveaux de Gris 16 bits
    Bonjour,

    Eh bien je crois que presque tout est dans le titre! Je programme en Python depuis un petit mois, donc je m'autoproclame "initié". Hop!

    Quelques détails : il s'agit de créer une image à partir d'un array d'entiers 16 bits (signés ou pas), dérivé de numarray. Mais je pense qu'avec numpy ou Numeric c'est la même...

    J'ai bien essayé avec le module Image mais je ne crois pas avoir trouvé le bon mode de conversion. Les valeurs de l'array (qui seront donc le niveau des pixels) sont majoritairement entre 500 et 800, ce qui ne colle pas avec du 8 bits... J'ai obtenu entre autre des résultats avec une image blanche, donc tout à 255. Pour le contraste, c'est pas génial

    Quelqu'un sait comment faire ...? Merci!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut
    Dites moi si la question est trop simple, trop compliquée, mal formulée...

    J'ai vu que quelques-uns font du traitement d'images, personne n'a jamais bloqué sur un problème du genre?

  3. #3
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Tu cherches a avoir quoi au final ? une image en niveau de gris, une image couleur ? (en gros à quoi correspond la valeur d'un pixel) parce que typiquement en niveau de gris c'est du 8 bits et en RGB, c'est du 24 bits (ou 32)

    Edit: oups j'avais pas lu le titre. Donc c'est bien du niveau de gris.

    Donc je modifie:
    Si j'ai bien compris, tes nombres sont compris entre -32768 et +32768
    - Une première approche est de linéairement remettre l'échelle entre 0 et 255 c'est à dire de considérer que -32768 correspond au pixel 0 et +32768 au pixel 255. Pour cela il suffit pour chaque pixel de faire :
    newpixel = (ancienpixel + 32768) * 255 / 65536
    - Après si tes valeurs ne parcourent pas l'ensemble du spectre -32768 -> +32768, tu peux tout d'abord chercher le min et le max puis pour chaque pixel :
    newpixel = (ancienpixel - min) * 255 / (max-min)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut
    Merci pour la réponse!

    Je vois ce que tu veux dire, j'y avais pensé sans essayer de le mettre en application parce qu'a priori... le problème n'est qu'à moitié résolu.

    J'aurais bien une image contrastée en faisant comme ça, par contre je ne conserverai pas l'info sur les valeurs de mes pixels (qui sont en Int16 donc entre -32768 et 32768, comme tu dis). Et c'est embêtant, parce que les valeurs de 500, 600... correspondent à des microns! Et comme l'image est destinée à être analysée (histo, seuillage, profil...), y'a comme qui dirait "une couille".

    Donc l'idéal serait de faire du niveaux de gris 16 bits. Et je sais que c'est possible, j'en ai déjà vu !

  5. #5
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    en fait, mettre l'image entre 0 et 255, cela sert juste pour avoir un aspect visuel pour l'humain. Sinon pour faire de l'analyse, tu continues de travailler toujours avec tes matrices (en fait ce n'est plus une image) en int16

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut
    Ouaip c'est une solution mais j'aimerais pouvoir exporter une image niveaux de gris 16 bits pour l'exploiter facilement avec un logiciel approprié. Si tu connais une librairie python qui permet de le faire, pourquoi pas!

    Mais pour le moment, j'ai peur que mes compétences en programmation (et surtout le temps) ne m'obligent à exporter l'image vers un logiciel tout fait, tout propre, par exemple photoshop, ou dans mon cas plutôt aphelion, si tu connais.

    Aaaaarg, j'ai peur d'en demander trop là... pourtant ça doit bien être faisable! La librairie Image de Python a bien plusieurs modes de conversion mais je n'ai pas l'impression d'avoir trouvé le bon... et je n'ai pas trouvé d'aide détaillée là dessus. Est ce que le problème ne peut pas venir du fait que Image ouvre automatiquement une nouvelle image créée, en Bitmap avec Paint (en tout cas sur l'ordi que j'utilise)?

Discussions similaires

  1. Création d'une image à partir d'une fenêtre
    Par bbkenny dans le forum VBScript
    Réponses: 10
    Dernier message: 27/03/2011, 04h11
  2. [XL-2007] Création d'une image jpg via une Macro.
    Par djflnj dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/09/2010, 15h47
  3. Convertir une image jpeg en une image .ico. .
    Par sonja dans le forum Imagerie
    Réponses: 5
    Dernier message: 14/05/2007, 18h41

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