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
| fonction creerNoyauGaussien(Entier rayon, Reel sigma) -> Noyau
kernel : Noyau de convolution de taille
largeur = 2*rayon+1
hauteur = 2*rayon+1
et centré en (rayon, rayon)
Si sigma == 0
Erreur
Si rayon<1
Erreur
Réel gaussianKernelFactor <- 0
Réel e <- 0
Pour ky = -rayon à rayon
Pour kx = -rayon à rayon
{
e <- exp( - (kx*kx+ky*ky) / (2*sigma*sigma))
gaussianKernelFactor <- gaussianKernelFactor + e
kernel(kx+rayon, ky+rayon) <- e
}
/*on divise tout par le facteur afin que la somme de tous les éléments
* soient égaux à 1
*/
Pour ky = -rayon à rayon
Pour kx = -rayon à rayon
{
kernel(kx+rayon, ky+rayon) <- kernel(kx+rayon, ky+rayon) / gaussianKernelFactor
}
retourner kernel |
Partager