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

VC++ .NET Discussion :

Quelle méthode utiliser pour traiter les images


Sujet :

VC++ .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Points : 29
    Points
    29
    Par défaut Quelle méthode utiliser pour traiter les images
    Bonjour
    Je souhaite tester le C++ .net pour faire du traitement d'images
    J'ai essayé les méthodes Bitmap->getpixel mais c'est beaucoup trop lent.
    J'ai essayé le MemoryStream cité dans la FAQ mais pour accéder à l'entete et aux données c'est l'enfer quand on ne connait pas le type d'image/données qu'il y a dedans.
    Alors j'aimerais avoir l'avis d'un pro je récupère donc mon image en Bitmap et je souhaite la mettre dans une structure style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    image{ 
    **pixRGB
    height
    width
    }
     
    pixRGB{
    unsigned char R,G,B
    }
    mais avec une méthode très rapide.
    J'ai vu dans le forum que certains utilisent le BitmapData...
    Comment gérer cette structure ?
    Pour info je souhaite transférer un Bitmap vers ma structure, faire mes traitements puis réinjecter ma structure dans le bitmap afin de l'afficher.
    Merci
    DD_Le_Terrible

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tout dépend si tu veux utiliser l'api win32 (ce qui est possible avec une appli .net) ou si tu veux etre en managé pur.

    .net dispose de beaucoup de classe pour gérer les images, ca devrait te convenir.
    Regarde du coté de System.Drawing.Graphics, System.Drawing.Bitmap

    Plus préciséments, tu peux regarder du coté de System.Drawing.Bitmap.LockBits
    System.Drawing.Graphics.DrawImage

    Mais après, tout dépend de ce que tu veux faire en "traitement d'image"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    tout d'abord merci pour la réponse
    En traitement d'image je souhaite faire du TDI basique (convolution, détection de contours, FFT, DCT,...) au début puis entamer une phase de détection de mouvements(mais aussi détection couleur) donc sur une séquence d'images d'où l'importance d'un algo rapide.

    J'avais déjà développé en SDL sous linux(détection, localisation, identification de trous pour le robot E=M6), j'aimerais donc bien réutiliser ces librairies de fonctions que j'ai développées.

    Une autre question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BitmapData^ pixelsImage1 = imageBMP->LockBits(Rectangle(0, 0, W, H), ImageLockMode::ReadOnly, PixelFormat::Format24bppRgb);
    PixelFormat::Format24bppRgb : me converti les pixels dans le format désiré c'est à dire RGB 24bits c'est juste pour indiquer à la fonction que l'image est en RGB24bits ?
    Merci
    DD_Le_Terrible

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Bon j'ai trouvé mes réponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int W =imageBMP->Width, H=imageBMP->Height;
        BitmapData^ bytImage = imageBMP->LockBits(Rectangle(0, 0, W, H), ImageLockMode::ReadOnly, imageBMP->PixelFormat);
        IntPtr ptrImg= bytImage->Scan0;
     
        array<Byte>^rgbValues = gcnew array<Byte>(W*H*3);
        System::Runtime::InteropServices::Marshal::Copy( ptrImg, rgbValues, 0, W*H*3 );
    Merci
    DD_Le_Terrible

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/03/2013, 14h20
  2. [Flex4] Quelle méthode utiliser pour communiquer en HTTP ?
    Par berceker united dans le forum Flex
    Réponses: 22
    Dernier message: 18/01/2011, 23h46
  3. quelle méthode utiliser pour la detection de courbe paramétrique?
    Par Elodie31 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 27/06/2008, 09h43
  4. Quelle méthode utiliser pour un formulaire
    Par sam01 dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2006, 16h42
  5. Réponses: 4
    Dernier message: 02/05/2006, 12h08

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