begin process at 2012 05 29 04:36:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Filtre gaussien 3D


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Filtre gaussien 3D

lundi 18 septembre 2006 à 16:47:54 | Filtre gaussien 3D

Titeuf007

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 ?
    2   4   2 
    1   2   1
Merci pour vos réponses.

mardi 19 septembre 2006 à 09:33:05 | Re : Filtre gaussien 3D

buno

Administrateur CodeS-SourceS
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...
Le site de mon mariage
mardi 19 septembre 2006 à 10:10:19 | Re : Filtre gaussien 3D

Titeuf007

Merci pour ta réponse. J'ai fait un truc un peu différent. Peux-tu me donner ton avis s'il te plait ?
Pour calculer mon mask cubique, j'ai utilisé la formule suivante (je ne sais pas si on peut ecrire des formules lisisbles sur le forum...) :
G(u,v,w) = 1 / (2*pi*sigma²)^(1/2) * exp(-(u²+v²+w²)/(2*sigma²))
J'obtiens alors le masque suivant (au facteur 10^-2 pres):
3.5512    5.8550    3.5512   
5.8550    9.6532    5.8550
3.5512    5.8550    3.5512

 5.8550    9.6532    5.8550
 9.6532   15.9155    9.6532
 5.8550    9.6532    5.8550

3.5512    5.8550    3.5512
5.8550    9.6532    5.8550
3.5512    5.8550    3.5512

Mes faces sont différentes des tiennes. Pour ta méthode, quelle formule utilises-tu pour calculer un masque de taille quelconque ?
Bonne matinée.

mardi 19 septembre 2006 à 14:50:20 | Re : Filtre gaussien 3D

buno

Administrateur CodeS-SourceS
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...
Le site de mon mariage
mardi 19 septembre 2006 à 15:11:14 | Re : Filtre gaussien 3D

Titeuf007

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.
Bon aprem et encore merci pour tes réponses.

mardi 19 septembre 2006 à 15:53:10 | Re : Filtre gaussien 3D

buno

Administrateur CodeS-SourceS
Réponse acceptée !
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...
Le site de mon mariage
mardi 19 septembre 2006 à 15:56:51 | Re : Filtre gaussien 3D

Titeuf007

Merci pour ta réponse. Je vais procéder ainsi :
- je vais créer un mask 1D en utilisant la formule pour une gaussienne ;
- je vais passer ce mask selon les 3 directions de mon volume.
En tout cas, un grand merci pour tes différentes réponses qui m'ont permis d'y voir un peu plus clair.



mardi 19 septembre 2006 à 15:59:05 | Re : Filtre gaussien 3D

buno

Administrateur CodeS-SourceS
Pas de quoi.
Bon courage dans tes travaux.

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage


Cette discussion est classée dans : mask, 3d, filtre, 2d, gaussien


Répondre à ce message

Sujets en rapport avec ce message

Coord 2D to 3D [ par bat67000 ] Comment optenir d'un point 2D sur l'app les coordonnees du point 3D associé avec la matrice de projection ?(je pige pas bien comment fonctionne la mat allegroGL ... [ par screamX ] Je me tate en se moment pour développer un apps en 2D + 3D...je sais pas trop qu'elle lib utiliser... je 'maitrise' allegro mais la 3D c'est pas son f Image 2D sur fond 3D [ par CyberP ] J'ai une question peut être stupide mais comment faire pour dessiner une image par dessus un rendu OpenGL ? Je pensais utiliser les trucs avec bitblt [VC++] Affichage d'une en courbe 2D et 3D [ par crocgunter ] Bonjour à tous..Je dispose d'une image BMP que je transforme en tableau de points.Dans un premier temps, je veux réaliser une coupe de l'image et ains Comment fonctionne un moteur 2D ? [ par psykocrash ] Bonjour,J'ai pour projet de développer un rpg à la Final Fantasy (en 2D, 4 héros, un inventaire pour les techniques et les armes, des combats tour à t de la 3d a la 2d [ par azkab ] bonjour tt le monde,dans mon projet j ai un nombre de primitives (rectangles, cercles, polygones, lignes..) que j ai modelisé en 2d. je stock leur con Retrouvé les coordonnees 3d depuis la 2D [ par Seboo ] Bonjour, J ai un probleme pour retrouver les coordonnees en 3d de la souris. J'utilise sous glut un lookat en -5,5,5 qui regarde en direction 0,0,0 so trouver un point du mode 3D en 2D [ par thespartan ] Bonjour. Dans mon jeu, je me balade dans un univers 3D et j'ai besoin de faire des explosions. Je me suis dit qu'il faudrait afficher les images en mo Matrice 3d [ par tarekor31 ] Bonjourj'ai un probleme je doit reflechir a recuperer une matrice 3d depuis un fichier .obj sous C++, il me faut mettre mon objet en forme de tranches tableau 2D/3D du structure. [ par goldziko9 ] Bonjour.    Mon problem est avec les tableau de structure, du genre :struct info{ char nom[20]; char prenom[20]; int age };struct info fete[20][20][20


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,934 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales