Recent Changes - Search:

Home?

RunningExperiments

AnalysingData

MEG Group

Administrative info

Computers and network

Meetings

How to improve this site

CommandeAIMUtilesPourLeTraitementDimages

Erosion d’une images

	Ca peut être utile pour, par exemple, réduire le volume d’un masque fait sous spm. Prenons le cas d’un masque mask.img. Dans un premier temps, il faut transformer cette image binaire en niveau de gris.

AimsThreshold –i mask.img –o thres.ima –m eq –t 1 –b

Puis on applique une érosion (ici de 5 mm : c’est le dernier paramètre)

AimsErosion –i thres.ima –o mask2.img –e 5

Resampling d’une image

	Ca peut être utile pour reseampler une image anat (1x1x1 mm) en 3x3x3 mm et l’appliquer comme mask a des images fonctionnelles.

	AimsResample –i image.img –out rimage.img --dx 53  --dy 63  --dz 46  --sx 3  --sy 3  --sz 3  

En fait, les arguments de dx, dy et dz sont les nb respectifs de voxels de l’image finale en x, y et z. Il suffit par exemple de s’inspirer d’une image finale (ici EPI) dont on cherche a copier la taille. Sx, sy et sz sont les dimensions des voxels.

Attention : on fait parfois ces opération sur pour des image.img SPM. Mais le header est parfois mal recaler (au niveau de l’origine). Alors il faut recaler l’origine ‘à la main’ (faire un Display de l’image, puis de servir des coordonnées en bas à gauche de la fenêtre. Les changer, voir les changements sur l’origine, et quand on est satisfait, on fait ‘reorient image’ et on l’applique ‘réellement’ à/aux images.img voulues. Gonflage d’une anatomie (ou d’un .mesh)

	Ca peut être utile pour gonfler une anatomie, pour une projection d’un contraste fonctionnel issu d’une analyse de groupe, qui n’a donc pas besoin d’une projection anatomique précise sur un cerveau particulier. 

	AimsInflate –i nLra_hemi.mesh –o nLra_hemi_inflated.mesh –t 5 –c /tmp/curv.txt

5 est ici le nombre d’iteration de gonflage. On peut en faire une dizaine, ou une quinzaine optimalement. Le fichier curv.txt sert à voir les courbures. Fusion d’une série d’image.img

	AimsTCat –o allimages.ima –i ima*.img
	Ca crée une grosse image.ima dans laquelle on peut se deplacer (deux curseur ; un pour le depalcement dans le volume, l’autre pour se déplacer dans le ‘temps’, le long des scans). On peut aussi, dans le menu gauche d’Anatomist, faire un ‘Profil’ du voxel où ‘lon se trouve, tout ca etant tres util pour determiner si un scan est, par exemple, a rejeter (mouvement brusque, etc…)

	A l’inverse, pour redecouper les images, on fait
	AimsFileConvert –i allimages.ima –o ima_.img

Flip d’une image EPI

	AimsFlip –i allimages.ima –o f_allimages.ima –m ZZ  (si par rapport a l’axe Z, XX ou YY sinon)

Mettre un bundles dans l’espace du MNI

On a en général la transformation .trm qui va de la DiffT2 vers la rawT1, i.e l’anatomie native. On peut alors créer (dans la premiers version de BrainVisa et SPM2, tout au moins) une transformation .trm a partir de la matrice de normalisation.mat de SPM, avec Converter/sn3d_to_Aims_transformation converter. On applique alors la transformation ;

       AimsComposeTransformation -o diffT2_to_MNI.trm -i DiffT2_TO_RawT1.trm sn_TO_spm_template.trm

Combiner des images sous python :

On peut utiliser une combinaison linéaire simple AimsLinearComb

Ou alors préciser n’importe quelle formule sous la forme suivante cartoLinearComb –i image1.nii image2.nii –f ‘i1+i2’

Récemment a été développé une combinaison directe d’objets de type graphe : cartoGraphCat.py –i graphe1.arg graphe2.arg –o graphe_total.arg

Comment chercher l’intersection de deux bundles :

-on peut directement essayer de transformer les bundles en .ima : AimsDiffusionBundles2Ima –i fibre.bundles –r t2.ima –o fibre.ima –m 2

Ca va prendre les bundles, et les faire passer vers un volume 3D qui sera une image avec les même dimensions que l’image template indiquée par –r (voir en bas l’image ima à gauche et l’image de bundles d’origine à droite. Evidement, tout ca reste dans le référentiel des bundles !!). Puis, l’option –m 2 va permettre d’associer à chaque voxel de l’image résultante le nombre de fibre passant par ce même voxel. Ou alors, l’option –m 1 va associer une valeur binaire, comme à un masque, à ce voxel (1=au moins une fibre, 0=pas de fibre). Dans le cas où l’on a le nombre de fibre, on peut alors seuiller pour créer l’image binaire voulue (AimsThreshold –p 80 => seuil à 80% de la valeur maximale du nombre de fibre/voxel). Note : les commandes avec le préfixe AimsDiff…. deviennent Comis… dans les nouvelles bibliothèques de commandes python.

-on peut aussi travailler à partir des images 3D qui ont servit à faire le tracking ; la density_map. C’est un volume 4D, issus de la poursuite des fibres, images après image au travers le temps. Il faut donc extraire les images 3D de ce volume 4D (spatio-temporel), puis ne regarder que la dernière image, et éventuellement la seuiller et la binariser.

De ces deux étapes, on peut alors faire la somme de ces deux images3D binarisées : les voxels =2 indiqueront les overlap, les voxels = 1 pas d’overlap des fibres.

Comment placer tout les réseaux de fibres dans un même espace, tel que le MNI :

On a en général la transformation .trm qui va de la DiffT2 vers la rawT1, i.e l’anatomie native. On peut alors créer (dans la premiers version de BrainVisa et SPM2, tout au moins) une transformation .trm a partir de la matrice de normalisation.mat de SPM, avec Converter/sn3d_to_Aims_transformation converter.

On applique alors la transformation ;

       AimsComposeTransformation -o diffT2_to_MNI.trm -i DiffT2_TO_RawT1.trm sn_TO_spm_template.trm

On applique alors à chaque bundles sont diffT2_to_MNI.trm personnel…

Edit - History - Print - Recent Changes - Search
Page last modified on August 07, 2008, at 02:35 PM