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

LabVIEW Discussion :

Transformer une image jpeg en signal numérique


Sujet :

LabVIEW

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Transformer une image jpeg en signal numérique
    bonjour a tous,
    j'ai actuellement un projet à réaliser sur le traitement d'images. le but étant de transformer une image jpg en signal numérique sous labview .
    J'aimerais donc savoir si vous pouviez m'indiquez comment faire sorte sous Labview pour transformer les pixels de cette image en un signal numérique ( les commandes à utilisées).
    Merci d'avance.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    c'est moi. T'as essayé ce que je t'avais proposé?
    Sinon poste un vi sur lequel on peut travailler, essaie de trouver les vi que je t'avais proposé

    allez dans la palette de fonction et utilisez le vi lire fichier jpeg dans le menu "graphique et sons-> formats graphiques".
    Ce vi renvoie une variable "image" qui contient les composantes de couleur de chaque pixel de l'image jpeg dans l'ordre RVB si je me souviens bien.

    Pour créer un signal numérique à partir des pixels, le mieux est de rassembler les 3 composantes de chaque pixel en 1 valeur de couleur. C'est ce que fait le vi RGBToColor dans "graphique et sons-> fonctions d'image".

    Le signal peut ensuite être ramené au pro rata de la valeur numérique de la couleur.

    Et voilà.
    L'ami des tout petits

  3. #3
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    en PJ, le VI zippé
    Fichiers attachés Fichiers attachés
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Je ne peux pas ouvrir le vi, je suis encore et toujours en 7.1
    Je pourrais avoir des copies d'écran??
    L'ami des tout petits

  5. #5
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Bonjour,

    En PJ une image correspondant à la récupération de chaque pixel.

    Pour résumer, le premier VI sert à lire une image JPEG et a obtenir une ImageData qui est une structure de travail des image propre à Labview.
    Le second VI sert a convertir cette ImageData en une série de tableaux 1, 8, 16 ... bits qui donne accès à chaque pixel (et sa couleur selon le format voulu).
    J'ai ajouté ensuite 2 boucle FOR afin de recuperer specifiquement chaque pixel pour travailler dessus.
    Je m'arrête ici car je ne comprend pas la demande de depart: c'est quoi un signal numérique pour toi?

    Voili et a+
    Images attachées Images attachées  
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    merci pour votre aide

    un signal numérique, c'est une suite de bits, c'est a dire des 0 et des 1
    il faut que je rajoute un graph à la fin et que j'obtienne un signal numérique
    mais je n'y arrive pas encore.

  7. #7
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Salut,

    Ok pour ta définition.

    Par contre, où trouve-tu ton signal dans ton image ????
    Je suppose que cette image est un copie ecran d'un graph.

    a+
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    il faudra pas attendre de réponse de ma part avant 10 jours, je (re)pars au ski . C'est beau la Savoie .

    Alors voila: Si tu ne les a pas encore trouvé, cherche les vi sur la copie d'écran que Scyrius a envoyé. Refais le même vi. Je propose même de ne pas utiliser le 3ème ("ColorToRGB").

    Chaque couleur est codée avec les 3 composantes Rouge, Vert et Bleu, chacune sur 8 bits (valeurs de 0 à 255). Donc une couleur correspond à une valeur codée sur 3*8=24 bits (si y'a pas de transparence, mais restons simple). Si c'est possible pour toi, il faut donc utiliser un signal numérique de 24 bits (pour 1 pixel).

    Les valeurs codées sur 24 bits sont celles qui rentrent 1 par 1 dans la 2ème boucle FOR. Donc ton signal numérique, tu l'as déjà à ce niveau. Ensuite, tu peux transformer la valeur en 1 tableau de 24 booléens pour avoir le signal bit à bit. Ça, c'est la partie simple...

    Maintenant, et je te laisse voir ça avec d'autres, quel matériel vas-tu utiliser pour créer un vrai signal numérique (TTL,...) et pour quelle application ? Ca reste software peut-être ?? C'est aussi en fonction de ça que la solution qu'on te donne peut ou non convenir. Alors explique nous bien ce que tu en fais de ce signal.

    Voilà maintenant je vais reposer mon cerveau.

    à+++
    Gabi
    L'ami des tout petits

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    bonjour,

    Mais comment je fais pour transformer la valeur en 1 tableau de 24 booléens pour avoir le signal bit à bit ???
    En gros je dois faire la transmission numérique dans un réseau mobile (télécom) donc pour envoyé une image je dois la transformer en un signal numérique puis faire la modulation pour pouvoir la transmettre dans un réseau mobile.
    donc normalement il me manque juste la commande VI pour se tableau de 24 booléens et il faut que je rajoute un graph a la fin pour pouvoir voir mon signal numérique ( il me faut une preuve que cette image a était bien transformé en un signal numérique donc il me faut un graph a la fin)
    Voila et merci d'avance.

  10. #10
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    De quoi dispose-tu pour faire la transmission coté matériel ?
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Hello, me v'la tout bronzé. Sinon pour transformer un nombre en tab de booléens, va dans la palette de fonctions->Booleans->Number to Boolean Array.
    C'est tout!
    A+
    L'ami des tout petits

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    jai trouver une commande (Nombre en tableau booléens) .

    mais quand je rajoute le graphe pour voir mon signal numérique jarive pas a cablé les 2 ?? en gros il m'afiche ( vous avez connecté deux terminaux
    (de types différents, la source est de type tableau 1D booléen,le recepteur est de type tableau 1D de double précision réel 64 bits)??

  13. #13
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    tu peux utiliser un autre type de graphe: le Digital Waveform Graph. Le problème c'est qu'il lui faut une waveform en entrée. Dans ce cas, envoi ton tableau de booléens dans ce vi: 2D Waveform->Digital Waveform->Boolean Array To Digital.
    Tu noteras qu'il lui faut un tableau 2D. Le plus simple, si ça te convient, c'est d'obtenir toutes tes valeurs numériques dans un tableau 1D, de transformer ce tableau 1D en tableau 2D de booléens. Ensuite ce tableau dans le vi précité avant d'envoyer la waveform de sortie dans le graphe numérique digital qui affichera les voies numériques les unes au dessus des autres. Si jamais l'affichage est complètement bizarre, essaie de transposer ton tableau 2D avant d'en faire une waveform.
    Ça a l'ai compliqué comme ça mais c'est juste une histoire de types de données...

    Si jamais t'es allergique aux waveform (un peu comme moi), tu peux modifier les données booléennes pour les mettre dans un graphe "normal", mais il faut me dire exactement ce que tu veux afficher et sa dynamique (temps réel ou à la fin). N'hésites pas à faire un dessin dans ce cas.

    A+
    L'ami des tout petits

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    bonjours,
    merci pour ta réponse mais je trouve pas le Digiotal waveform Graph???????
    et je comprend pas pour quoi je dois trouver plusieurs graphs????
    normalement je dois trouver un seul graph numérique vu que l'image est une suite de bites numériques( des zéros et des uns)
    la jai trouver une commande qui transforme un tableau booléen en tableau numérique je sais pas si sa va me servire a quelque chose??

  15. #15
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    si je comprends, tu veux tout afficher en série sans distinguer les pixels (si ce n'est qu'on change de pixel tous les 24 bits). Alors pour chaque booléen, tu dois appliquer le vi "Boolean To (0,1)", toujours dans la palette "Booleans". Il accepte directement un tableau de booleen en entrée.
    Au lieu d'un tab de bool, tu auras ton tab de bits (0 et 1).
    Et là tu peux garder le graphe normal.
    L'ami des tout petits

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse, ca marche enfin.

    Mais il y a toujours un problème: je n'ai pas eu un signal vraiment rectangulaire (signal carré), il y a des périodes carrées et d'autres triangulaires) ????

    Le but de mon programme est de transformer une image jpeg en une suite de bits ( des 0 et des 1) dans un tableau 1D, c'est a dire en entrée j'ai une image jpeg et en sortie, je devrais avoir des bits (des 0 et des 1) dans un tableau 1D. Le graph sert juste pour être sûr que l'image a été bien transformée en une suite de bits.

    Donc, à la sortie du VI "boolean To(0,1)", je mets un tableau 1D DBL, il m'a bien affiché des 0 et des 1 mais il m'affiche que 32 bits ( 0 et 1)?????
    Je ne comprends pas pourquoi ?

    En gros, si j'ai une image de 10ko, je devrais avoir normalement 80000 bits (des 0 et 1) alors que la, il m'a affiché que 32 bits .

  17. #17
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,

    le coup des triangles, c'est parce que le graphe ne sait pas qu'il a à faire à des données binaires. Il relie les points par des droites, c'est tout. Mais tu peux changer ça en faisant un clic droit sur la légende et en allant dans "Interpolation". Là tu peux choisir un des exemples de créneaux.

    Il faut aussi savoir qu'un graphe affiche ce que tu lui envoie uniquement en effaçant ce qu'il avait éventuellement avant. Sauf le graphe déroulant (ou waveform chart). C'est donc le mieux indiqué pour cette situation.
    L'ami des tout petits

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    bonjours
    merci la j'ai vrémen,t un signal carée
    mais je voudrais récupérer ma suites binaires (0 et 1) dans un tableau 1D , si par exemple j'ai une image de 10ko normalement je dois récupérer 80000 bits dans mon tableau alors que la il m'afiche que 32 bits ???
    voila le programe
    Fichiers attachés Fichiers attachés

  19. #19
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Heu, je ne vois aucun fichier dans le zip que t'as envoyé.
    Envoie des jpg si tu peux pas le mettre en LV 7.1
    L'ami des tout petits

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    voila
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Débutant] Méthode pour transformer une image numérique en image niveau de gris
    Par king_soft dans le forum Images
    Réponses: 4
    Dernier message: 21/03/2011, 14h33
  2. Réponses: 6
    Dernier message: 16/06/2007, 18h53
  3. Transformer une image en signal 1D
    Par Orus dans le forum Images
    Réponses: 5
    Dernier message: 14/03/2007, 15h26
  4. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 15h51
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 21h06

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