cs_Titeuf007
Messages postés8Date d'inscriptionlundi 14 avril 2003StatutMembreDernière intervention 2 novembre 2006
-
18 sept. 2006 à 16:47
nguimza
Messages postés1Date d'inscriptionvendredi 6 août 2010StatutMembreDernière intervention20 juin 2012
-
20 juin 2012 à 13:34
Bonjour,
J'aimerai appliquer un filtre gaussien 3D à un volume de données. En
2D, pas de problème, je promène mon mask sur chaque pixel de l'image et
je calcule la valeur du pixel (je crois que ca s'appelle une
convolution). Peut on étendre ce principe en 3D ? Et si oui, comment
calculer le mask 3D et la convolution 3D ?
En 2D (non normalisé, taille 3) :
En 3D : ?
1 2 1
une sorte de cube 3 * 3 * 3 mais
comment le remplir ?
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 19 sept. 2006 à 15:53
Ok, désolé, je n'avais pas compris le truc.
Désolé également, mais je ne connais pas par coeur la formule de la Gaussienne 3D, il va te falloir chercher un peu.
Mais, au risque de me répéter, tu peux prendre la formule 1D et créer des filtres 1D. Du coup, il faudra le passer suivant les x, les y et les z de ton volume...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 19 sept. 2006 à 09:33
Bien sûr, on peut étendre ce principe, sauf que le voisinage de sera plus en 2D mais en 3D.
Voici un des cubes possibles pour ton masque (en se basant sur celui que tu donne en exemple)
Face "supérieure et inférieure" du cube:
1 1 1
1 2 1
1 1 1
Face "centrale":
1 2 1
2 4 2
1 2 1
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
BunoCS
Messages postés15360Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention29 mars 2023102 19 sept. 2006 à 14:50
Il n'y a aucun "calcul" dans mon masque mais de la logique: je me suis représentée une Gaussienne discrète en 3D. Si tu utilises le même masque partout, c'est-à-dire si tes coeff ne bougent pas, je ne vois pas l'intérêt de le calculer à chaque fois.
Pour info, en 2D et afin d'accélérer les traitements, on utilise 2 masques linéaires et on les applique,chacun, une fois en parcourant les lignes et une autre en parcourant les colonnes de l'image.
Par exemple, au lieu d'utiliser ce masque
1 2 1
2 4 2
1 2 1
on lui préférera ces 2 là:
1 2 1
et
1
2
1
Tu peux donc faire de même en 3D je pense...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Titeuf007
Messages postés8Date d'inscriptionlundi 14 avril 2003StatutMembreDernière intervention 2 novembre 2006 19 sept. 2006 à 15:11
Merci encore pour ta reponse. Je pense que la question que j'ai posé
n'était pas très claire. En effet, je voudrais coder une méthode
permettant d'appliquer un filtre gaussien à un volume de données. Ce
filtre gaussien est de taille variable en fonction de sigma (taille
optimale en fonction de sigma). Donc étant donné un sigma, je voudrais
obtenir le masque 3D de la bonne taille et avec les bonnes valeurs des
coefficients. Du coup, il me semble que je suis obligé de passer par un
calcul des coefficients.
nguimza
Messages postés1Date d'inscriptionvendredi 6 août 2010StatutMembreDernière intervention20 juin 2012 20 juin 2012 à 13:34
Bonjour,
j'ai suivi votre discution avec attention et moi j'ai aussi un probleme sur le filtrage gaussien 3D mais recurssif.je ne sais pas si quelqu'un peut m'aider
j'ai fait le cas 2D mais je suis bloquer au cas 2D je ne sais pas si titoof007
peut m'aider.
voici le code du cas 2D
for n = 3:tail1+2
for m = 3:tail2+2
y1(m,n)=a1*ima1(m,n)+a2*ima1(m,n-1)+b1*y1(m,n-1)+b2*y1(m,n-2);
end
end
for n = 3:tail2+2
for m = 3:tail1+2
l=tail2-n+5;
y2(m,l)=a3*ima1(m,l+1)+a4*ima1(m,l+2)+b1*y2(m,l+1)+b2*y2(m,l+2);
end
end
Ix=c1*(y2+y1);
où Ix est doncla derive de l'image suivant x