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

Visual C++ Discussion :

vc++ & matrice & image


Sujet :

Visual C++

  1. #121
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    CImage, c'est du GDI+ ?

    Je ne connais pas GDI+, je ne connais que GDI, qui est un ensemble de fonctions et non de classes. SetDIBits est une fonction de GDI qui peut marcher dans les deux sens, mais elle peut être un peu difficile à utiliser.

    Moi, je serais plutôt du genre à utiliser des valeurs sures de GDI, qui sont les fonctions de dessin:
    • LoadImage() ou tout autre moyen de charger le bitmap d'origine, quelle que soit sa profondeur de couleur.
    • CreateDIBSection() pour créer le bitmap 32 bits (et au besoin, arrondir les dimensions à 8 supérieurs)
    • GetDC() pour obtenir un DC vers l'écran
    • CreateCompatibleDC() *2 pour créer un DC pour chaque bitmap
    • ReleaseDC() pour libérer le DC écran.
    • SelectObject() *2 pour sélectionner chaque bitmap dans chaque DC
    • BitBlt() pour copier l'image d'un DC à l'autre
    • SelectObject() *2 pour remettre les anciens bitmaps dans leurs DC respectifs
    • DeleteDC() *2 pour détruire les DC.

    Bien sûr, c'est beaucoup plus long et plus lourd que d'utiliser SetDIBits(), mais c'est une chose que je peux faire par coeur sans regarder la doc.

    Pour toi qui ne connais ni l'une ni l'autre de ces méthodes, je te conseille SetDIBits(), ou bien les fonctions de GDI+ (pour lesquelles je ne pourrai pas t'aider).

  2. #122
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    euhhhh
    en CImage il ya les fonction:
    GetWidth() const // Ramène la largeur du bitmap
    GetHeight() const // Ramène la hauteur du bitmap
    GetBPP() const //Ramène le nombre de bits/pixel du bitmap
    SetType(int nType) // Affecte le type d'image utilisé
    GetPixel(int x, int y, LPBITMAPINFOHEADER BmInfo, int nColors, int nScanWidth, BYTE* lpBits) const
    // Retrouve la valeur d'un pixel qq soit le nombre de bits/pixels
    // Il faut fournir le pointeur de début du bitmap
    .
    .
    .

    et beaucoup plus d'autres

    pour ta fonctionn setdibt() franchement c la 1ere fois que j'entende ce mot
    je sais cmt elle fonctionne et comment je puisse la utiliser

  3. #123
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Je cviens de jeter un coup d'oeil à CImage: C'est une classe ATL/MFC basée sur GDI+.

    Si tu utilises déjà une CImage pour le bitmap d'entrée, tu peux juste utiliser deux CImage de formats différents et utiliser CImage::BitBlt() pour copier les données du bitmap ?-bits vers le bitmap 32-bits.
    Et la fonction membre GetBits() te donnera un pointeur vers ses Bitmap Bits...

  4. #124
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    ok merci
    si tu n'as pas la bibliothéque CImage , je px t'envoyer le doc
    desolé pour le dérangement

  5. #125
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    C'est bon.
    J'ai VS 2005 pro, je dois donc avoir CImage, et j'ai trouvé l'aide sur MSDN (tu devrais y chercher plus souvent).
    http://msdn.microsoft.com/library

  6. #126
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    ok c bien

  7. #127
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    quand j'ai lu la documentation de ce classe , je trouve que les images 32bits non supportable ds ce classe
    citation:
    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
    17
    18
    19
    20
    21
    22
     
    Classe "CImage"
    Image.cpp - Image.h :
    Version 2.7
    Réalisée par Philippe MIGNARD
    Email : philippe.mignard@hotpop.com
    CImage est une classe maintenant un DIB (image indépendante du périphérique utilisé) et toutes les fonctions nécessaires au travail sur ce DIB. Les possibilités de cette classe sont :
    •	Support des images 1, 4, 8 et 24 bits/pixel (toutes les fonctions supportent tous les types d’images, sauf sauvegarde sur disque selon le type d’image et le type de fichier de sauvegarde demandé), en couleur ou niveaux de gris pour les images 4 et 8 bits/pixel. Les filtres 24 bits ne sont applicables que sur des images en 24 bits.
    •	Affichage de l’image avec plein d’options disponibles (clip, stretch avec ratio ou non, transparent...) sur l’écran (fonctions rapides de Video For Windows ou GDI au choix) ou sur imprimante (fonctions GDI).
    •	Chargement et sauvegarde à partir du disque d’images de type BMP, DIB, BMP OS/2, RLE, PCX, TGA (Targa), GIF, JPEG*, TIFF*, PNG*.
    * Nécessitent l’utilisation de la librairie externe
    •	Chargement à partir d’une ressource (tout format).
    •	Copie de l’image dans le Presse-papiers et inversement.
    •	Miroir horizontal et vertical de l’image.
    •	Rotation de 90°, 180° ou 270°de l’image.
    •	Passage de l’image en négatif.
    •	Sélection d’un canal RVB.
    •	Ajustement du contraste et de la lumière.
    •	Correction des couleurs (linéairement), de la saturation, de la teinte et du facteur gamma.
    •	Dithering, selon la méthode Floyd-Steinberg en 2 passes pour la réduction de couleurs, mais peut passer de n’importe quel type d’image à n’importe quel autre.
    •	Initialisation facile, copie de classe à classe ou de Handle à classe...
    •	Compilation sélective selon les besoins du programmeur à l’aide de #define dans le stdafx.h du projet.

  8. #128
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Où as-tu trouvé cela?
    Tu veux dire que tu n'utilises pas la CImage de ATL/MFC ?
    CImage est supposée être définie dans atlimage.h...

  9. #129
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    bonjour
    mo j'ai tétéchargé cette bibliothéque à partir de net, cette une librairie contient beaucoup def fonctions de traitement d'image déja prédéfini:
    Image Doc (Français).doc
    voila le doc
    si tu vx que jet'envoie la bibliothéque ok

  10. #130
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    ah j' ai jété un oil sur CImage ALT/MFC
    en fait c pas la meme chose
    moi j'utilise vc++6.0 et je telecharge cette bibliotheque à partir d ce site
    http://micromeg.free.fr/programmeur.html

  11. #131
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Eh bien là, je ne peux plus vraiment t'aider...
    Ça sort complètement de mon domaine.

    Dans ce cas, il te reste la fonction SetDIBits() que tu peux utiliser pour convertir un bitmap (ses couleurs et ces bitmapbits) en bitmap 32bits...

  12. #132
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    aaaah bon
    le pb c que je sias rien sur cette fonction setDIBits
    et le grand pb c que les images 32bits sont non supporté ds c classe ( ce qui est annonvé ds le doc)

  13. #133
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    salut
    svp est ce quelqu'un a le code en vc++ de la transformée de fourier discrete appliquée sur une matrice
    merci d'avance

  14. #134
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Points : 63
    Points
    63
    Par défaut re
    Bonjour, je voudrais savoir ce que fait ton programme Matlab?
    est-ce qu'il prend traite de l'algorithme de Floyd et Steinberg ?
    Si oui cela m'interresse bcp car jen'arrive pas à l'implémenter sous matlab.

  15. #135
    Membre du Club Avatar de meera
    Inscrit en
    Mai 2006
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 294
    Points : 47
    Points
    47
    Par défaut
    bonjour
    non , mon programme ne traite pas ces algorithmes
    il traite seulement l'algorithme de la compression des images Jpeg et quelques opérations sur les images ( comme binarisation, histogrammes, seuillage........)
    algorithme de tatouage spatiale

Discussions similaires

  1. [cat] Concaténation de matrices d'images
    Par Mamadou1 dans le forum Images
    Réponses: 1
    Dernier message: 20/10/2007, 21h29
  2. Réponses: 43
    Dernier message: 14/06/2007, 18h56
  3. Transformer une matrice à une image
    Par stiko83 dans le forum C++
    Réponses: 24
    Dernier message: 02/08/2006, 00h11

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