ABDELKAFI Myriam BEAUVALLET Margaux CASTILLON Nicolas GUEVEL Valentin 11/05/2014 Implémentation d un algorithme de reconstruction d'images en Elastographie par résonance magnétique 1
Sommaire I. Compréhension du contexte II. Exemples sur Matlab III. Implémentation en langage C 2
Contexte. Elastographie: technique d imagerie permettant une caractérisation tissulaire. Visualisation de la rigidité des tissus Détection de tumeurs. «Palper l'image» Elastogramme d un sein (zone rigide localisant la tumeur) - https://www.bioscience.org/ 3
Contexte Etape 1: Excitation mécanique Excitateur mécanique Etape 2: Encodage du mouvement Etape 3: Résolution du problème inverse 4
Objectifs Améliorer la rapidité et la portabilité de la résolution du problème inverse. Pourquoi? Information en temps réel pour le radiologue interventionnel lors d'une opération. Actuellement: 1 élastogramme/minute Diagnostic seulement Implémentation du code Matlab en langage C. 5
Encodage du mouvement de l'onde En IRM, intérêt uniquement pour l image d amplitude: - Module s = sqrt( Re²(s) + Im²(s) ) - Donne des informations anatomiques En ERM, on a besoin de l image de phase en plus. - Phase φ = arctan( Im(s)/Re(s) ) - Code le mouvement L image de phase est sensible au mouvement périodique de l excitateur (déplacements visibles grâce à une séquence spéciale d IRM) 6
Lien entre longueur d onde et module de cisaillement - G = ρ.(λ.f)² Principe du LFE Solution du problème inverse: - Transformée de Fourier spatiale en 1 ou 2 dimensions - Application de l'algorithme Rapport de 2 sorties filtrées proportionnel à 1/λ - Transformée de Fourier inverse 7
Principe du LFE Signal Transformée de Fourier Filtres Caractéristiques des filtres: Filtres lognormaux : Ri(f loc ) = exp(-cb*ln²(f loc /ki)) ki et kj sont liés par leur bande passante Cb : kj = ki*exp(1/2cb) Tiré de la thèse de Rémy Blanchard 8
Principe du LFE Sorties des filtres Transformée de Fourier inverse f loc = 1/λ Rapport des sorties des filtres : Si et Sj sorties filtrées f loc = sqrt(ki*kj) * Re(Sj/Si) Tiré de la thèse de Rémy Blanchard 9
Obtention de l'élastogramme λ est proportionnel à l'élasticité (kpa ) On choisit ici d afficher en fonction de λ Exemple numérique J.Vappou & N.Corbin 10
Obtention de l'élastogramme Exemple réel sur fantôme - J.Vappou & N.Corbin 11
Travail réalisé durant l'année Compréhension du sujet Reproduction d un exemple numérique simple sur Matlab Implémentation en langage C 12
Code - Signal carré Première étape - Matlab Prise en main : Transformée de Fourier Filtres dans le domaine de Fourier Transformée de Fourier inverse 13
Graphiques (s) (Hz) 14
X(f) Application du filtre % Filtre avec seulement des 0 et 1 A=zeros(1,length(t)); for i=4990:5020 A(i)=1; end % Spectre du signal filtré plot(f,a.*abs(xf)); axis([-10,10,-10,10]); grid on; xlabel('frequence'); ylabel('x(f)') 10 8 6 4 2 0-2 -4-6 -8-10 -10-8 -6-4 -2 0 2 4 6 8 10 frequence (Hz) 15
y(t) Transformée de Fourier inverse % Transformée de Fourier inverse y=ifft(ifftshift(a.*xf))*fe ; plot(t,y) ; axis([-5,5,-2,2]); xlabel('temps') ; ylabel('y(t)') ; 2 1.5 1 0.5 0-0.5-1 -1.5-2 -5-4 -3-2 -1 0 1 2 3 4 5 temps (s) 16
Exemple basique du LFE (s) 17
Exemple basique du LFE (Hz) 18
Exemple basique du LFE En bleu : Ri En vert : Rj 19
Exemple basique du LFE (Hz) En bleu : Si En vert : Sj 20
Exemple basique du LFE (s) En bleu : Si En vert : Sj 21
Exemple basique du LFE (s) f loc = sqrt(ki*kj) * Re(Sj/Si) 22
Exemple basique du LFE Exemple réalisé grâce à la thèse de Blanchard sous Matlab G = ρ.(λ.f)² 23
Programme Exemple Numérique
Implémentation en C Difficultés rencontrées: Fonctions et Filtres à implémenter Lire des fichiers.txt Nombres Complexes Echelle de couleurs adaptable 25
Implémentation en C Librairie SDL: Affichage d un graphique en couleurs ou d images Affichage d une matrice sous forme de pixels colorisés en respectant un code couleur 26
Implémentation en C mat[0][0]=1; mat[0][1]=0; mat[1][0]=0; mat[1][1]=1; 27
Implémentation en C Fonctions à implémenter: FFT IFFT pause Elastogramme 28
Implémentation en C Architecture du main: 1 / Définitions Définitions des différentes Matrices et Variables Chargement des Matrices d entrée à partir de fichiers.txt Allocation dynamique des résultats de FFT et IFFT Définitions des Filtres 29
Implémentation en C Architecture du main: 2 / LFE On rentre dans la boucle for Transformée de Fourier Séparation réelle et imaginaire pour S résultat de la FFT Application des Filtres R1 et R2 Obtention de 2 sorties S1 et S2 30
Implémentation en C Architecture du main: 2 / LFE Transformée de Fourier inverse Séparation réelle et imaginaire pour S1 et S2 résultats de la IFFT Estimation de la fréquence locale 31
Implémentation en C Architecture du main: 3 / Calcul Intermédiaire Estimation de la Longueur d onde locale Création de la Matrice d élasticité G = ρ.(λ.f)² 32
Implémentation en C 4 /Résultat: G(kPa) 33
Programme Exemple réel
Implémentation en C Difficultés rencontrées: Ajout d une boucle for dans le main.c Suppression des valeurs infinies Application d un masque (éliminer le bruit) 35
Implémentation en C Modifications de Elastogramme: Ajout d'une boucle for, afin de traiter le cas d'une image réelle Affichage de l'image en niveaux de gris. Vérification du bon fonctionnement de la fonction Elastogramme 36
Implémentation en C Matlab Amplitude et Phase Langage C Amplitude et Phase 37
Implémentation en C Matlab Elastogramme 16 couleurs Langage C Elastogramme 16 couleurs 38
Implémentation en C Résultats: G = ρ.(λ.f)² f = 100 Hz ρ = 1000 kg/m 3 39
Temps d exécution Matlab: fonction tic toc Temps moyen = 612,8 ms en numérique Temps moyen = 881,5 ms en réel (script de N.Corbin) Langage C: fonction SDL_GetTicks() Temps moyen = 497,5 ms en numérique Temps moyen = 970,3 ms en réel 40
diagramme de Gantt Toute l'implémentation en Matlab est faite. Les programmes en langage C sont achevés 41
Sources Elastogramme du sein: https://www.bioscience.org/ Exemple du LFE : Thèse de Rémy Blanchard Chapitre 6 Lyon 2013 Graphiques : obtenus avec Matlab & langage C 42
Merci pour votre attention! 43