Vous êtes sur la page 1sur 9

Université M’Hamed Bougera Boumerdes.

Faculté des sciences


Département de Génie électrique

Spécialité : instrumentation biomédicale Master 1

Compte rendu des TP :


 Tp01: formation et reconstruction des images tomographiques
Transformée de radon
 TP0 2: Reconstruction des images tomographiques par la
méthode Fan-beam

֍ Présent par :
- Magramane Khadidja
-Slatni Ghalia
Compte rendu des TP :

Tp01 : formation et reconstruction des images tomographiques Transformée de radon

I. Définition de la transformée de Radon :

La transformée de Radon est une technique mathématique développée par le


mathématicien Autrichien Johann Radon en 1917 [Radon 1917]. Cette transformée permet de
convertir une fonction (image) de 2-D en une série de projections de 1-D pour tout angle 𝜃∈[0,
2𝜋]. Une projection à un angle 𝜃 donné est obtenue comme l’intégration linéaire de la fonction
sur toutes les lignes parallèles. L’unes des propriétés les plus importantes de la transformée de
Radon est qu’elle est inversible d’où la possibilité de la reconstruction de la fonction projetée à
partir de la connaissance de ses intégrations le long d’hyperplans ainsi, la structure interne
d’un objet peut être déterminée d’une manière non destructive à partir de ses projections. et
l’inversion qui nous permet la reconstruction de l’image de départ projetée à partir de ses
projections d’une manière non destructive La transformée de Radon est fréquemment
utilisée dans des domaines différents comme la tomographie, l’astronomie et la sismologie, et
récemment dans le domaine de traitement d’images comme la compression et l’analyse.

II. Travail demandé :

1) Construire un fantô me carre 56x56 sur une image 128x128 :


I(37:92,37:92) = 1;
figure(1) ,imshow(I)
title ('fantome carre 56x56 en blanc')

fantome carre 56x56 en blanc

2) Calculez les projections pour l'angle theta de [0, 179] degré :


[R,xp] = radon(I,[0 179]);
figure(2); plot(xp,R(:,1));title('R_(0^o) (x\prime)')
Page 2
Compte rendu des TP :

figure(3); plot(xp,R(:,2));title('R_(179^o) (x\prime)')

R(0 o ) (x )
R(179o ) (x )
60
60

50
50

40
40

30 30

20 20

10 10

0 0
-100 -80 -60 -40 -20 0 20 40 60 80 100 -100 -80 -60 -40 -20 0 20 40 60 80 100

3) Visualisez les projections pour l'angle theta =0, 90 et 45 :


[R1,XP1]=radon(I,0);
figure(4)
subplot(2,2,1)
plot(XP1,R1,'r'); title('R_{0^o}(x\prime), projections pour \theta=0^o')
[R2,XP2]=radon(I,90);
subplot(2,2,2)
plot(XP2,R2,'b'); title('R_{90^o} (x\prime), projections pour \theta=90^o')
[R3,XP3]=radon(I,45);
subplot(2,2,3)
plot(XP3,R3,'g'); title('R_{45^o} (x\prime),projections pour \theta=45^o')

4) Calculez des 4 jeux de données r1, r2, r3, r4 correspondant respectivement à 18, 36, 90 et
180 projections (choix du pas de θ ) :
theta = 0:180;
Page 3
Compte rendu des TP :

[R,xp]=radon(I,theta);
figure(5), plot(xp,R)
R = radon(I)
R = radon(I,theta)
pas1=180/18;
pas2=180/36;
pas3=180/90;
pas4=180/180;
theta1 = 0:pas1:179;
theta2 = 0:pas2:179;
theta3 = 0:pas3:179;
theta4 = 0:pas4:179;
[r1,xp1] = radon( I,theta1);
[r2,xp2] = radon(I,theta2);
[r3,xp3] = radon(I,theta3);
[r4,xp4] = radon(I,theta4);

80

70

60

50

40

30

20

10

0
-100 -80 -60 -40 -20 0 20 40 60 80 100

5) Reconstruire l'image sans filtrage et avec filtrage à partir des jeux de données r1, r2, r3,
r4 et Visualiser les images reconstruites sans et avec filtrage:
% l'image avec filtrage;
Im_r1 = iradon(r1,theta1 ); % Image pour le jeu de donnees r1
Im1=Im_r1(2:129,2:129); % Pour garder la taille 128x128
figure(1),
subplot(2,2,1)
imshow(Im1)
title(' image avec filtrage')
Im_r2 = iradon(r2,theta2); % Image pour le jeu de donnees r2
Im2=Im_r2(2:129,2:129); % Pour garder la taille 128x128
subplot(2,2,2)
imshow(Im2)
title(' image avec filtrage')
Im_r3 = iradon(r3,theta3); % Image pour le jeu de donnees r3
Im3=Im_r3(2:129,2:129); % Pour garder la taille 128x128
subplot(2,2,3)
imshow(Im3)
title(' image avec filtrage')
Im_r4 = iradon(r4,theta4); % Image pour le jeu de donnees r4
Im4=Im_r4(2:129,2:129); % Pour garder la taille 128x128
subplot(2,2,4)
imshow(Im4)
title(' image avec filtrage')
% l'image sans filtrage
I11 = iradon(r1,theta1,'linear','none');

Page 4
Compte rendu des TP :

I22 = iradon(r2,theta2,'linear','none');
I33 = iradon(r3,theta3,'linear','none');
I44 = iradon(r4,theta4,'linear','none');
figure(2)
subplot(2,2,1)
imshow(I11,[])
title(' image sans filtrage')
subplot(2,2,2)
imshow(I22,[])
title(' image sans filtrage')
subplot(2,2,3)
imshow(I33,[])
title(' image sans filtrage')
subplot(2,2,4)
imshow(I44,[])
title(' image sans filtrage')

l'image sans filtrage;

image sans filtrage image sans filtrage

image sans filtrage image sans filtrage

l'image avec filtrage;

Page 5
Compte rendu des TP :

image avec filtrage image avec filtrage

image avec filtrage image avec filtrage

Conclusion

La transformée de Radon nous donne la possibilité de traiter seulement les sommes des
pixels (points Radon) pour chaque angle transformée de Radon et d’exposer sa puissance
envers les bruits comme le bruit de quantification La transformée de Radon est compression
de 99.90% tout en gardant la qualité des images après décompression. Ces résultats
montrent clairement que notre méthode est qualifiée pour être un bon choix pour l’archivage
et la transmission des images

TP02 : Reconstruction des images tomographiques par la méthode Fan-beam

Page 6
Compte rendu des TP :

1-Construire le fantô me cérébrale avec la fonction phantom :


P = phantom(256);
figure(1), imshow(P)

2-Calculer les projections pour différente valeur en variant la distance entre les raies des
projections 2, 1,0.25 avec la fonction fanbeam :
D = 250;
F = fanbeam(P,D)
[F,Fpos,Fangles] = fanbeam(P,D);
figure(2), imagesc(fan_rot_angles3, sensor_pos3, F)
colormap(hot); colorbar
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')

-40 60

-30
Fan Sensor Position (degrees)

50
-20

-10 40

0
30
10

20 20

30
10

40

0
0 50 100 150 200 250 300 350
Fan Rotation Angle (degrees)

d1 = 2;

F1 = fanbeam(P,D,'FanSensorSpacing',d1);

Page 7
Compte rendu des TP :

figure(3), imshow(F1,[],'XData',Fangles,'YData',Fpos,'InitialMagnification','fit')
colormap(hot); colorbar
title('d1=1')
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')

d2 = 1;
F2 = fanbeam(P,D,'FanSensorSpacing',d2);
title('d2=1')
figure(5), imshow(F2,[],'XData',Fangles,'YData',Fpos ;'InitialMagnification','fit')
colormap(hot); colorbar
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')

d3 = 0.25;
[F3, sensor_pos3, fan_rot_angles3] = fanbeam(P,D ,'FanSensorSpacing',d3);
title('d3=0.25')
figure(6), imshow(F3,[],'XData',Fangles,'YData',Fpos,...
'InitialMagnification','fit')
colormap(hot); colorbar
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')

Page 8
Compte rendu des TP :

3- Reconstruire du fantô me pour les différentes valeurs avec la fonction ifanbeam :

output_size = max(size(P));
I1 = ifanbeam(F1,D, ...
'FanSensorSpacing',d1,'OutputSize',output_size);
figure(7), imshow(I1)
title('I1')

I2 = ifanbeam(F2,D, ...
'FanSensorSpacing',d2,'OutputSize',output_size);
figure(8), imshow(I2)
title('I2')
I3 = ifanbeam(F3,D, ...
'FanSensorSpacing',d3,'OutputSize',output_size);
figure(9), imshow(I3)
title('I3')
figure(10)
subplot(1,3,1), imshow(I1), title('I1')
subplot(1,3,2), imshow(I2), title('I2')
subplot(1,3,3), imshow(I3), title('I3')

Conclusion :
La qualité de la reconstruction s'améliore à mesure que le nombre de faisceaux dans la
projection augmente. La première image, F1 créée en utilisant un espacement de 2 degrés, la
deuxième image F3 créée en utilisant un espacement de 1 degré et la troisième image F3
créée en utilisant un espacement de 0,25 des faisceaux.

Dans chaque distance entre les raies, la distance entre le centre de rotation et le sommet
des projections est constante à 250 pixels. De plus, fan-beam fait pivoter la projection autour
du pixel central par incréments de 1 degré.

Page 9

Vous aimerez peut-être aussi