La reconstruction IRM
Ceci est une page en construction.
1) Sommaire
Bienvenue sur ce tutorial consacré à la reconstruction des images IRM. Nous allons utiliser des images provenant de la banque de données Osirix disponibles à cette adresse: lien
Exemple 1: Transformée de Fourier inverse
Lecture d’un fichier Dicom avec la fonction dicomread
puis conversion en format double
. Diminution de la taille de l’image et affichage.
clear all
close all
filename='/home/valery/Telechargements/BRAINIX/BRAINIX/IRMcerebrale,neuro-crâne/sT2-TSE-T- 01/IM-0001-0010.dcm';
img_tempo=double(dicomread(filename));
img=imresize(img_tempo,0.5);
ismrm_imshow(img, [], [], {'Image'});
Calculons la transformée de Fourier de l’image pour obtenir l’image dans l’espace réciproque (dit kspace pour la suite). Nous utilisons la fonction fft_2D
qui effectue la transformée suivant x puis suivant y et affichons cête à cote l’image et le kspace.
function [ out ] = fft_2D( in )
K = fftshift(fft(fftshift(in,1),[],1),1);
out = fftshift(fft(fftshift(K,2),[],2),2);
end
kspace=fft_2D(img);
ismrm_imshow( [img*100 ,abs(kspace)], [0 1e5], [] , {'Image vs Kspace'} );
Exemple 2: Filtrage des hausses et basses fréquences
Creation du mask On enleve le centre du mask
mask=ones(size(img));
center=round(size(img,1))/2;
offset=32;
mask(center-offset:center+offset,center-offset:center+offset)=0;
On applique le masque sur le kspace. On effectue la reconstruction et nous comparons les resultats Affichage des images
kspace_crop_ext=kspace .* mask;
kspace_crop_in=kspace-kspace_crop_ext;
img_crop_ext=ifft_2D(kspace_crop_ext);
img_crop_in=ifft_2D(kspace_crop_in);
ismrm_imshow(cat(3,abs(kspace),abs(kspace_crop_ext),abs(kspace_crop_in),abs(img) * 100, abs(img_crop_ext) * 100, abs(img_crop_in) * 100),...
[0 1e5],[2 3], {'Kspace Complet', 'Kspace sans le centre', 'Kspace sans exterieur', 'Image', 'Haute Fréquence|', 'Basse Fréquence'});
Exemple 3:
Script complet:
Le script complet est disponible ici: lien