# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Noyau de convolution de flou Gaussien

## riadh_ado

Slt les amis j'ai quelques questions que je ne comprend pas et je serais content de m'avoir aid a les rsolu.
*Comment a partir de la formule de gausse on obtient le masque? Est-ce quil y a une formule mathmatique qua partir "s=sigma" on dtermine le maque de convolution ?*Merci.

----------


## pseudocode

gaussian kernel:



```

```

avec  G(x,y) = Exp[ - (x^2+y^2)/(2*sigma^2) ]

----------


## millie

Voil le code que j'utilisais pour en dfinir un d'un certain rayon ( noter que la somme de tous les cofficients valent un ici pour viter que a paraisse sombre) :


```

```

A noter que si la matrice devient grosse, il est prferable de passer dans l'espace de Fourier.

La dfinition du masque dans l'espace de *Fourier* se fait alors de cette manire (on centre en largeur/2, hauteur/2)  :



```

```

Bon, ce n'est pas un code algorithmique, mais j'ai la flemme de la traduire.  ::mouarf::

----------


## riadh_ado

je pense que je ne suis pas precis dans ma question; Ma probleme consiste a determin un masque selon la valeur sigma, cad un exemple 
l'oprateur de convolution : est


est le masque 5x5 de s=1.4 est 



comment on peut determin ce masque, merci pour votre aide

----------


## millie

Je t'ai fourni l'algorithmique pour dterminer un masque gaussien de taille quelconque (donc 5*5 si tu veux, c'est  dire de rayon 2) avec sigma quelconque. Regarde la premire source que je t'ai donn.

----------


## riadh_ado

a quoi sert la fonction SetValue, je ne le comprend pas merci encore pour ton aide, vraiment merci

----------


## millie

Ca met la valeur au noyau  la position indique (a commence  0 la notation)

----------


## millie

Voil crit sous forme d'algorithme :

http://www.developpez.net/forums/sho....php?p=2001019

----------


## pseudocode

> Voil crit sous forme d'algorithme :
> 
> http://www.developpez.net/forums/sho....php?p=2001019


ca se remplit rudement vite la rubrique contribution en ce moment  ::D:

----------


## millie

Dj de ton ct tu ajoutes plein de trucs  ::D:  

Et du miens, vu que je suis en train de faire une bibliothque de traitement d'images, j'ajoutes au fur et  mesure plein de chose "de base" et donc, j'en profite pour les poster si il y en a qui demande.

Mme si ce sont des choses de base, parfois, quand on les a pas implment on a du mal  savoir comment faire (genre l'rosion pour des images en niveau de gris (et pas binaire), j'ai eu du mal  trouver).
Pareil pour le seuillage binaire pour les images en couleurs, on voit souvent dans les logiciels (gimp photoshop) que a fait un vrai seuillage binaire noir/blanc. J'ai mis beaucoup de temps  comprendre qu'il prenait la "lumire" (HSL) pour faire le seuillage sur les images RGB (je pensais avant que c'tait la somme des composantes sur 3, o le max...)

----------


## riadh_ado

Avant tout, merci pour ton aide, mais je sent dans l'algorithme que tu as neglig la premiere partie de l'operateur gaussienne (1/2pi*s*s) je sais pas pq?Car pour implementer les derives gaussiennes(1 et 2 derive) je ne sais pas quoi faire?

----------


## millie

Le facteur ne sert  rien ici car on rajuste toutes les valeurs pour que la somme soit gal  un.

Tu pourras ainsi remarquer que si tu multiplies tout par 1/(2 pi sigma), le kernelfacteur le sera galement. Ce qui fait que dans la division final, a se simplifiera.

Le facteur est utile uniquement lorsque l'on passe dans le domaine de Fourier.

----------


## riadh_ado

donc le matrice que j'aurais aprs ton algorithme (cad sans le multiplier par le facteur) correspond au masque gaussienne finale (cad je peut le convoluer directement aux images?
Autre question stp, comment je puisse alors implment les drives gaussiennes?

----------


## millie

> donc le matrice que j'aurais aprs ton algorithme (cad sans le multiplier par le facteur) correspond au masque gaussienne finale (cad je peut le convoluer directement aux images?


Oui ! C'tait fait exprs  :;):  Les images donnes en exemple (si tu suis le lien, j'ai appliqu directement la convolution comme a)




> Autre question stp, comment je puisse alors implment les drives gaussiennes?


Qu'est ce que tu entends par a ? Tu parles de drive ou de drives partielles ?

----------


## riadh_ado

Je parle de drive premire et deuxime (Cest quoi les drives partielles?), merci.

----------


## millie

Pour la fonction G(x,y) = Exp[ - (x^2+y^2)/(2*sigma^2) ]  deux variables, la notion de drive n'a aucun sens.

Seul la notion de drive partielle en a.

Par exemple, la drive partielle selon x est :
dG(x,y)/dx = -2x / (2sigma) exp( - (x^2+y^2)/(2*sigma^2))

----------


## riadh_ado

Oui je te comprend on parle des derive partielle, et pour les autres derive partielles (dx, dy, dxx,dyy,dxy) comment je peut le faire ( en realit je besoin de dxx et dyy et dxy pour le mettre dans le matrice Hessian pour detecter les lignes? et merci

----------

