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

MFC Discussion :

Appliquer un flou gaussien dynamique à une BMP !!


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut Appliquer un flou gaussien dynamique à une BMP !!
    BONJOUR,

    Est - ce que quelqu'un connaitrait un site ou bien une astuce qui me permettrait d'appliquer un flou à une image .BMP 24 bits je précise !!
    Je veux parler du flou gaussien.

    Je sais qu'il faut agir sur la partie données du BMP après (la palette n'existe pas) le bitmapinfo.
    J'arrive enfin à afficher une telle image à la déformer dynamiquement suivant une sinusoide mais pas à y appliquer un flou dynamique paramétrable qui se résorberait dans le temps, comme de l'eau !!

    JE SAIS QU'IL Y A DES OPERATEURS DE FILTRE PASSE BAS ET HAUT qui permettent de rendre plus nette une image, mais pour ce qui est du flou....
    ce que je vois sur le net ne sont que des equations mathématiques savantes mais pas appliqué directement à l'image.

    MERCI D'AVANCE.
    8)

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    je vois que tu te débrouilles pas mal en flou gaussien: ton post en est la preuve

    plus sérieusement, un flou gaussien fonctionne ainsi:
    - tu crée ta matrice de convolution (5x5 par exemple)
    - puis tu balaye ton image avec (attention au bords)

    pour les details, tu as tout ce qu'il te faut ici
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut RE: flou gaussien
    Merci BCPPPP !!
    Je connaissais cette procédure (matrice) mais je ne savais pas qu'elle produisait un flou de type gaussien.
    J'essayais en fait plusieurs opérateurs, sans succès (blocage) car:

    Mon principal problème réside dans le code BMP sous MS Visual C++ 6.0.
    Je souhaitais, en fait, modifier la zone de données du BMP et conserver l'ancienne dans un tableau dyamique.
    ET ICI, cela me posais problème car ce tableau à une dimension contient les données du BMP composante de couleur par composante de couleur.
    C'est à dire que pour un pixel, tab[0]= sa valeur en Rouge,
    tab[1]= sa valeur en Vert, tab[1]= sa valeur en Bleu, et etc à la suite
    pour les autres pixels. J'avais donc un problème pour les regrouper en octets tout en conservant l'image de départ pour un flou dynamique.

  4. #4
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    cette fonction prend en argument un tableau a une dimension , qui contient des données RGBA et applique un flou gaussien,
    le tableau a une dim c img->data

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    void Blur(GTexture::Image *img) {
     
     
    		int i,j,index;
    		float red, green, blue;
     
    		float filter[3][3] = {  {1.0,2.0,1.0},
    								{2.0,4.0f,2.0},
    						        {1.0,2.0,1.0}};
    		float div = 16.0f;
     
    		int size = (img->width) * (img->height) * 4;
     
    		for(int a = 0; a < size ; a +=4) {
     
    			red = 0;
    			green = 0;
    			blue = 0;
     
    			for(j=0;j<3;j++)
     
    				for(i=0;i<3;i++)
    			{
     
    				index = ( a + ((j-1)*4) ) + (((i-1)*4)*img->height); 
     
    				index = clamp<int>(index,0,size);
     
    				red   += (float)img->data[index]    * filter[j][i];
    				green += (float)img->data[index+1]  * filter[j][i];
    				blue  += (float)img->data[index+2]  * filter[j][i];
    			}
    			red   /= div;
    			green /= div;
    			blue  /= div;
     
    			red   = clamp<int>(red   , 0 , 255);
    			green = clamp<int>(green , 0 , 255);
    			blue  = clamp<int>(blue  , 0 , 255);
     
    			img->data[a  ] = (unsigned char)red;
    			img->data[a+1] = (unsigned char)green;
    			img->data[a+2] = (unsigned char)blue;
     
    			}
    		}

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 195
    Points : 82
    Points
    82
    Par défaut RE: blur
    MERCI AUSSI A TOI VENOMELECTRO !! Je vais enfin pour faire un super truc!!

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

Discussions similaires

  1. Flou Gaussien sur une Bitmap
    Par Safety dans le forum Android
    Réponses: 5
    Dernier message: 17/01/2011, 15h15
  2. Réponses: 3
    Dernier message: 14/04/2007, 21h30
  3. [FLASH 8] Charger dynamiquement des bmp depuis une url
    Par matN59 dans le forum Intégration
    Réponses: 1
    Dernier message: 24/04/2006, 15h24
  4. recherche filtre flou gaussien
    Par gimlithedwarf dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2002, 22h32
  5. Réponses: 2
    Dernier message: 30/05/2002, 10h19

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