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

C++Builder Discussion :

manipuler les image .BMP


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut manipuler les image .BMP
    salut ,

    j'ai realisé un ptit code sous builder pour l'image processing mais j'ai quelques problemes ,

    1/ pour zoomer je fas image->Width=newWidth or je ne sais pas si pour TImage il y a une fonction qui zoome lesimage.

    2/ transformer l'image en niveau de grais en faisant R+G+GB/3 pour chaque pixels et sa me parais tres lourd.

    3/pour les contour je suis blokéééé

    j'a fais commeme la dérivée en utilisant quelques fitres mais il ya des bruits .


    toute aide sera la bienvenue

  2. #2
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    Pour l'image en niveau de gris, ta formule n'est pas rigoureusement exacte, bien que la plus connue

    Je te laisse aux mains du Wiki
    http://fr.wikipedia.org/wiki/Niveau_de_gris

  3. #3
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut

    1/ pour zoomer je fas image->Width=newWidth or je ne sais pas si pour TImage il y a une fonction qui zoome lesimage.
    Via la propriété Stretch le composant TImage peut redimensioner le Graphics::TBitmap à la taille du TImage. C'est un zoom sans interpolation je crois. Cependant le TBitmap du TImage n'est pas zoomé lui. C'est juste son dessin qui est zoomé.

    Si tu veux vraiment zoomer le TBitmap toi-même il faut le programmer via la méthode StretchDraw de TCanvas qui fait une copie d'un TBitmap dans un TRect en redimensionnant le TBitmap à la taille du TRect (l'aide te l'expliquera mieuw que moi sans aucun doute !!!).

    2/ transformer l'image en niveau de grais en faisant R+G+GB/3 pour chaque pixels et sa me parais tres lourd.
    Ya pas 36000 méthodes (à part passer par une table mais là c'est vraiment lourd).

    Par contre il y a généralement 2 conversions de gris :

    - conversion absolue : (R + G + B) / 3
    - conversion relative à la perception humaine : 0.30*R + 0.59*G + 0.11*B
    3/ pour les contour je suis blokéééé
    Le sujet est vaste et absolument dépendant de l'image : tu ferais mieux de faire un tour dans le forum Algorithmes.

    Flo.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Il vaut mieux prendre 59%, 30% et 11%.
    Cette conversion permet de détecter des transitions de composantes pures (R ou G ou B).

    Pour vérifier le problème suscité par le (r+g+b)/3, il suffit de prendre un fond rouge (clRed), d'y dessiner un cercle vert (clGreen) et un rectangle bleu (clBlue).
    Avant conversion, ce graphisme est à la perception ce que le nez est à Cyrano.
    Par contre, après conversion, on peut dire que tout bruit aura disparu !

    A plus !

  5. #5
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Tu as tort (excuse-moi pour ce ton catégorique !!! .. il est pas à apprendre méchamment ... )

    Le choix de la formule (de ces coefficients) dépend entièrement du problème dans lequel elle s'insère.

    Si ça arrange au concepteur de l'algo de faire fusioner le rectangle bleu, le cercle vert et le fond rouge ...

    Par ailleurs, c'est la teinte qui doit permettre au mieux de séparer les 3 éléments. Utiliser la luminance dans cet optique amène à une solution qui n'est pas bijective.

    Dans le système HLS, R, G et B ont autant d'influence l'une que l'autre. Le disque de teinte est ainsi partagé en 3 (120 degrés d'influence par composante). HLS est une mesure absolue. La luminance correspondante est donc la somme des 3 composantes divisisée par 3. La conversion pour passer de l'espace RGB à celui de HLS est linéaire.

    Le systeme Lab, au contraire, a été construit pour calquer au mieux la perception visuelle humaine. Le disque de teinte est ainsi discontinue quant à l'influence des 3 composantes : les teintes du bleues sont ainsi très compressées (la conversion n'est pas linéaire). Le jaune prend une importance très grande. Le calcul de la luminance correspondant doit alors privilégiér les teintes du vert (moins flagrant en Lab car la formule est complexe).

    Bref une recherche sur ces 2 espaces sur wikipedia t'en diras plus et mieux que moi. Mais pour finir tout dépend du problème.

    Flo.

Discussions similaires

  1. Manipuler les images d'une page web en perl
    Par trealais dans le forum Web
    Réponses: 1
    Dernier message: 11/06/2009, 09h31
  2. Librairie pour manipuler les images
    Par maa dans le forum C#
    Réponses: 3
    Dernier message: 11/04/2008, 19h33
  3. Réponses: 19
    Dernier message: 04/03/2008, 11h36
  4. manipuler les images .bmp
    Par amoeva dans le forum C++Builder
    Réponses: 1
    Dernier message: 23/04/2007, 14h13
  5. manipuler les images .bmp(en tant que matrices)
    Par amoeva dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/04/2007, 01h46

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