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

VB 6 et antérieur Discussion :

VB6, extraction des intensités lumineuses RVB d'une image bitmap


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 47
    Points : 13
    Points
    13
    Par défaut VB6, extraction des intensités lumineuses RVB d'une image bitmap
    Bonjour,

    Partant d’une image bmp, je voudrais pouvoir en extraire l’intensité lumineuse dans chaque bande R,V,B de chaque pixel en utilisant les fonctionnalités de VB6.
    A part charger l’image dans une picturebox, je ne vois pas la suite de la marche à suivre ( quelles instructions ...)

    Dernier test :en fait en utilisant " PixelColor(x, y) = Picture.Point(x, y) j'obtiens des valeurs sur une image test simplifiée variant entre 0 et 16 777 215 ( noir au blanc ) mais je saurais dire à quoi elle correspondent.

    cordialement

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 47
    Points : 13
    Points
    13
    Par défaut VB6, extraction des intensités lumineuses RVB d'une image bitmap
    Bonjour,

    En attendant, j'ai trouvé quelques pistes mais le décodage que j'en fais ne m'avance pas beaucoup.
    En gros il suffirait de créer des fonctions( pour chaque couleur) du type :

    "Public Function RedFromRGB(ByVal rgb As Long) _ As Integer "

    et, pour capturer la couleur d'un pixel de l'écran, de créer une fonction d'appel type

    " Public Sub GetPixelScreenColor(ByVal x As Long, ByVal y As Long, ByRef Red As Integer, ByRef Green As Integer, ByRef Blue As Integer)"
    *
    RGBPx = GetPixel(GetDC(0&), x, y) ' RGBPx,= couleur du pixel "capturé".
    Red = &HFF& And RGBPx
    Green = (&HFF00& And RGBPx) \ 256
    Blue = (&HFF0000 And RGBPx) \ 65536
    *
    End Sub

    Je n'arrive pas à comprendre la signification de ce code ( à part qu'on utilise de l'hexa) ainsi que je pensais pouvoir utiliser Point(x,y).....

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 201
    Points
    17 201
    Par défaut
    Salut

    Je ne programme plus en VB6, mais l'ai pratiqué de nombreuses années.
    Dans cette contribution Convertisseur couleur, déplacement curseur souris au clavier, prise de mesures en pixels, capture de couleurs (pipette),
    en cliquant sur le lien de téléchargement tu pourras voire les sources te permettant d'avoir différentes fonctions en rapport avec ton besoin.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 47
    Points : 13
    Points
    13
    Par défaut VB6, extraction des intensités lumineuses RVB d'une image bitmap
    Bonsoir,
    Merci de ta réponse, je désespérais devant le peu de retour…

    j’ai récupéré dans ton code «*Mouse*» ,les relations permettant de calculer chaque composante dans les fonctions R,V,B. du code.
    Dans une boucle x,y (dimensions de l’image analysée ) j’utilise alors les quatre lignes de code*suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     PixelColor(x, y) = Picture.Point(x, y)  ‘Picture = image analysée
     
     Bleu(x, y) = Int(PixelColor(x, y) / 65536)
     Vert(x, y) = Int((PixelColor(x, y) - (65536 * Bleu(x, y))) / 256)
     Rouge(x, y) = PixelColor(x, y) - ((Bleu(x, y) * 65536) + (Vert(x, y) * 256))
    Et ça marche…..*: une fois les composantes obtenues pour chaque pixel, je reconstitue l’image de base avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pset(x, y), RGB(Rouge(x, y), Vert(x, y), Bleu(x, y))
    Je ne m’attendais pas à un code aussi simple après avoir lu des codes ou il était question plutôt de GetPixel, de l’utilisation de fonctions à appeler, peut-être que la complication venait également du format en hexa*? La rapidité de traitement est plus importante si on utilise de GetPixel?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 105
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 105
    Points : 1 607
    Points
    1 607
    Par défaut
    tu vas trouver sur https://www.codeproject.com/Articles...h-Visual-Basic du code qui va te sortir les infos du bitmap (dont les niveaux RVB des points de l'image); ça se base sur le décodage du format BMP, lu comme un fichier binaire https://fr.wikipedia.org/wiki/Windows_bitmap

Discussions similaires

  1. Extraction des noms de fichier depuis une cellule
    Par badoud89 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 26/07/2015, 00h06
  2. [DI] Extraction des 20 premières lignes d'une table SAS
    Par garciat dans le forum Outils BI
    Réponses: 2
    Dernier message: 27/05/2015, 10h12
  3. Vb6: récupérer des valeurs de champs d'une fenêtre externe
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 14/05/2014, 11h53
  4. Extraction des points du contour d'une image skeleton
    Par jaweher89 dans le forum OpenCV
    Réponses: 0
    Dernier message: 15/05/2013, 17h09
  5. Réponses: 4
    Dernier message: 05/01/2006, 20h29

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